CN102132246A - 使用选定地址类型的调试消息生成 - Google Patents
使用选定地址类型的调试消息生成 Download PDFInfo
- Publication number
- CN102132246A CN102132246A CN2009801324861A CN200980132486A CN102132246A CN 102132246 A CN102132246 A CN 102132246A CN 2009801324861 A CN2009801324861 A CN 2009801324861A CN 200980132486 A CN200980132486 A CN 200980132486A CN 102132246 A CN102132246 A CN 102132246A
- Authority
- CN
- China
- Prior art keywords
- address
- debugging message
- untranslated
- translating
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种用于生成调试消息(82)的方法包括接收(69、71)与同一处理器操作关联的翻译地址和未翻译地址,确定一个或更多个控制指示符(PTAS、DTAS)的值,基于一个或更多个控制指示符的值,将翻译地址或未翻译地址选择为选定地址,以及使用选定地址中的至少一部分创建(64)调试消息。
Description
技术领域
本公开通常涉及半导体,更具体地,涉及实现用于监控系统中的信息的调试电路的数据处理系统。
背景技术
被称为IEEE ISTO5001的IEEE标准或者Nexus调试标准是所制定的支持实时调试消息生成的实时调试标准。Nexus调试标准规范了用于针对外部跟踪重建工具识别系统中的预定的操作条件的机制。在用于数据处理系统的代码开发中也使用调试处理。在不妨碍数据处理系统的正常操作的情况下,实时地提供调试信息对于保持系统操作的透明性是极为期望的。
调试消息由数据处理系统生成,其包含关于程序事件(程序跟踪消息传递)或者数据事件(数据读取消息传递、数据写入消息传递)的地址和数据信息,以及其他调试信息。地址信息典型地是虚拟地址信息,其是必须被翻译以识别被称为物理地址的物理存储器位置的格式。地址与经历执行的程序的相关性是调试处理的重要部分,从而可以监控实际的程序流和系统数据变量的动态值。必须执行虚拟到物理地址的映射或者翻译。然而,外部调试器典型地没有用于快速地翻译调试消息的地址部分所需的虚拟到物理映射信息,特别是在这些映射因要求分页或其他重映射操作而动态改变时。虚拟地址的使用向调试用户提供了用于经由如下程序列表来跟踪计算机程序的直接方式,所述程序列表是通过针对软件应用程序的文本和数据部分使用虚拟地址的编译和链接功能而获得的。用户典型地不了解操作系统(OS)如何将虚拟地址翻译为物理地址。因此,需要跟踪以指示虚拟地址。不幸地,某些程序列表是不可用的,诸如关于在运行时执行的预编译软件模块的程序列表。这些模块的示例是OS调用和库函数。在该示例中,没有程序列表是可用的。因此非常难于适当地跟踪和解释所执行的程序的这些部分。正确地将虚拟地址翻译为物理地址需要了解程序计数器所处的位置并且检查物理存储器以确定地址的位置。对于执行多个程序的系统,存储器映射动态地变化并且容易地在存储器页之间变换。在这些情形中,地址翻译明显地减慢了调制消息的生成和解释,妨碍了实时执行。
附图说明
本发明借助于示例进行说明并且不限于附图,在附图中相同的附图标记表示相似的元件。图中的元件被说明用于简单和清楚的目的并且没有必要依比例绘制。
图1以框图形式图示了具有根据本发明的一种形式的调试消息生成的数据处理系统;
图2以框图形式图示了图1的调试电路的一种形式;
图3以图的形式图示了图2的开发控制寄存器的一种形式;
图4以表格的形式图示了图3的开发控制寄存器中的控制字段的示例性编码;
图5以图的形式图示了示例性程序跟踪消息;以及
图6以图的形式图示了示例性数据跟踪消息。
具体实施方式
图1中图示了生成调试消息的数据处理系统10,该调试消息具有可由用户控制动态选择的类型的地址类型。如这里使用的,术语“地址类型”指的是诸如翻译地址相对未翻译地址的各种类别的地址。未翻译地址的示例包括逻辑地址、虚拟地址和有效地址。翻译地址的示例包括真实地址和物理地址。在已根据有效地址翻译了虚拟地址的情况中,翻译地址还可以包括虚拟地址。全局互连12位于数据处理系统10中。在一种形式中,全局互连12是系统总线。可以使用其他形式的互连,包括例如,交叉开关、点对点连接以及光和无线传送技术。总线接口单元14经由双向耦合耦合到全局互连12。在一种形式中,该双向耦合是双向的多导体总线,其中这里的多导体总线由跨越导体的斜线表示。总线接口单元14双向耦合到地址翻译逻辑单元16,其用作存储器管理单元(MMU)。地址翻译逻辑单元16经由双向多导体总线耦合到全局控制电路18的第一输入/输出端子。全局控制电路18的第二输入/输出端子经由双向多导体总线耦合到取指令单元20的第一输入/输出端子。取指令单元20具有经由多导体总线耦合到指令解码器22的输入的输出。指令解码器的输出耦合到执行单元24的输入。在一种形式中,执行单元包括至少一个算术逻辑单元、至少一个浮点单元和至少一个乘法器电路。寄存器文件25位于执行单元24中。指令解码器22的输入/输出端子耦合到全局控制电路18的第三输入/输出端子。执行单元24的输入/输出端子耦合到全局控制电路18的第四输入/输出端子。调试电路26具有耦合到全局控制电路18的第五输入/输出端子的输入/输出端子。加载/存储单元28具有双向耦合到全局控制电路18的第六输入/输出端子的输入/输出端子。加载/存储单元28具有耦合到总线接口单元14的第一输出的输入。总线接口单元14的第二输出耦合到全局控制电路18的输入。加载/存储单元28的输出提供了数据未翻译地址并且耦合到地址翻译逻辑单元16的第一输入和调试电路26的第一输入。取指令单元20的输出提供了指令未翻译地址并且耦合到地址翻译逻辑单元16的第二输入和调试电路26的第二输入。地址翻译逻辑单元16的第一输出提供了数据翻译地址并且耦合到总线接口单元14的第一输入和调试电路26的第三输入。地址翻译逻辑单元16的第二输出提供了指令翻译地址并且耦合到总线接口单元14的第二输入和调试电路26的第四输入。存储器30经由双向耦合耦合到全局互连12。存储器30具有作为非用户代码或库函数代码32的第一代码部分。该代码部分表示例如,用于实现特定功能或任务并且提供固定数据值的代码。这些指令集简化了工作并且防止每当需要执行特定任务时的重复劳动。库函数代码32防止每当需要时编程人员必须重写指令自身。库函数代码32包括关于特定的编程语言的标准子程序。存储器30具有作为用户代码34并且作为由数据处理系统10的用户提供的软件的第二代码部分。用户代码或程序因此不同于运行计算机的操作系统和执行维护或一般用途杂务的实体程序。依赖于所需的实现方案,用户代码34可以操纵文本、数字、图形或者这些元素的组合。一些用户代码通过集中于诸如字处理的单个任务而提供了可观的计算能力。其他用户代码实现了较少的处理能力但是包括若干个应用程序,例如字处理、电子数据表格和数据库程序。用户代码可以具有实现任何算法的任何类型,包括实时嵌入控制算法。库函数代码32还可以包括OS代码,或者OS代码可以在库函数代码32或用户代码34外部分立地位于存储器32中。调试电路26具有经由双向多导体耦合到多个调试端子40的第二输入/输出端子。多个调试端子40耦合到通常被称为调试器或外部调试器的外部开发系统36。在图示形式中,如图1中的虚线编组所指示的那样,总线接口单元14、地址翻译逻辑单元16、全局控制电路18、取指令单元20、指令解码器22、具有寄存器文件25的执行单元24、调试电路和加载/存储单元28共同形成了数据处理器42。尽管图1在单独的位置图示了全局控制电路18,但是应当理解,全局控制电路18的电路和功能控制也可以以分布式方式来实现,并且可以被包括在数据处理系统10的各种其他系统模块中的任何模块中。
在操作中,数据处理系统10经由全局互连12与设备(未示出)通信。与数据处理器42通信的所有信息通过总线接口单元14传输。取指令单元20在全局控制电路18的控制下从总线接口单元14取回数据处理指令。取回的指令被连续传递到指令解码器22用于在全局控制电路18的控制下解码。执行单元24执行指令并且生成数据,该数据经由通过全局控制电路18、总线接口单元14和全局互连12的耦合被存储在缓存(未示出)中或者被置于存储器30中。数据处理器42和数据处理系统10的操作的调试通过使用调试电路26来执行,调试电路26生成用于由外部开发系统36分析的调试消息。响应于来自外部开发系统36的这些消息的激活,进入测试或调试操作模式。在图示形式中,调试电路26被配置为接收四个不同的地址,这些地址是数据地址或者指令地址。数据地址是其中驻留数据的地址,而指令地址是其中驻留指令的地址。从取指令单元20向调试电路26和地址翻译逻辑单元16提供指令未翻译地址。未翻译地址是需要某种另外的处理的地址,或是这样的地址,需要翻译该地址以获得其中信息驻留的物理存储位置的地址。地址翻译逻辑单元16向调试电路26和总线接口单元14提供指令未翻译地址。在一种形式中,未翻译地址可以是常常被称为虚拟地址的逻辑地址。在另一形式中,未翻译地址可以是有效地址。有效地址在被翻译为物理地址之前必须被首先翻译为虚拟地址。加载/存储单元28向调试电路26和地址翻译逻辑单元16提供数据未翻译地址。地址翻译逻辑单元16向调试电路26和总线接口单元14提供数据翻译地址。地址翻译逻辑单元16在全局控制电路18的控制下操作以确保调试电路26接收到与同一处理器操作关联的翻译地址和未翻译地址。响应于接收到翻译地址和未翻译地址,确定一个或更多个控制指示符或控制位的值。基于一个或更多个控制指示符的值,将翻译地址或未翻译地址选择为选定地址。调试电路随后通过在调试消息中包括一部分(如果不是所有选定地址的话),使用选定地址的至少一部分来形成用于外部开发系统36的调试消息。在一种形式中,通过首先将选定地址压缩为具有较少的位的较小尺寸的选定地址,从而来创建调试消息。压缩的选定地址的至少一部分随后被用作调试消息的一部分。调试消息的格式可以变化,并且下文将结合图5和6讨论示例。在一种形式中,除了选定地址的至少一部分之外,调试消息可以包括指示选定地址是翻译地址还是未翻译地址的字段。下文将结合图2描述控制指示符。在一种形式中,执行存储器30的用户代码34和库函数代码32中包含的软件程序。控制指示符(或多个控制指示符)具有基于正被调试的软件程序的类型而设置的值。例如,如果软件程序是用户程序(用户类型),则控制指示符假设第一二进制值。如果软件程序是非用户程序(非用户类型),诸如库代码或OS代码的某些部分,则控制指示符假设相反的第二二进制值。在另一形式中,调试电路26中的一个或更多个控制指示符包括第一控制位,其指示翻译地址或未翻译地址是否将被用于创建程序跟踪调试消息;以及第二控制位,其指示翻译地址或未翻译地址是否将被用于创建数据跟踪调试消息。特定的控制指示符还可以与是否正在执行程序跟踪测试功能或者是否正在执行数据跟踪测试功能相关联。
图2中图示了图1的调试电路26的一部分的示例性实施例。调试控制电路60具有耦合到全局控制电路18的输入/输出端子。开发控制寄存器62位于调试控制电路60中。调试控制电路60的第一输出耦合到用于生成调试消息的消息生成逻辑64的第一输入。消息生成逻辑64的输出耦合到调试控制电路60的第一输入。调试控制电路60的第二输出耦合到输入/输出(I/O)逻辑66的输入。I/O逻辑66的输入/输出端子经由双向多导体耦合到调试端子40。指令探查电路68具有复用器69,该复用器69具有耦合到图1的指令翻译地址的第一输入。复用器69的第二输入耦合到图1的指令未翻译地址。复用器69的输出耦合到消息生成逻辑64的第二输入。复用器69具有用于从调试控制电路60的第三输出接收第一选择信号的控制输入。数据探查电路70具有复用器71,该复用器71具有耦合到图1的数据翻译地址的第一输入。复用器71的第二输入耦合到图1的数据未翻译地址。复用器71的输出耦合到消息生成逻辑64的第二输入。复用器71具有用于从调试控制电路60的第四输出接收第二选择信号的控制输入。
在操作中,消息生成逻辑64是实现依据多个预定格式中的一种选定格式形成调试消息的功能的逻辑电路。调试消息耦合到调试控制电路用于经由I/O逻辑66路由到调试端子40。在全局控制电路18的控制下,调试控制电路60还生成两个选择信号。第二选择信号控制数据探查电路70的复用器71并且用于选择翻译或未翻译数据地址中的一个。在一种形式中,翻译数据地址是数据操作数的物理地址,而未翻译数据地址是数据操作数的逻辑地址。第一选择信号控制指令探查电路68的复用器69并且用于选择翻译或未翻译指令地址中的一个。在一种形式中,翻译指令地址是指令操作数的物理地址,并且未翻译指令地址是指令操作数的逻辑地址。调试控制电路60使用开发控制寄存器62中的一个或更多个控制指示符来决定选中还是否定第一选择信号和第二选择信号。在一种形式中,一个或更多个控制指示符被实现为开发控制寄存器62中的控制位。这两个选择信号可以被同时被选中或者同时不被选中,并且在测试或调试模式期间被独立控制。下面的附图将进一步描述开发控制寄存器62和控制指示符的编码,以及提供示例性调试消息。
图3中图示了图2的开发控制寄存器62的格式的一个示例。开发控制寄存器62可以具有任何位尺寸。在图示形式中,提供了开发控制寄存器62的32位实现方案。位0至17以及位20至29被保留。位18被表示为程序跟踪地址选择(PTAS)控制指示符或控制位。位19被表示为数据跟踪地址选择(DTAS)控制指示符或控制位。位30和31是跟踪模式TM控制位并且被编码为控制调试操作的模式。特别地,跟踪模式控制位控制是否使能跟踪以及使能的跟踪用于程序跟踪还是数据跟踪还是此两者。PTAS控制位确定针对程序地址选择未翻译地址还是翻译地址。相似地,DTAS控制位确定针对数据地址选择未翻译地址还是翻译地址。这些控制位的数字值由调试控制电路60监控,并且适当的选择信号依赖于它们的数字值而被使能或不被使能。应当理解,开发控制寄存器62中的位字段的位置安排是任意的并且可以变化。此外,每个控制指示符字段中的控制位的数目可以因实现方案而不同。
图4中图示了表格,该表格图示了图3的开发控制寄存器62中的PTAS、DTAS和TM字段的编码。当PTAS控制指示符位具有逻辑0值时,程序跟踪消息在被使能时提供逻辑地址值。当PTAS控制指示符位具有逻辑1值时,程序跟踪消息在被使能时提供物理地址值。当DTAS控制指示符位具有逻辑0值时,数据跟踪消息在被使能时提供逻辑地址值。当DTAS控制指示符位具有逻辑1值时,程序跟踪消息在被使能时提供物理地址值。图4中的表格还图示了用于跟踪模式控制字段的编码。当两个TM控制指示符位具有“00”值时,不使能跟踪。当两个TM控制指示符位具有“1X”值时,程序跟踪被使能,其中“X”是“无关”值。换言之,不论最右侧的位的值如何,当最左侧的位具有逻辑1值时,程序跟踪功能被使能。当两个TM控制指示符位具有“X1”值时,数据跟踪被使能。换言之,不论最左侧的位的值如何,当最右侧的位具有逻辑1值时,数据跟踪功能被使能。当TM字段的两个控制指示符位均为逻辑1时,数据跟踪功能和程序跟踪功能均被使能。应当理解,图示编码值仅是示例性的并且可以实现不同的编码。
图5中图示了第一示例性跟踪消息80。跟踪消息80具有五个图示字段。字段的位置安排是任意的。地址字段包含跟踪消息80的地址。该地址字段中的地址的类型是所选择的类型。序列计数字段包含表示从上一次程序跟踪消息起已被执行的指令的数目的值。源处理器字段包含识别跟踪消息80与什么处理器关联的值。该字段信息在多处理器系统中是有价值的。传输代码字段包含将跟踪消息80识别为具有特定的预定字段格式的程序跟踪消息的值。在图5的示例中,表示具有图示形式的程序跟踪消息的值是“000100”。地址类型字段是可选的字段并且包含正进行消息传递的地址类型的指示符。换言之,地址类型字段识别地址字段是否包含作为虚拟地址或物理地址的地址。该信息在被包括在调试消息中时向跟踪重建调试工具提供是否应生成跟踪列表的认识。
图6中图示了另一示例性跟踪消息82。跟踪消息82具有六个图示字段。字段的位置安排是任意的。数据值字段包含与跟踪消息82关联的一个或更多个数据值。地址字段包含跟踪消息82的地址。该地址字段中的地址类型是所选择的类型。数据尺寸字段包含表示数据长度或者数据字中包含的位数目的值。源处理器字段包含识别跟踪消息82与什么处理器关联的值。该字段信息在多处理器系统中是有价值的。传输代码字段包含将跟踪消息80识别为具有特定的预定字段格式的程序跟踪消息的值。在图6的示例中,表示具有图示形式的数据写入跟踪消息的值是“000101”。表示具有图示形式的数据读取跟踪消息的值是“000110”。地址类型字段是可选的字段并且包含正进行消息传递的地址类型的指示符。换言之,地址类型字段识别地址字段是否包含作为虚拟地址或物理地址的地址。这些字段相对于彼此的位置安排以及每个字段的位尺寸是任意的,并且可以因不同的电路设计实现方案而变化。
到此为止应意识到,提供了一种具有高效的实时调试寻址的数据处理系统。当前实现的执行Nexus ISTO-5001标准的调试系统典型地传输所有地址信息作为虚拟地址。当用于变换到物理地址的列表不可用时,系统性能或调试能力预先就被劣化。这里提供的开发控制寄存器62中的控制指示符允许外部调试器的用户指定将进行消息传递的地址的类型。因此可以有效地使用程序跟踪重建来调试各种类型的环境而与程序列表的可用性无关。调试器可以执行特定的库或OS函数的适当的运行时间剖析和性能分析并且向用户提供确定是否应执行替选最优化的能力。可编程控制指示符允许调试器获得具有适合特定调试任务和实时任务的格式的地址。尽管调试器电路26接收翻译和未翻译地址,但是编程的控制指示符允许调试器电路26选择在生成调试跟踪消息时将使用哪些地址。此外,对于程序调试跟踪和数据调试跟踪,存在地址格式的独立控制。
由于实现本发明的各种装置的一些部分由本领域的技术人员已知的电子元件和电路组成,因此没有在任何超出被认为上文说明所需的程度上对电路细节进行解释,用于理解和认识本发明的基本概念并且不致引起本发明的教导的模糊或混乱。
可以适当地使用多种不同的信息处理系统来实现上述实施例中的一部分。例如,尽管图1及其讨论描述了示例性存储器系统架构,但是该示例性架构仅被呈现用于提供讨论本发明的各种方面时的有用的参考。当然,出于讨论的目的,该架构的描述已被简化,并且仅描述了根据本发明可以使用的许多不同类型的适当的架构中的一个。本领域的技术人员将认识到,逻辑框之间的边界仅是说明性的并且替选实施例可以合并逻辑框或者电路元件或者对各种逻辑框或电路元件施加替选的功能分解。
在一种形式中,这里提供了一种用于生成调试消息的方法。接收与同一处理器操作关联的翻译地址和未翻译地址。确定一个或更多个控制指示符的值。基于一个或更多个控制指示符的值,将翻译地址或未翻译地址选择为选定地址。使用选定地址中的至少一部分创建调试消息。在一种形式中,通过将选定地址的至少一部分包括在调试消息中来创建调试消息。在另一形式中,压缩选定地址的至少一部分。使压缩的选定地址的至少一部分包括在调试消息中。在另一形式中,通过使指示选定地址是翻译地址还是未翻译地址的字段包括在调试消息中,创建调试消息。在另一形式中,执行软件程序并且基于软件程序的类型设置一个或更多个控制指示符的值。在另一形式中,软件程序的类型是用户类型或非用户类型。在另一形式中,未翻译地址是虚拟地址而翻译地址是物理地址。在另一形式中,通过使指示选定地址是翻译地址还是未翻译地址的字段包括在调试消息中来创建调试消息。在另一形式中,一个或更多个控制指示符包括第一控制指示符,其指示翻译地址或未翻译地址是否将被用于创建程序跟踪调试消息,以及第二控制指示符,其指示翻译地址或未翻译地址是否将被用于创建数据跟踪调试消息。在另一形式中,确定一个或更多个控制指示符的值包括当执行程序跟踪时确定第一控制指示符的值以及当执行数据跟踪时确定第二控制指示符的值。在又一形式中,当执行程序跟踪时,调试消息是程序跟踪调试消息,而当执行数据跟踪时,调试消息是数据跟踪调试消息。
在另一形式中,这里提供了一种用于调试软件程序的方法。确定软件程序是第一类型还是与第一类型不同的第二类型。当软件程序是第一类型时,使用与在软件程序的执行期间执行的第一处理器操作关联的未翻译地址而非与第一处理器操作关联的翻译地址来创建第一调试消息。当软件程序是第二类型时,使用与在软件程序的执行期间执行的第二处理器操作关联的翻译地址而非与第二处理器操作关联的未翻译地址来创建第二调试消息。在另一形式中,第一类型的特征在于用户程序类型和非用户程序类型中的一个,而第二类型的特征在于用户程序类型和非用户程序类型中的另一个。在又一形式中,第一类型的特征在于用户程序类型,而第二类型的特征在于非用户程序类型。在另一形式中,基于确定软件程序是第一类型还是第二类型,设置指示未翻译或翻译地址将被用于创建调试消息的控制指示符的值。在另一形式中,使用第二调试消息生成对应于软件程序的程序列表。在另一形式中,当软件程序是第一类型时,第一调试消息包括与第一处理器操作关联的未翻译地址的至少一部分或者与第一处理器操作关联的未翻译地址的压缩版本的至少一部分。当软件程序是第二类型时,第二调试消息包括与第二处理器操作关联的翻译地址的至少一部分或者与第二处理器操作关联的翻译地址的压缩版本的至少一部分。
在另一形式中,这里提供了一种具有执行多个处理器操作的处理器电路的数据处理系统,多个处理器操作中的每一个具有关联的未翻译地址。地址翻译逻辑将关联的未翻译地址翻译为翻译地址。多个处理器操作中的每一个具有关联的翻译地址。调试电路生成对应于多个处理器操作的至少子集中的每一个的调试消息,其中当控制指示符具有第一值时,使用与多个处理器操作的至少子集中的相应的处理器操作关联的未翻译地址生成每个调试消息,并且当控制指示符具有不同于第一值的第二值时,使用与多个处理器操作的至少子集中的相应的处理器操作关联的翻译地址生成每个调试消息。在一种形式中,对于每个调试消息,当控制指示符具有第一值时,调试电路包括未翻译地址的压缩版本的至少一部分,并且当控制指示符具有第二值时,调试电路包括翻译地址的压缩版本的至少一部分。在另一形式中,对于每个调试消息,调试电路进一步包括指示符字段,其指示调试消息包括未翻译地址的压缩版本的至少一部分还是翻译地址的压缩版本的至少一部分。
因此,将理解,这里示出的架构仅是示例性的,并且实际上可以实现许多其他的实现同一功能的架构。在抽象但仍明确的意义上,用于实现同一功能的任何元件配置被有效“关联”,使得实现所期望的功能。因此,在这里组合以实现特定功能的任何两个元件可以被视为彼此“关联”,使得实现所期望的功能,而与架构或中间元件无关。同样地,如此关联的任何两个元件还可以被视为彼此“可操作连接”或者“可操作耦合”以实现所期望的功能。
此外,本领域的技术人员将认识到,上述操作的功能之间的边界仅是说明性的。多个操作的功能可以被组合为单个操作,和/或单个操作的功能可以分布在另外的操作中。而且,替选实施例可以包括特定操作的多个实例,并且在各种其他实施例中操作顺序可以改变。
用于实现所期望的结构和功能的计算机可读介质可以包括,例如且无限制,许多以下介质:磁存储介质,包括磁盘和磁带存储介质;光存储介质,诸如致密盘介质(例如,CD-ROM、CD-R等)和数字视频光盘存储介质;非易失性存储器存储介质,包括基于半导体的存储器单元,诸如闪速存储器、EEPROM、EPROM、ROM;铁电数字存储器;MRAM;易失性存储介质,包括寄存器、缓冲器或缓存、主存储器、RAM等;以及数据传送介质,包括计算机网络、点对点通讯设备和载波传送介质,等等。
在一个实施例中,数据处理系统10是在诸如个人计算机系统的计算机系统中实现的。其他实施例可以包括不同类型的计算机系统。计算机系统是可以被设计为向一个或更多个用户赋予独立的计算能力的信息处理系统。计算机系统可以具有许多形式,包括但不限于大型机、微型机、服务器、工作站、个人计算机、笔记型计算机、个人数字助理、电子游戏、自动化和其他嵌入式系统、蜂窝电话和各种其他无线设备。典型的计算机系统包括至少一个处理单元、关联的存储器和许多输入/输出(I/O)设备。
尽管这里参照特定实施例描述了本发明,但是在不偏离所附权利要求中阐述的本发明的范围的情况下可以进行各种修改和改变。例如,可以使用任何类型的具有两个或更多个集成电路的存储器模块。典型地,每个存储器模块将具有公共支持结构,诸如印刷电路板,但其不是必需的。各种类型的存储器电路可以用于实现缓存并且可以使用各种寄存器存储设备实现所描述的FIFO(先入先出)。可以使用除了FIFO以外的其他存储设备。例如,在一些协议中,可以实现单个寄存器存储。在其他实施例中,可以使用LIFO(后进先出)存储设备。因此,说明书和附图应被视为说明性的而非限制性的,并且所有这些修改应包括在本发明的范围内。这里针对特定实施例描述的任何益处、优点或者对问题的解决方案不应被解释为任何或所有权利要求的关键的、必需的或基本的特征或元素。
如这里使用的术语“耦合”不应限于直接耦合或者机械耦合。
此外,如这里使用的术语“一个”被定义为一个或不止一个。再者,权利要求中使用的诸如“至少一个”和“一个或更多个”的引入习语不应被解释为意在由不定冠词“一个”引入的另一权利要求元素使包含该引入权利要求元素的任何特定的权利要求限制于仅包含一个该元素的发明,即使同一权利要求包括引入习语“一个或更多个”或“至少一个”以及诸如“一个”的不定冠词。对于定冠词的使用亦是如此。
除非另外说明,否则诸如“第一”和“第二”的术语用于任意区分这些术语描述的元素。因此,这些术语不一定旨在指示这些元素的时间或其他优先顺序。
Claims (20)
1.一种用于生成调试消息的方法,所述方法包括:
接收与同一处理器操作关联的翻译地址和未翻译地址;
确定一个或更多个控制指示符的值;
基于所述一个或更多个控制指示符的值,将所述翻译地址或所述未翻译地址选择为选定地址;以及
使用所述选定地址中的至少一部分创建调试消息。
2.根据权利要求1所述的方法,其中创建所述调试消息包括将所述选定地址的至少一部分包括在所述调试消息中。
3.根据权利要求1所述的方法,其中创建所述调试消息包括:
压缩所述选定地址的所述至少一部分以形成压缩的选定地址;以及
将所述压缩的选定地址的至少一部分包括在所述调试消息中。
4.根据权利要求3所述的方法,其中创建所述调试消息包括将指示所述选定地址是翻译地址还是未翻译地址的字段包括在所述调试消息中。
5.根据权利要求1所述的方法,进一步包括:
执行软件程序;以及
基于所述软件程序的类型设置所述一个或更多个控制指示符的值。
6.根据权利要求5所述的方法,其中所述软件程序的类型是用户类型或非用户类型。
7.根据权利要求1所述的方法,其中所述未翻译地址包括虚拟地址而所述翻译地址包括物理地址。
8.根据权利要求1所述的方法,其中创建所述调试消息包括将指示所述选定地址是翻译地址还是未翻译地址的字段包括在所述调试消息中。
9.根据权利要求1所述的方法,其中所述一个或更多个控制指示符包括:第一控制指示符,其指示翻译地址或未翻译地址是否将被用于创建程序跟踪调试消息,以及第二控制指示符,其指示翻译地址或未翻译地址是否将被用于创建数据跟踪调试消息。
10.根据权利要求9所述的方法,其中确定所述一个或更多个控制指示符的值包括当执行程序跟踪时确定所述第一控制指示符的值以及当执行数据跟踪时确定所述第二控制指示符的值。
11.根据权利要求10所述的方法,其中当执行所述程序跟踪时,所述调试消息是程序跟踪调试消息,而当执行所述数据跟踪时,所述调试消息是数据跟踪调试消息。
12.一种用于调试软件程序的方法,所述方法包括:
确定所述软件程序是第一类型还是与所述第一类型不同的第二类型;
当所述软件程序是所述第一类型时,使用与在所述软件程序的执行期间执行的第一处理器操作关联的未翻译地址,而非与所述第一处理器操作关联的翻译地址,来创建第一调试消息;以及
当所述软件程序是所述第二类型时,使用与在所述软件程序的执行期间执行的第二处理器操作关联的翻译地址,而非与所述第二处理器操作关联的未翻译地址,来创建第二调试消息。
13.根据权利要求12所述的方法,其中所述第一类型被表征为用户程序类型和非用户程序类型中的一个,而所述第二类型被表征为用户程序类型和非用户程序类型中的另一个。
14.根据权利要求13所述的方法,其中所述第一类型被表征为用户程序类型,而所述第二类型被表征为非用户程序类型。
15.根据权利要求12所述的方法,进一步包括:
基于确定所述软件程序是所述第一类型还是所述第二类型,设置指示未翻译或翻译地址是否将被用于创建调试消息的控制指示符的值。
16.根据权利要求12所述的方法,进一步包括:
使用所述第二调试消息生成对应于所述软件程序的程序列表。
17.根据权利要求12所述的方法,其中当所述软件程序是所述第一类型时,所述第一调试消息包括与所述第一处理器操作关联的所述未翻译地址的至少一部分或者与所述第一处理器操作关联的所述未翻译地址的压缩版本的至少一部分,并且当所述软件程序是所述第二类型时,所述第二调试消息包括与所述第二处理器操作关联的所述翻译地址的至少一部分或者与所述第二处理器操作关联的所述翻译地址的压缩版本的至少一部分。
18.一种数据处理系统,包括:
处理器电路,其执行多个处理器操作,所述多个处理器操作中的每一个具有关联的未翻译地址;
地址翻译逻辑,其将所述关联的未翻译地址翻译为翻译地址,使得所述多个处理器操作中的每一个具有关联的翻译地址;以及
调试电路,其生成对应于所述多个处理器操作的至少一个子集中的每一个的调试消息,其中当控制指示符具有第一值时,使用与所述多个处理器操作的所述至少一个子集中的相应处理器操作关联的未翻译地址来生成每个调试消息,并且当所述控制指示符具有不同于所述第一值的第二值时,使用与所述多个处理器操作的所述至少一个子集中的相应处理器操作关联的翻译地址来生成每个调试消息。
19.根据权利要求18所述的数据处理系统,其中,对于每个调试消息,当所述控制指示符具有所述第一值时,所述调试电路包括所述未翻译地址的压缩版本的至少一部分,并且当所述控制指示符具有第二值时,所述调试电路包括所述翻译地址的压缩版本的至少一部分。
20.根据权利要求19所述的数据处理系统,其中,对于每个调试消息,所述调试电路进一步包括指示符字段,其指示所述调试消息包括所述未翻译地址的所述压缩版本的至少一部分还是所述翻译地址的所述压缩版本的至少一部分。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/179,632 US8402258B2 (en) | 2008-07-25 | 2008-07-25 | Debug message generation using a selected address type |
US12/179,632 | 2008-07-25 | ||
PCT/US2009/041211 WO2010011380A1 (en) | 2008-07-25 | 2009-04-21 | Debug message generation using a selected address type |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102132246A true CN102132246A (zh) | 2011-07-20 |
Family
ID=41569678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009801324861A Pending CN102132246A (zh) | 2008-07-25 | 2009-04-21 | 使用选定地址类型的调试消息生成 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8402258B2 (zh) |
EP (1) | EP2324419B1 (zh) |
CN (1) | CN102132246A (zh) |
WO (1) | WO2010011380A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7958401B2 (en) | 2008-07-25 | 2011-06-07 | Freescale Semiconductor, Inc. | Debug trace messaging with one or more characteristic indicators |
US8438547B2 (en) * | 2009-05-05 | 2013-05-07 | Freescale Semiconductor, Inc. | Address translation trace message generation for debug |
US8589738B2 (en) * | 2009-05-05 | 2013-11-19 | Freescale Semiconductor, Inc. | Program trace message generation for page crossing events for debug |
CN101895355A (zh) * | 2010-07-19 | 2010-11-24 | 中兴通讯股份有限公司 | 一种实现多点调试的方法及装置 |
US9596082B2 (en) | 2011-12-15 | 2017-03-14 | Intel Corporation | Secure debug trace messages for production authenticated code modules |
WO2014027223A1 (en) * | 2012-08-16 | 2014-02-20 | Freescale Semiconductor, Inc. | Data bus network interface module and method therefor |
US9552279B2 (en) * | 2013-08-16 | 2017-01-24 | Nxp Usa, Inc. | Data bus network interface module and method therefor |
US10437935B2 (en) * | 2017-04-18 | 2019-10-08 | Salesforce.Com, Inc. | Natural language translation and localization |
US10489513B2 (en) | 2017-04-19 | 2019-11-26 | Salesforce.Com, Inc. | Web application localization |
US10795799B2 (en) | 2017-04-18 | 2020-10-06 | Salesforce.Com, Inc. | Website debugger for natural language translation and localization |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5608867A (en) * | 1993-04-05 | 1997-03-04 | Nec Corporation | Debugging system using virtual storage means, a normal bus cycle and a debugging bus cycle |
JP2003271417A (ja) * | 2002-03-12 | 2003-09-26 | Seiko Epson Corp | 情報処理装置及び電子機器 |
CN1764906A (zh) * | 2003-03-25 | 2006-04-26 | 飞思卡尔半导体公司 | 数据处理系统中的存储器管理 |
US20060271919A1 (en) * | 2005-05-27 | 2006-11-30 | Moyer William C | Translation information retrieval |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5127103A (en) | 1987-10-14 | 1992-06-30 | North American Philips Corporation | Real-time tracing of dynamic local data in high level languages in the presence of process context switches |
US5274811A (en) * | 1989-06-19 | 1993-12-28 | Digital Equipment Corporation | Method for quickly acquiring and using very long traces of mixed system and user memory references |
US5278961A (en) | 1990-02-22 | 1994-01-11 | Hewlett-Packard Company | Physical address to logical address translator for memory management units |
US5636374A (en) | 1994-01-04 | 1997-06-03 | Intel Corporation | Method and apparatus for performing operations based upon the addresses of microinstructions |
US5630049A (en) | 1994-11-30 | 1997-05-13 | Digital Equipment Corporation | Method and apparatus for testing software on a computer network |
US5694706A (en) | 1996-08-26 | 1997-12-09 | Penka; Etienne | Heelless athletic shoe |
US5913923A (en) | 1996-12-06 | 1999-06-22 | National Semiconductor Corporation | Multiple bus master computer system employing a shared address translation unit |
JP2000099366A (ja) * | 1998-09-21 | 2000-04-07 | Fujitsu Ltd | 演算処理装置および演算処理装置のデバッグ方法 |
US6808867B2 (en) | 1999-04-05 | 2004-10-26 | Science & Technology Corporation @ University Of New Mexico | Photo-definable self-assembled materials |
US6918065B1 (en) | 1999-10-01 | 2005-07-12 | Hitachi, Ltd. | Method for compressing and decompressing trace information |
US6601189B1 (en) | 1999-10-01 | 2003-07-29 | Stmicroelectronics Limited | System and method for communicating with an integrated circuit |
US6766472B2 (en) | 2000-09-22 | 2004-07-20 | Microsoft Corporation | Systems and methods for replicating virtual memory on a host computer and debugging using the replicated memory |
US6802031B2 (en) | 2001-05-24 | 2004-10-05 | International Business Machines Corporation | Method and apparatus for increasing the effectiveness of system debug and analysis |
US6883162B2 (en) | 2001-06-06 | 2005-04-19 | Sun Microsystems, Inc. | Annotations for transaction tracing |
US6862694B1 (en) | 2001-10-05 | 2005-03-01 | Hewlett-Packard Development Company, L.P. | System and method for setting and executing breakpoints |
FR2853011B1 (fr) * | 2003-03-26 | 2006-08-04 | Melchior Jean F | Moteur alternatif a recirculation de gaz brules destine a la propulsion des vehicules automobiles et procede de turbocompression de ce moteur |
US7197745B2 (en) * | 2003-05-02 | 2007-03-27 | Microsoft Corporation | User debugger for use on processes running in a high assurance kernel in an operating system |
US7500152B2 (en) | 2003-12-05 | 2009-03-03 | Freescale Semiconductor, Inc. | Apparatus and method for time ordering events in a system having multiple time domains |
US6920586B1 (en) | 2004-01-23 | 2005-07-19 | Freescale Semiconductor, Inc. | Real-time debug support for a DMA device and method thereof |
US7434108B2 (en) | 2004-04-30 | 2008-10-07 | Freescale Semiconductor, Inc. | Masking within a data processing system having applicability for a development interface |
TWI270769B (en) | 2004-11-15 | 2007-01-11 | Sunplus Technology Co Ltd | Trace, debug method and system for a processor |
US20060174225A1 (en) * | 2005-02-01 | 2006-08-03 | International Business Machines Corporation | Debugging a High Level Language Program Operating Through a Runtime Engine |
US7296137B2 (en) | 2005-05-27 | 2007-11-13 | Freescale Semiconductor, Inc. | Memory management circuitry translation information retrieval during debugging |
US20070033577A1 (en) | 2005-08-08 | 2007-02-08 | Arackal Paulose K | Method and apparatus for debugging program code |
US7996822B2 (en) | 2005-12-01 | 2011-08-09 | International Business Machines Corporation | User/process runtime system trace |
US8261130B2 (en) * | 2007-03-02 | 2012-09-04 | Infineon Technologies Ag | Program code trace signature |
US8024620B2 (en) | 2008-07-25 | 2011-09-20 | Freescale Semiconductor, Inc. | Dynamic address-type selection control in a data processing system |
US7958401B2 (en) | 2008-07-25 | 2011-06-07 | Freescale Semiconductor, Inc. | Debug trace messaging with one or more characteristic indicators |
-
2008
- 2008-07-25 US US12/179,632 patent/US8402258B2/en not_active Expired - Fee Related
-
2009
- 2009-04-21 WO PCT/US2009/041211 patent/WO2010011380A1/en active Application Filing
- 2009-04-21 CN CN2009801324861A patent/CN102132246A/zh active Pending
- 2009-04-21 EP EP09800718.0A patent/EP2324419B1/en not_active Not-in-force
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5608867A (en) * | 1993-04-05 | 1997-03-04 | Nec Corporation | Debugging system using virtual storage means, a normal bus cycle and a debugging bus cycle |
JP2003271417A (ja) * | 2002-03-12 | 2003-09-26 | Seiko Epson Corp | 情報処理装置及び電子機器 |
CN1764906A (zh) * | 2003-03-25 | 2006-04-26 | 飞思卡尔半导体公司 | 数据处理系统中的存储器管理 |
US20060271919A1 (en) * | 2005-05-27 | 2006-11-30 | Moyer William C | Translation information retrieval |
Also Published As
Publication number | Publication date |
---|---|
EP2324419A1 (en) | 2011-05-25 |
US8402258B2 (en) | 2013-03-19 |
EP2324419B1 (en) | 2018-09-19 |
EP2324419A4 (en) | 2015-12-02 |
US20100023735A1 (en) | 2010-01-28 |
WO2010011380A1 (en) | 2010-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102132246A (zh) | 使用选定地址类型的调试消息生成 | |
US8024620B2 (en) | Dynamic address-type selection control in a data processing system | |
US6496922B1 (en) | Method and apparatus for multiplatform stateless instruction set architecture (ISA) using ISA tags on-the-fly instruction translation | |
KR101050554B1 (ko) | 개발 인터페이스에 대한 적용성을 가진 데이터 처리 시스템내의 마스킹 | |
CN102395949B (zh) | 用于调试的地址转换跟踪消息生成 | |
US7958401B2 (en) | Debug trace messaging with one or more characteristic indicators | |
CN100472460C (zh) | 检测和显示计算机自检信息的方法及装置 | |
CN102326155A (zh) | 用于调试的地址转换跟踪消息的生成 | |
CN102736956A (zh) | 线程通信和同步技术 | |
CN100416496C (zh) | 更新指令错误状态寄存器 | |
CN105824750B (zh) | 一种在NorFlash程序空间调试的软断点模拟方法 | |
CN115269006A (zh) | 机器码指令转换方法、装置、电子设备及可读存储介质 | |
CN102541727B (zh) | 一种程序调试方法及系统 | |
CN112364109A (zh) | 事件的业务关联方法、系统、装置、电子设备及存储介质 | |
US20090063805A1 (en) | Data acquisition messaging using special purpose registers | |
US8352703B2 (en) | Address mapping of program code and data in memory | |
US7281162B2 (en) | Program-controlled unit | |
CN111682991B (zh) | 总线错误消息的处理方法及装置 | |
US20080010397A1 (en) | Flash memory with simulating system and method thereof | |
US20130283244A1 (en) | Debugging Extensible Markup Language | |
CN113986461A (zh) | 一种目标处理器上系统调用的侵入式半本地化仿真方法 | |
CN114780283A (zh) | 一种故障处理的方法及装置 | |
CN116339642A (zh) | 板载raid的创建方法、装置、计算机设备及存储介质 | |
CN117724664A (zh) | 数据写入方法、装置、设备及存储介质 | |
CN113656250A (zh) | 一种下位机板卡状态监控技术的实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110720 |