CN1407457A - 软件调试器和软件开发辅助系统 - Google Patents

软件调试器和软件开发辅助系统 Download PDF

Info

Publication number
CN1407457A
CN1407457A CN02127806A CN02127806A CN1407457A CN 1407457 A CN1407457 A CN 1407457A CN 02127806 A CN02127806 A CN 02127806A CN 02127806 A CN02127806 A CN 02127806A CN 1407457 A CN1407457 A CN 1407457A
Authority
CN
China
Prior art keywords
instruction
mentioned
address
function
tape spare
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.)
Granted
Application number
CN02127806A
Other languages
English (en)
Other versions
CN1203409C (zh
Inventor
津幡真太郎
隅田清彦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN1407457A publication Critical patent/CN1407457A/zh
Application granted granted Critical
Publication of CN1203409C publication Critical patent/CN1203409C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software 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)
  • Devices For Executing Special Programs (AREA)

Abstract

在对具备带条件指令的微电脑上的程序开发进行辅助的软件开发辅助系统中,以把带条件指令所实现的程序条件逻辑结构的执行过程向利用者易理解地进行显示为目的。为此,在调试器中具有进行程序的步骤执行处理时判定停止地址的指令是否为带条件指令的功能;当指令为带条件指令的情况下取得指令的条件标志值的功能;根据条件标志值的值判定带条件指令是否被执行的功能;根据判定结果改变停止地址的指令显示方法向画面上显示的功能。根据此结构,当带条件指令由于条件不成立而没有被执行的情况下,能够改变显示方法向利用者提示,并易于确认程序的执行经过。

Description

软件调试器和软件开发辅助系统
技术领域
本发明涉及进行微电脑上的执行程序调试的软件调试器和软件开发辅助系统,特别涉及具有条件指令的微电脑程序执行过程的显示方法。
现有技术
随着近年电子技术的发展,在家电设备等组合设备上加入微电脑等,进行伴随程序开发的设备开发。
而且,随着家电设备的高性能化,具备为达到高速化的带条件指令的高性能微电脑已经被采用。
在程序开发上,软件开发者,利用调试器,通过确认开发的程序是否按照设计的意图动作,进行程序调试。这时候,利用被称为程序逐次执行一条指令的逐步执行和显示系列执行结果的跟踪功能的调试器功能来进行程序动作的确认。
图26中,表示现有例子的软件开发辅助系统的结构。201是C源程序,软件开发者是实现开发对象的应用系统的程序员。202是,编译器,C源程序201作为输入,输出由在开发对象的应用系统里使用的微电脑用的执行代码和调试信息组成的目标文件203。204是调试器,输入目标文件203,从用户界面输入来自软件开发者的指示,确认调试对象的程序动作,进行调试。
下面对现有的调试器204的动作予以说明。图27中,表示调试器204的功能方框图。
301是,调试器处理部,进行作为利用者的软件开发者的调试指令的输入,向利用者的信息显示和信息输出等的输入输出处理,还进行与输入的调试指令相对应的处理。
302是执行目标环境,是目标文件203程序的执行环境,比如在计算机上构筑的微电脑模拟器。还有,执行目标环境302也可以是,作为目标的装备着微电脑和内存的评价板。调试器处理部301是,通过控制这个执行目标环境302,实现调试器功能。
303是目标代码信息,是根据利用者的指示把作为调试对象程序的目标文件203读入调试器204在内部存储的信息。
304是调试信息,包含调试中必要的各种信息。这个是记录在目标文件203,被读入调试器中。它的内容是由,比如函数名和变量名等符号和地址的对应的信息和,进行C语言程序的源代码行和地址的对应的行号信息和,记载变量是分配了寄存器还是内存等,哪些资源的配置信息组成。
305是指令形式信息,是指令代码和指令形式对应的信息,还包含汇编形式的助记字符串的信息。如果参照这个信息,从存在于内存上的指令代码的内存值,能够实现反汇编。
306是,跟踪数据信息,存储为进行跟踪输出的跟踪帧数据。
图28中,表示以前调试器的处理流程,调试器204起动后,在步骤S401,进行调试器的作业用内存的初始化和显示用窗体的绘图等初始处理。
接下来,在步骤S402,从利用者,接受调试器指令的输入。在这里,利用者,输入调试对象程序目标代码的读入指令和,程序执行开始和断点设定,内存转储等调试必要的指令。
接下来在步骤S403,解释输入的指令,在步骤S404,进行与输入的指令对应的各种处理。处理内容为以前的技术所以不再详细说明了。
接下来在步骤S405,进行调试器的显示更新处理。在显示更新处理中包括,在显示代码的窗体显示程序执行停止地址前后的代码,更新显示内容的处理和,在显示内存内容的内存窗体,伴随内存内容的变更来更新显示内容的处理等。
在步骤S404,在输入结束指令的情况下,在步骤S406,进行调试器的作业区域的释放以及与执行目标环境的连接的切断等结束处理。
在图29,表示步骤S405的显示更新处理的处理流程。在显示更新处理,显示更新在必要的情况下进行对应处理。
在步骤S2801,在目标执行环境上,调查调试对象程序的执行状态,在执行停止的情况下,进入到步骤S2802。执行没有停止,程序正在执行的情况下,因为显示更新没有必要,所以结束处理。在执行停止的情况下,在后续的行,进行向开发者显示在调试对象程序的哪个地方停止了的处理。
在步骤S2802,取得调试对象程序的停止地址。即,取得执行目标环境302上的微电脑程序计数器(PC)的寄存器的值。
接下来在步骤S2803,从在调试器内部存储的目标代码信息303,读出在步骤S2802取得的停止地址的指令代码。
接下来在步骤S2804,把指令代码反汇编,得到与指令代码对应的汇编行字符串。还有,反汇编是,通过参照调试器内部管理的指令形式信息305来实现的。
接下来在步骤S2805,把得到的汇编行字符串在画面上用反转的颜色显示,把先前反转显示的行返回通常的颜色。
接下来在步骤S2806,进行指令代码显示以外的内存内容等显示的更新处理。
用上面这样组成的调试器,程序开发者,比如通过把步骤执行指令连续地输入调试器,当前程序的执行指令被逐个的反转显示,便可以知道调试对象程序的执行经过,使调试成为可能。
还有,日本国专利第2892978号中公布的「软件·跟踪的生成装置及方法」是,在显示程序的执行过程的跟踪上,以把被执行的各种指令根据执行顺序分颜色显示为特征,由此把程序的执行过程易判别的显示出来。
不过,在具备带条件指令的微电脑,把在以前用多个指令实现的条件执行处理,用一个带条件的指令就能实现。为此,如果在以前,把执行过的指令和执行经过结合逐步跟踪的话能够确认程序的执行过程,但只通过跟踪被执行过的指令,便留下了确认困难的课题。
下面,采用带条件指令的程序的例子,把在现有例子里的调试器执行过程的显示予以说明。
图5中,表示调试对象的C语言程序的一部分。「01:」,「02:」等是为了说明方便的行号。是根据变量a的值,有条件执行02行和04行处理的程序。
在图6中,表示把前述C语言程序汇编成具备带条件指令的微电脑指令代码的结果。「0x400:」,「0x404:」等是,表示配置了指令的地址。在这里,C语言的if-else条件执行结构是,利用带条件指令来实现的。
在0x400地址段,寄存器Ra的值和10比较后的结果代入标志c0。在0x404地址段,标志c0为真的情况下,向寄存器Rb传入寄存器Ra值的平方。标志c0为伪的情况下,在这个指令,不进行任何处理。
在0x408地址段,标志c0为伪的情况下,向寄存器Rb传送寄存器Rc的内容。标志c0为真的情况下,不进行任何处理。图6从0x400地址段到0x408地址段的指令组,和图5第01行到第05行的if-else语句记述的逻辑结构相对应。
下面,对于在以前的调试器上,利用者对前述C语言程序部分的动作从地址为0x400的地址段到0x408地址段的部分,针对以步骤执行来确认情况下的例子给予说明。
假定调试对象程序在0x400地址段停止执行,这种情况下,正如图30(a)表示的那样,把停止地址0x400地址的汇编行反转后显示在代码显示画面上。
利用者,在步骤S402,输入步骤执行指令。
在步骤S403,进行输入指令的解释,取出指令类别为步骤执行等必要的信息。
在步骤S404,根据在步骤S403取出的信息,进行步骤执行处理。步骤执行处理是,通过在作为执行目标环境302的微电脑模拟器上,控制指令执行使之执行一条指令来实现的。这样做的结果是,调试对象程序,在执行目标环境302上,从停止地址执行一条指令,然后停止执行。
在步骤S405,为了进行显示更新处理,进入到步骤S2801。
在步骤S2801,判断执行是否停止。因为是执行停止所以进入到步骤S2802。
在步骤S2802,取得作为执行目标环境302的微电脑模拟器的程序计数器(PC)的值,取得停止地址。这种情况下,作为停止地址得到0x404。
接下来,在步骤S2803,从目标代码信息303,读到停止地址0x404的指令代码,接着在步骤S2804,参照指令形式信息305,把指令代码反汇编,作为结果字符串取得汇编行「(c0)mul Ra,Ra,Rb」。
在步骤S2805,把前述汇编行「(c0)mul Ra,Ra,Rb」的显示颜色更新为反转色。还有,把前面颜色反转的汇编行恢复到通常的颜色。这个结果的显示例在图30(b)中表示。
下面同样,重复步骤执行的情况下的显示例在图30(c),30(d)中表示。
通过确认反转显示的汇编行逐次变化下去,便能确认程序执行的过程。不过,以地址0x404的指令实现所得的处理「mul Ra,Ra,Rb」和以地址0x408的指令实现所得的处理「mov Rc,Rb」,难以确认实际上是否被执行。
即,有难以确认在if-else控制结构中记载的程序逻辑的课题。
还有,对于跟踪结果的显示也有同样的课题。
发明内容
本发明鉴于上述课题,其目的在于提供能够把用带条件指令来实现的程序条件逻辑结构的执行过程向利用者容易理解地显示出来的软件调试器和软件开发辅助系统。
第一发明的软件调试器是,在把调试对象的微电脑程序向画面上显示的时候,能够将程序执行停止时的停止地址与其他地址区别显示的软件调试器,具有判定在进行程序步骤执行处理时停止地址的指令是否是带条件指令的功能;在指令是带条件指令的情况下取得指令的条件标志值的功能;根据条件标志值的值判定带条件指令是否被执行的功能;根据判定结果来改变停止地址的指令显示方法向画面上显示的功能。
根据这个结构,带条件指令当条件不成立而没被执行的情况下,能够改变显示方法向利用者提示,利用者能够易于确认包含带条件指令的程序的执行过程。
在上述的第一发明结构中,理想的是具有在根据带条件指令是否被执行的判定结果改变停止地址指令的显示方法向画面上显示的时候,把停止地址部分反转显示的功能(第二发明)。或者,理想的是具有在根据带条件指令是否被执行的判定结果改变停止地址指令的显示方法向画面上显示的时候,把停止地址部分和条件标志部分反转显示的功能(第三发明)。
还有,第四发明的软件调试器是在进行调试对象的微电脑程序的执行处理后,把程序指令跟踪输出的软件调试器,具有所执行的指令是标志更新指令的情况下把被更新的标志值作为跟踪数据输出的功能;判定跟踪输出对象的指令是否是带条件指令的功能;在判定结果是跟踪输出对象指令是带条件指令的情况下作为跟踪数据取得所输出的标志值的功能;根据标志值的值判定带条件指令是否被执行的功能;根据判定结果来改变跟踪输出的指令输出方法并输出的功能。
根据这个结构,在跟踪输出中,能够参照条件标志值,能够判定带条件指令的执行结果,在带条件指令因条件不成立没被执行的情况下,能够改变显示方法向利用者提示,利用者能够易于确认包含带条件指令的程序的执行过程。
还有,第五发明的软件开发辅助系统是,在把调试对象的微电脑程序向画面上显示的时候,能够将程序的执行停止时的停止地址与其他地址区别显示的软件开发辅助系统,具有从调试对象程序检出全部带条件指令的条件标志的生存区间的功能;判定显示对象地址的指令是否为带条件指令的功能;在判定结果为带条件指令的情况下判定显示对象地址和停止地址是否存在于在带条件指令被参照的条件标志的同一生存区间内的功能;在判定结果是带条件指令的情况下取得在带条件指令被参照的条件标志值的功能;根据条件标志值的值来判定带条件指令是否被执行的功能;根据显示对象地址和停止地址是否存在于在带条件指令被参照的条件标志的同一生存区间内的判定结果和由条件标志值的值带条件指令是否被执行的判定结果,来改变停止地址以及其前后地址的指令显示方法向画面上显示的功能。
根据这个结构,在进行程序执行停止时的显示的时候,如果在条件标志的生存区间内则判定带条件指令的执行,可改变显示方法向利用者提示,利用者能够易于确认包含带条件指令的程序的执行过程。
还有,第六发明的编译器是,微电脑的编译器,具有检出指令代码串中包含的带条件指令的条件标志的生存区间的功能;把检出的条件标志的生存区间的信息输出的功能。
还有,第七发明的软件调试器是,在把调试对象的微电脑程序向画面上显示的时候,能把程序执行停止时的停止地址与其他地址区别显示的软件调试器,具有判定显示对象地址的指令是否为带条件指令的功能;在判定结果为带条件指令的情况下判定显示对象地址是否存在于在带条件指令被参照的条件标志的生存区间内的功能;在判定结果为带条件指令的情况下取得在带条件指令被参照的条件标志值的功能;根据条件标志值的值来判定带条件指令是否被执行的功能;根据显示对象地址是否存在于条件标志的生存区间内的判定结果和由条件标志值的值带条件指令是否被执行的判定结果,来改变停止地址以及其前后地址的指令显示方法向画面上显示的功能。
还有,第八发明的软件调试器是,在第七发明的软件调试器中,具有输入从第六发明的编译器输出的条件标志的生存区间信息的功能。
利用上述的第六发明的编译器,第七,第八发明的软件调试器便能够构成第五发明的软件开发辅助系统。
还有,第九发明的机器可读记录介质,记录了微电脑程序的机器语言代码以及其存储地址和带条件指令的条件标志的定义地址以及参照地址的信息。
附图说明
图1是本发明第一实施例的显示更新处理流程图。
图2是表示本发明第一实施例的软件开发辅助系统的结构图。
图3是本发明第一实施例的调试器功能方框图。
图4是本发明第一实施例的调试处理流程图。
图5是表示调试对象的C语言程序的一部分图。
图6是表示对应于调试对象的C语言程序的一部分的汇编例子图。
图7是表示本发明第一实施例的步骤执行画面的例子图。
图8是表示本发明第二实施例的软件开发辅助系统的结构图。
图9是本发明第二实施例的调试器功能方框图。
图10是本发明第二实施例的调试处理流程图。
图11是本发明第二实施例的模拟器的处理流程图。
图12是本发明第二实施例的模拟器的跟踪数据生成处理的处理流程图。
图13(a)是本发明第二实施例的跟踪的帧数据说明图,图13(b)是表示本发明第二实施例的跟踪的帧数据的例子图。
图14是本发明第二实施例的跟踪输出处理的处理流程图。
图15是表示本发明第二实施例的跟踪的输出例子图。
图16是表示本发明第三实施例的软件开发辅助系统结构图。
图17是本发明第三实施例的编译器的功能方框图。
图18是本发明第三实施例的标志生存区间信息输出部的处理流程图。
图19是本发明第三实施例的使用定义连锁信息的说明图。
图20(a)是本发明第三实施例的标志生存区间信息的说明图,图20(b)是表示本发明第三实施例的标志生存区间信息的例子图。
图21是本发明第三实施例的调试器的功能方框图。
图22是本发明第三实施例的调试器处理流程图。
图23是本发明第三实施例的显示更新处理流程图。
图24(a)~(d)是表示本发明第三实施例的执行停止时的显示例子图。
图25是本发明实施例的指令形式信息的说明图。
图26是表示现有例的软件开发辅助系统的结构图。
图27是现有例的调试器的功能方框图。
图28是现有例的调试器的处理流程图。
图29是现有例的显示更新处理的流程图。
图30是表示现有例的步骤执行画面的例子图。
实施方式
对于本发明的实施例参照附图予以说明。
第一实施例
首先,对于本发明第一实施例予以说明。图2中,表示本发明第一实施例的软件开发辅助系统的结构。201是C源程序,作为利用者的软件开发者是实现开发对象的应用系统的程序员。202是,编译器,C源程序201作为输入,输出由在开发对象的应用系统中使用的微电脑用的执行代码和调试信息构成的目标文件203。204A是,调试器,输入目标文件203,把来自软件开发者的指示从用户接口输入,确认调试对象的程序动作等,进行调试。
下面,对于本实施例的调试器204A予以说明。图3中,表示调试器204A的功能方框图。
301是,调试器处理部,进行输入来自作为利用者的软件开发者的调试器指令,和向利用者的信息显示和输出等的输入输出处理,还进行与输入的调试器指令相对应的处理。
302是,执行目标环境,是目标代码203的程序执行环境,比如在计算机上构筑的微电脑模拟器。而且,执行目标环境302也可以是成为目标的微电脑或配置了内存的评价板。调试器处理部301是,通过控制这个执行目标环境302来实现调试的功能。
303是,目标代码信息,根据利用者的指示把调试对象程序的目标文件203读入到调试器204A内在内部存储的信息。
304是,调试信息,包含调试中必要的各种信息。在目标文件203中记录,被读入调试器。内容是由,比如函数名和变量名等符号和地址相对应的信息和,C语言程序的源程序行和地址相对应的行号信息和,记载变量分配了寄存器或内存等,哪些资源的配置信息等组成。
305是,指令形式信息,指令代码和指令形式相对应的信息,还包含汇编形式的助记字符串的信息。如果参照这个信息,从内存上存在的指令代码即内存值,能实现反汇编。
图25中,表示指令形式信息305的例子。这个指令形式信息是由,为判别指令代码的指令格式信息3001,保持对应的助记字符串的助记字符串信息3002,表示指令执行用去的时间的周期数信息3003,表示是否为带条件指令的带条件指令信息3004,表示是否是更新在带条件指令参照的条件标志的指令的标志更新信息3005构成,与各指令形式相对应,被管理着。在3006,3007,3008中,各表示一个例子。3006是,add指令的指令形式信息。指令格式是,以2进制表示,寄存器指定域是,以<R1>等表示。还有,表示不是带条件指令,不是标志更新指令。同样,在3007,作为带条件指令的add指令的指令形式信息,3008是,更新条件标志的cmp指令的指令形式信息。
306是,跟踪数据信息,为了进行跟踪输出,存储跟踪帧数据。
图4中,表示调试处理部301的处理流程。调试器起动后,在步骤S401,进行调试器作业用内存的初始化和显示用窗体的绘图等的初始处理。
接下来在步骤S402,从利用者,接受调试器指令的输入。在这里,利用者输入调试对象程序目标代码的读入指令和程序执行开始或断点的设定,内存的转储等调试所必需的指令。
接下来在步骤S403,解释输入的指令,在步骤S404,进行与输入的指令相对应的各种处理。处理内容因为是以前的技术不再详细说明。
接着在步骤S405,进行调试器的显示更新处理。在显示更新处理中有,在显示代码的代码窗体,更新显示程序执行停止地址前后的代码显示内容的处理,在显示内存内容的内存窗体,伴随内存内容的变更来更新显示内容的处理等。
在步骤S404,结束指令被输入的情况下,在步骤S406,进行调试器的作业领域的解放和与执行目标环境连接的切断等结束处理。
图1中,表示步骤S405的显示更新处理的处理流程
在步骤S101,执行目标环境302上,调查调试对象的程序执行状态,执行停止的情况下,进入步骤S102。执行没有停止,程序正在执行的情况下,因为显示的更新没有必要所以结束处理。执行停止的情况下,在后续的行,进行把调试对象的程序在哪个地方停止向程序开发者显示的处理。
在步骤S102,取得调试对象程序的停止地址。即,取得执行目标环境302上的微电脑程序计数器(PC)寄存器的值。
接下来在步骤S103,从在调试器内存储的目标代码信息303,读出在步骤S102取得的停止地址的指令代码。
接下来在步骤S104,把指令代码反汇编,得到与指令代码相对应的汇编行字符串。而且,反汇编是,通过参照在调试器内部管理的指令形式信息305实现的。
接下来在步骤S105,从指令代码参照在调试器内部管理的指令形式信息305,判定是否为带条件指令。是否为带条件指令,可以通过参照指令形式信息的带条件指令信息3004来判定。在是带条件指令的情况下,进入到步骤S106。在不是带条件指令的情况下,进入到步骤S110。
在步骤S106,参照指令形式信息305,求得条件标志的种类,从执行目标环境302取得前述条件标志的值。
在步骤S108,根据在步骤S106得到的条件标志值,判断带条件指令是否被执行。在带条件指令被执行的情况下,进入到步骤S110。在带条件指令没有被执行的情况下,进入到步骤S109。
在步骤S109,带条件指令没有被执行的情况下,把没被执行的演算部分用浅灰色,把条件标志部用反转颜色显示,把前面反转显示的行恢复到通常的显示颜色。
在步骤S110,把对应的汇编行字符串在画面上用反转的显示颜色显示,把前面反转显示的行恢复到通常的显示颜色。
在步骤S111,进行指令代码显示以外的内存内容等的显示更新处理。
下面,具体地举个例子将动作予以说明。
图5中,表示调试对象的C语言程序的一部分。「01:」,「02:」等是,为了说明的行号。是根据变量a的值,02行和04行的处理被有条件执行的程序。
图6中,表示将图5的C语言程序汇编成具有带条件指令的微电脑指令代码的结果。即,在编译器202汇编的结果的一部分。还有,「0x400:」,「0x404:」等是,表示配置了指令的地址。在这里,C语言的if-else条件执行结构是,利用带条件指令来实现的。
在0x400地址段,寄存器Ra的值和10比较器结果带入标志c0。在0x404地址段,标志c0为真的情况下,向寄存器Rb传送寄存器Ra的值的平方。标志c0为伪的情况下,在这个指令,不进行任何处理。
在0x408地址段,标志c0为伪的情况下,向寄存器Rb传送寄存器Rc的内容。标志c0为真的情况下,不进行任何处理。图6的从0x400地址段到0x408地址段的指令组是,与图5的第01行到第05行的if-else语句记述的逻辑结构相对应。
在图6所举的程序,在存器Ra的值为10的情况下,认为调试对象程序在0x400地址段停止执行。
这种情况下,如图7(a)所表示的,把停止地址0x400地址段的汇编行颜色反转向代码显示画面上显示。这个显示画面是,与调试器204A连接的显示器(未图示)的画面。
利用者,在步骤S402,输入步骤执行指令。
在步骤S403,进行输入指令的解释,把指令的种类为步骤执行等必要的信息取出来。
在步骤S404,根据在步骤S403取出的信息,进行步骤执行处理。其结果,调试对象程序,在执行目标环境302上,从停止地址执行一条指令,而后停止执行。
在步骤S405,为了进行显示更新处理,进入到步骤S101。
在步骤S101,判断执行是否停止。因为执行停止所以进入到步骤S102。
在步骤S102,从执行目标环境302取得微电脑的程序计数器(PC)的值,取得停止地址。这种情况下,作为停止地址取得0x404。
接下来在步骤S103,从目标代码信息303,读到停止地址0x404的指令代码,接着在步骤S104参照指令形式信息305,把指令代码反汇编,作为结果字符串取得汇编行「(c0)mul Ra,Ra,Rb」。
在步骤S105,判定该指令为带条件指令,进入到步骤S106。
在步骤S106,取得该指令的条件标志c0的值。这种情况下,作为c0的值取得1。
在步骤S108,因为条件标志c0的值为1,所以判定带条件指令被执行,进入到步骤S110。
在步骤S110,把汇编行「(c0)mul Ra,Ra,Rb」颜色反转显示,这个结果的显示例子在图7(b)中表示。
接着,利用者输入了步骤执行指令的情况下,同样,进入到步骤S101,S102,S103,S104,S105,S106,S108。
在步骤S108,因为条件标志!c0为0,所以判定带条件指令没被执行,进入到步骤S109。
在步骤S109,把没被执行的演算部分「mov Rc,Rb」用浅灰色,把条件标志部「!c0」用反转显示颜色显示,把前面反转显示的行恢复到通常的显示颜色。其结果的显示例子在图7(c)中表示。还有,在图7(c)中,为了方便把「mov Rc,Rb」用四角括起来表示,实际上,认为没有四角括线,用浅灰色显示着。
同样,接着输入步骤执行指令的情况下,如图7(d)表示的那样显示。
如上构成的调试器,利用者利用步骤执行逐步追踪程序执行的情况下,通过把没有执行的带条件指令改变其显示形式显示出来,能够将用带条件指令来实现的条件执行的逻辑易识别地显示出来,能够知道调试对象的程序执行经过,使调试成为可能
在本实施例,在步骤S109,把在带条件指令没有执行情况下的显示方法作为,将没有执行的演算部分以浅灰色显示的,不过,覆盖取消线或把显示字体的大小变小,把显示字符串设为「未执行」等,其他的方法也可以
还有,在本实施例,在步骤S109,把带条件指令没有执行情况下的显示方法作为,将停止地址部「0x408:」和条件标志部「!c0」用反转显示颜色显示,将没有执行的演算部分作为浅灰色显示的,仅将停止地址部「0x408:」用反转显示颜色显示,将条件标志部和没有执行的演算部分用浅灰色显示。或,覆盖取消线,或,将显示字体的大小变小,或,将显示字符串设为「未执行」也可以。
第二实施例
接着对于本发明第二实施例予以说明。图8是第二实施例的软件开发辅助系统的结构图,图9是,调试器204B的功能方框图,和第一实施例几乎相同的结构。第二实施例,和第一实施例相比,调试器204B内的处理,即在执行目标环境302进行的跟踪数据输出处理和,在步骤S404的跟踪输出处理的处理内容不一样。
在本发明第二实施例,执行目标环境302是在作为对象的微电脑的软件模拟器实现的。
图10是,调试器处理部301的处理流程图,是和本发明第一实施例一样的处理流程。
在调试器204B,程序执行指令被输入的情况下,在步骤S404进行程序执行处理。程序执行处理是,对于执行目标环境302通过指示程序执行来进行。在本实施例,执行目标环境302是,由软件模拟器实现的,进行程序的执行是,通过进行指令模拟来实现的。
图11中,表示作为软件模拟器的执行目标环境302的指令模拟处理的处理流程。
在图11,在步骤S1101,读出模拟器的程序计数器寄存器(PC)的值,判定执行地址是否已到达既定的停止地址(比如exit函数)。如果到达结束处理,没有到达进入到步骤S1102。
在步骤S1102,从调试操作处理部把利用者指定的中断地址信息读出,判定执行地址是否到达该中断地址,如果到达结束处理,没有到达进入到步骤S1103。还有,利用者,在通常调试对象程序的执行开始前,把想使之中断的地址作为中断地址设定指令,传给步骤S402。调试操作处理部,是在调试器处理部301中,在步骤S402得到把利用者输入的调试器指令在步骤S403解释的结果和中断地址的信息。
在步骤S1103,进行一条指令的模拟。
在步骤S1104,进行一条指令执行的跟踪数据的输出。图12中,表示跟踪数据输出处理S1104的处理流程。
跟踪结果是,把每条指令在调试器内的跟踪数据信息306中作为跟踪数据被记录。这个跟踪数据的结构在图13(a)中表示。1301是,帧号码域,记录着跟踪输出的信息号。1302是,时刻域,记录着跟踪输出的时刻。1303是,数据种类域,记录着跟踪数据的种类。1304是,地址域,记录着与跟踪数据关联的地址。在跟踪数据记录了执行指令的情况下,记录前述指令的地址。1305是,指令域,记录着执行的指令。1306是,数据域,记录着与跟踪数据关联的数据。在跟踪数据记录了条件执行标志值的情况下,记录前述标志值
下面,参照图12,对1条指令执行部分的跟踪数据输出处理S1104予以说明。
在步骤S1201,记录执行指令的帧数据。记录帧号码,时刻,作为跟踪数据种类记录执行指令,记录执行地址,指令的汇编行。那之后,把帧号码增加1。时刻是,取得模拟器管理的执行周期数,并记录。汇编行是,参照指令形式信息305求得。
在步骤S1202,参照指令形式信息305,判别现指令的种类。如果是标志更新指令,则进入到步骤S1203,如果不是那样则结束。
在步骤S1203,把条件标志的值新作为跟踪数据来记录。记录帧号码,时刻,作为跟踪数据种类记录条件标志的种类,记录执行地址,条件标志的值。那之后,把帧号码增加1。条件标志的值是,从执行目标环境302的模拟器取得的。
下面,对从图6所示程序的0x400地址段执行到0x40c地址段的情况,具体予以说明。还有假定当初程序计数器的值为0x400,寄存器Ra的值为10。且,假定作为停止地址设为0x410地址段,中断地址没有被设定。
利用者,在步骤S402输入程序执行指令。在步骤S403,解释输入的指令,在步骤S404进行程序执行处理。在步骤S404,对作为软件模拟器的执行目标环境302,进行指令模拟器执行的控制。在软件模拟器,判定在步骤S1101执行地址0x400地址段是否为停止地址的0x410地址段。因为没有到达停止地址,所以进入到步骤S1102。在步骤S1102,进行中断地址的判定,因为中断地址没有被设定,所以进入到步骤S1103。在步骤S1103,进行0x400地址段的cmp指令的模拟。接着在步骤S1104为了进行跟踪数据的输出,而后进入到步骤S1201。在步骤S1201,将前述cmp指令的跟踪数据记录到跟踪数据信息306中。记录的跟踪数据信息在图13(b)的1307中表示。接着在步骤S1202判定该指令是否为标志更新指令。前述cmp指令是更新标志c0的指令所以进入到步骤S1203。在步骤S1203,记录条件标志值跟踪数据。记录的跟踪数据信息在图13(b)的1308中表示。下面同样,进行0x404地址段,0x408地址段,0x40c地址段的指令模拟,记录图13(b)的1309,1310,1311中表示的跟踪数据。
在上面,程序执行处理的步骤S404结束,进入到步骤S405,进行显示停止地址前后代码等的显示更新处理。那之后,等待下一条指令的输入(步骤S402)。
接着,对利用者把跟踪数据信息306中蓄积的跟踪数据,输出的情况予以说明。
图14中,表示在从利用者输入了跟踪数据输出指令的情况下,在步骤S404进行跟踪数据输出处理时的处理流程。
跟踪数据输出,利用者为了确认调试对象程序的执行过程,程序执行后进行。
步骤S1401判定全部的跟踪数据输出是否完了。完了的情况下结束,没有完了的情况下进入到步骤S1402。
在步骤S1402,从跟踪数据信息306按顺序取出一条跟踪数据。
在步骤S1403,判别跟踪数据的种类。在是条件标志值跟踪数据的情况下,进入到步骤S1404,在是执行指令跟踪数据的情况下进入到步骤S1405。
在步骤S1404,从该跟踪数据读取条件标志的种类和其值而后存储。
在步骤S1405,从该跟踪数据读取指令域,判定跟踪指令是否为带条件指令。带条件指令的情况下进入到步骤S1406,不是带条件指令的情况下,进入到步骤S1409。
在步骤S1406,条件指令的情况下,参照在步骤S1404存储的标志值。
在步骤S1407,从条件标志值判定带条件指令是否被执行。被执行的情况下,进入到步骤S1409。没有被执行的情况下,进入倒步骤S1408。
在步骤S1408,把没有被执行的演算部分用「<>」括起来然后输出指令,返回到步骤S1401。
在步骤S1409,输出执行的指令,返回到步骤S1401,对全部跟踪数据,反复进行输出处理。
在上面,跟踪数据输出处理的步骤S404结束,进入到步骤S405的显示更新处理。这种情况下,因为不是停止地址和内存内容发生变化,所以不进行显示的更新。
下面,对从图6所示程序的0x400地址段执行到0x40c地址段的情况,具体予以说明。假定寄存器Ra的值为10。这种情况下,在跟踪数据信息306中,存储着在图13(b)的1307,1308,1309,1310,1311中表示的跟踪数据。
图15中,表示图6所示指令组被执行的情况下的,跟踪数据的输出例子。
利用者,在步骤S402,输入跟踪数据输出指令。在步骤S403,解释输入的指令,在步骤S404为了进行跟踪数据的输出处理,进入到步骤S1401。在步骤S1401,判定跟踪数据信息306中存储的全跟踪数据是否输出完毕。因为全跟踪数据没有输出完毕所以进入到步骤S1402。在步骤S1402,取出一条跟踪数据,得到1307中表示的跟踪数据。在步骤S1403判定跟踪数据的种类,1307的种类是执行指令所以进入到在步骤S1405。在步骤S1405,判定是否为带条件指令。因为1307中记录的指令不是带条件指令所以进入到步骤S1409。在步骤S1409以通常的形式输出「0x400:cmp Ra==10,c0」。
同样地顺次输出,对在带条件指令没有执行的地址0x408的指令,没有执行的演算部分输出「<mov Rc,Rb>」。
如上面一样,把图13(b)中表示的跟踪数据作为输入,图14中表示处理结果,输出图15的数据。图15是根据跟踪数据输出指令输出的跟踪数据文件的内容,不仅是文件,向画面上显示的情况也有。
在如上面这样构成的调试器,在利用者通过指令跟踪输出确认程序的执行经过的情况时,通过把没有执行的带条件指令改变显示形式显示,能够把由带条件指令实现的条件执行逻辑易判别的显示出来,能够知道调试对象的程序执行经过,使调试成为可能。
还有,在本实施例,在步骤S1408,把带条件指令没有执行情况的显示方法作为,把没有执行的演算部分用「<>」括起来输出,不过,覆盖取消线或把显示字体的大小变小,把显示字符串设为「未执行」等,其他的方法也可以。
还有,在本实施例,把执行目标环境302作为了软件模拟器,不过,作为评价板,采用把跟踪输出处理S1104在用硬件来实现的跟踪输出部进行的结构也可以。
第三实施例
接下来对本发明第三实施例,予以说明。
图16是本发明第三实施例的软件开发辅助系统的结构图,和第一实施例几乎一样的结构。和第一实施例相比,编译器202C及调试器204C的处理不一样。
图17中,表示本实施例的编译器202C的功能方框图。在图17,1701是源程序的输入部,输入源程序。
1702是程序的变换部,把源程序向过渡记述水平表现变换。
1703是程序最优化部,通过移动过渡记述水平表现的程序中的操作来改变执行顺序或把不要的操作删除来进行最优化并同时生成执行代码。
1704是数据依存检出部,根据由在程序最优化部1703的数据解析得到的数据连锁信息,求得在对象微电脑上的条件标志的生存区间,登录到标志生存区间信息1709中。
1705是标志生存区间信息输出部,把标志生存区间信息1709追记到目标代码203中然后输出。
1706是执行代码输出部,把由程序最优化部1703生成的执行代码作为目标代码203输出。
1707是调试信息生成部,生成调试需要的识别标记,行号及执行代码相互关联等的调试信息。
1708是调试信息输出部,把由调试信息生成部1707生成的调试信息追记到目标文件203中作为调试信息输出。
图18中,表示数据依存检出部1704的处理流程。在步骤S1801,从程序最优化部1703取得数据的使用定义连锁信息,对全部的使用定义连锁信息重复步骤S1802,步骤S1803的处理。
在步骤S1802,判定使用定义连锁信息是否与条件标志关联。条件成立的话进入到步骤S1803,不成立的话进入到步骤S1801。
在步骤S1803,和条件标志的种类一起,把条件标志的定义地址以及参照地址作为生存区间,登录到标志生存区间信息1709中。
图19中,表示数据使用定义连锁信息的一例。1901是,数据使用定义连锁信息号码。1902是,该指令代码。1903是,UD列表,表示定义在该指令代码中使用的资源的指令代码的列表,列表的要素是数据使用定义连锁信息号码。寄存器Ra,Rb,Rc,Rd,c0,c1对各资源都有列表。1904是,UD列表,表示使用由该指令代码定义的资源的指令代码的列表,列表的要素是数据使用定义连锁信息号码。寄存器Ra,Rb,Rc,Rd,c0,c1按各资源都有列表。
比如,数据使用定义连锁信息号码2是,与「cmp Ra==10,c0」指令代码相关联的,定义在这个指令代码中使用的资源Ra的指令是,在数据使用定义连锁信息号码1表示的指令代码,还有,使用定义的资源c0的指令是,表示着在数据使用定义连锁信息号码3,4表示的指令代码。数据使用定义连锁信息是,为了调查数据的依存关系在程序优化部1703生成的。
图20(a)中,表示标志生存区间信息。标志生存区间是指,标志从被标志更新指令定义的时段,到被带条件指令和标志值传送指令参照的时段的区间,这期间,标志的值是一样的。2001是,标志种类域。2002是,开始地址域,2003是结束地址域,表示标志的生存区间。
图20(b)中,表示标志生存区间信息的例子。2004,2005,2006各是一例。比如,2004的例子表示,标志c0在地址0x400定义,从0x400到0x408之间被参照。
图21是,调试器204C的功能方框图,和第一实施例一样,301,302,303,304,305,306各是,调试器处理部,执行目标环境,目标代码信息,调试信息,指令形式信息,跟踪数据信息。还有,210是,标志生存区间信息,表示条件标志的生存地址区间。标志生存区间信息2101,被以包含在由编译器202C生成的调试信息中的形式读入调试器。
图22是,调试器处理部301的处理流程图,是和本发明第一实施例一样的处理流程图。
图23中,表示本实施例的步骤S405的显示更新处理的处理流程。
在步骤S2301,在执行目标环境302,调查调试对象的程序执行状态,在执行停止的情况下,进入到步骤S2302。在执行没有停止,程序正在执行的情况下,因为显示的更新不必要所以结束处理。在执行停止的情况下,在后续的行,进行把在调试对象程序的哪个地方停止了向程序开发者显示的处理。
在步骤S2302,取得调试对象程序的停止地址。
接着在步骤S2303,参照标志生存区间信息2101,对全部的条件标志,取出包含现在执行停止地址的生存区间信息。
接着在步骤S2304,把包含前述执行停止地址的生存期间存在的全部条件标志值从执行目标环境302取得。
接着在步骤S2305,求得现在显示对象的地址区间,从那最初的地址到最后的地址重复以后的处理。对全部的显示对象地址的处理完了的话,结束。还有,现在显示对象的地址区间是,比如成为在显示源代码的代码窗体上把现在停止地址作为中心显示前后数行(由窗体的显示行数决定)的情况下的成为对象的区间,这是在进行调试器204C显示的地方(调试器处理部301内)管理着的信息。
接着在步骤S2306,从前述显示对象的地址参照调试器内存储的目标代码信息303,读出对应地址的指令代码。
接着在步骤S2307,把前述指令代码反汇编,得到与指令代码对应的汇编行字符串。还有,反汇编是,通过参照在调试器内管理的指令形式信息305来实现的。
接着在步骤S2308,从指令代码参照在调试器内管理的指令形式信息305,判定是否为带条件指令。是带条件指令的情况下,进入到步骤S2309。不是带条件指令的情况下,进入到步骤S2313。
在步骤S2309,对于该条件标志,参照在步骤S2303求得的生存区间信息,判断该条件标志对于现在的显示对象地址是否有效。即,得到在步骤S2304取得的条件标志值是否有效。是生存区间内的话,进入到步骤S2310,不是那样的话进入到步骤S2314。
在2310行,参照在步骤S2304取得的条件标志值。
在步骤S2311,参照前述条件标志值,判定带条件指令是否被执行,执行的情况下,进入到步骤S2313,没有被执行的情况下,进入到步骤S2312。
在步骤S2312,带条件指令没有被执行的情况下,把没有执行的演算部分用浅灰色显示。进一步,显示对象地址是执行停止地址的话,把条件标志部用反转的显示颜色显示。
在步骤S2313,显示对象地址是执行停止地址的情况下,把对应的汇编行字符串用反转显示颜色显示。显示对象地址不是执行停止地址的情况下,保持通常的颜色显示。
在步骤S2314,在步骤S2304取得的条件标志值不是有效的,不能确定带条件指令是否执行,所以除了通常的显示颜色外,还加上下划线(以未确定的形式)显示。
接着,返回到步骤S2305,对显示领域的地址区间,进行重复处理。
在图24中,表示显示例。还有,在图24(a)到(d),把应该用浅灰色显示没有执行的演算部分为了方便用四角括起来表示,实际上,认为不是四角的围线,而是用浅灰色显示的。
如上面那样根据本实施例,在断点,调试对象程序执行停止的情况下,取得那时的条件标志值,且通过使和条件标志的生存区间对应,通过不仅是执行停止地址对其前后的地址,也判定带条件指令的执行/未执行改变显示形式显示,由带条件指令能够把执行的条件执行的逻辑易判别的显示出来,能够知道调试对象程序的执行经过,使调试成为可能。
在本实施例,在步骤S2312,把带条件指令没有执行情况下的显示方法作为,将没有执行的演算部分以浅灰色显示的,不过,覆盖取消线或把显示字体的大小变小,把显示字符串设为「未执行」等,其他的方法也可以。
还有,第九发明的机器可读记录介质是,这第三实施例的目标文件203,和以前的目标文件相比追加了标志生存区间信息(1709)。
如上面说明的那样,根据本发明,通过取得带条件指令的执行条件标志值,在带条件指令实际上能够判别执行的处理内容,能够向利用者把程序的执行过程易理解地显示出来。

Claims (9)

1.一种在把调试对象的微电脑程序向画面上显示时,上述程序的执行停止时的停止地址可与其他地址区别显示的软件调试器,具有
判定在进行上述程序步骤执行处理时上述停止地址的指令是否是带条件指令的功能;
在上述指令是带条件指令的情况下取得上述指令的条件标志值的功能;
根据上述条件标志值的值判定带条件指令是否被执行的功能;
根据上述判定结果来改变上述停止地址的指令显示方法向上述画面上显示的功能。
2.权利要求1记载的软件调试器,具有
在根据带条件指令是否被执行的判定结果改变停止地址指令的显示方法向画面上显示的时候,把停止地址部分反转显示的功能。
3.权利要求1记载的软件调试器,具有
在根据带条件指令是否被执行的判定结果改变停止地址指令的显示方法向画面上显示的时候,把停止地址部分和条件标志部分反转显示的功能。
4.一种在进行调试对象的微电脑程序执行处理后,把上述程序的指令跟踪输出的软件调试器,具有
所执行的指令是标志更新指令的情况下把被更新的标志值作为跟踪数据输出的功能;
判定跟踪输出对象的指令是否是带条件指令的功能;
在上述判定结果是跟踪输出对象指令是带条件指令的情况下作为上述跟踪数据取得所输出的标志值的功能;
根据上述标志值的值判定带条件指令是否被执行的功能;
根据上述判定结果来改变跟踪输出的指令输出方法并输出的功能。
5.一种在把调试对象的微电脑程序向画面上显示的时候,能够将上述程序的执行停止时的停止地址与其他地址区别显示的软件开发辅助系统,具有
从上述调试对象程序检出全部带条件指令的条件标志的生存区间的功能;
判定显示对象地址的指令是否为带条件指令的功能;
在上述判定结果为带条件指令的情况下判定上述显示对象地址和停止地址是否存在于在上述带条件指令被参照的条件标志的同一生存区间内的功能;
在上述判定结果是带条件指令的情况下取得在上述带条件指令被参照的条件标志值的功能;
根据上述条件标志值的值来判定上述带条件指令是否被执行的功能;
根据上述显示对象地址和停止地址是否存在于在上述带条件指令被参照的条件标志的同一生存区间内的判定结果和由上述条件标志值的值上述带条件指令是否被执行的判定结果,来改变停止地址以及其前后地址的指令显示方法向上述画面上显示的功能。
6.一种微电脑的编译器,具有
检出指令代码串中包含的带条件指令的条件标志的生存区间的功能;
把上述检出的条件标志的生存区间的信息输出的功能。
7.一种在把调试对象的微电脑程序向画面上显示的时候,能把上述程序执行停止时的停止地址与其他地址区别显示的软件调试器,具有
判定显示对象地址的指令是否为带条件指令的功能;
在上述判定结果为带条件指令的情况下判定上述显示对象地址是否存在于在上述带条件指令被参照的条件标志的生存区间内的功能;
在上述判定结果为带条件指令的情况下取得在上述带条件指令被参照的条件标志值的功能;
根据上述条件标志值的值来判定上述带条件指令是否被执行的功能;
根据上述显示对象地址是否存在于上述条件标志的生存区间内的判定结果和由上述条件标志值的值上述带条件指令是否被执行的判定结果,来改变停止地址以及其前后地址的指令显示方法向上述画面上显示的功能。
8.权利要求7记载的软件调试器,具有
输入从权利要求6记载的编译器输出的条件标志的生存区间信息的功能。
9.一种机器可读记录介质,记录了
微电脑程序的机器语言代码以及其存储地址,和
带条件指令的条件标志的定义地址以及参照地址的信息。
CNB021278067A 2001-08-06 2002-08-06 软件调试方法和软件开发辅助方法 Expired - Fee Related CN1203409C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001238031A JP2003050716A (ja) 2001-08-06 2001-08-06 ソフトウエアデバッガとソフトウエア開発支援システム
JP238031/2001 2001-08-06

Publications (2)

Publication Number Publication Date
CN1407457A true CN1407457A (zh) 2003-04-02
CN1203409C CN1203409C (zh) 2005-05-25

Family

ID=19069021

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB021278067A Expired - Fee Related CN1203409C (zh) 2001-08-06 2002-08-06 软件调试方法和软件开发辅助方法

Country Status (3)

Country Link
US (1) US7266809B2 (zh)
JP (1) JP2003050716A (zh)
CN (1) CN1203409C (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100334561C (zh) * 2003-07-30 2007-08-29 松下电器产业株式会社 程序调试装置、程序调试方法
CN101840372A (zh) * 2010-05-28 2010-09-22 北京邮电大学 应用符号分析的软件测试方法
CN101082875B (zh) * 2006-05-30 2014-01-22 Arm有限公司 减小在指令跟踪过程中产生的数据流的大小
CN111742304A (zh) * 2018-02-27 2020-10-02 Arm有限公司 当调试要在处理电路上执行的程序时访问元数据的方法
CN113485748A (zh) * 2021-05-31 2021-10-08 上海卫星工程研究所 卫星条件指令系统及其执行方法

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10036278A1 (de) * 2000-07-26 2002-02-07 Bosch Gmbh Robert Verfahren zur Überwachung eines Programmablaufs mittels einer Debug Logik
EP1349071A1 (en) * 2002-03-29 2003-10-01 STMicroelectronics N.V. Integrated circuit with direct debugging architecture
US6981248B2 (en) * 2002-05-02 2005-12-27 International Business Machines Corporation Conditional breakpoint encountered indication
US8271955B1 (en) * 2004-07-23 2012-09-18 Green Hille Software, Inc. Forward post-execution software debugger
US8132159B1 (en) 2004-07-23 2012-03-06 Green Hills Software, Inc. Post-execution software debugger with event display
US8136096B1 (en) * 2004-07-23 2012-03-13 Green Hills Software, Inc. Backward post-execution software debugger
US7673296B2 (en) * 2004-07-28 2010-03-02 Hewlett-Packard Development Company, L.P. Method and system for optional code scheduling
US7552425B2 (en) * 2004-08-19 2009-06-23 International Business Machines Corporation Implementing enhanced compiled breakpoint analysis
US7735066B1 (en) * 2004-10-08 2010-06-08 Carnegie Mellon University Debugging interface
JP2006227681A (ja) * 2005-02-15 2006-08-31 Matsushita Electric Ind Co Ltd デバッグ装置、デバッグ方法およびプログラム
US7886271B2 (en) * 2005-05-16 2011-02-08 Texas Instruments Incorporated Embedding event information in the timing stream
JP4718901B2 (ja) * 2005-05-27 2011-07-06 パナソニック株式会社 命令実行装置、デバッグ方法、デバッグ装置及びデバッグプログラム
JP2007058731A (ja) * 2005-08-26 2007-03-08 Matsushita Electric Ind Co Ltd プロセッサ、及び並列命令実行対応デバッグ装置
JP4860240B2 (ja) * 2005-11-11 2012-01-25 パナソニック株式会社 翻訳方法および実行通知命令の埋め込み方法
JP4894362B2 (ja) * 2006-06-09 2012-03-14 富士通株式会社 稼働状況監視プログラム
KR101006787B1 (ko) * 2006-06-13 2011-01-10 미쓰비시덴키 가부시키가이샤 프로그래머블 로직 컨트롤러의 주변 장치
US20080209401A1 (en) * 2007-02-22 2008-08-28 Microsoft Corporation Techniques for integrating debugging with decompilation
US8239832B2 (en) * 2007-05-25 2012-08-07 Microsoft Corporation In-process debugging using external debugging infrastructure
JP4856023B2 (ja) * 2007-08-08 2012-01-18 パナソニック株式会社 リアルタイムウォッチ装置及びその方法
US20090282390A1 (en) * 2008-05-08 2009-11-12 Microsoft Corporation Parallel Run-Time Rendering Debugger
WO2009149219A2 (en) * 2008-06-03 2009-12-10 Whirlpool Corporation Appliance development toolkit
CN101515249B (zh) * 2009-03-26 2011-08-03 华亚微电子(上海)有限公司 错误检查方法
US8806436B2 (en) 2010-04-30 2014-08-12 Cray Inc. Systems and methods for debugging applications using dual code generation
US8516307B2 (en) * 2010-08-27 2013-08-20 Sap Ag Execution layer debugger
GB2487355B (en) 2011-01-13 2020-03-25 Advanced Risc Mach Ltd Processing apparatus, trace unit and diagnostic apparatus
CN102957773B (zh) * 2011-08-29 2016-03-02 比亚迪股份有限公司 一种手机软件测试方法及系统
CN103106136B (zh) * 2011-11-14 2016-06-29 成都信息工程学院 一种基于x86指令集的软件动态能耗统计方法
CN102999422B (zh) * 2012-11-06 2015-11-25 太仓市同维电子有限公司 一种高效嵌入式系统调试方法
US9195457B1 (en) * 2014-06-11 2015-11-24 Amazon Technologies, Inc. Interactive application programming interface documentation
CN104461876B (zh) * 2014-11-26 2017-09-22 北京航空航天大学 一种基于运行快照序列的并行程序重现调试方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5175856A (en) * 1990-06-11 1992-12-29 Supercomputer Systems Limited Partnership Computer with integrated hierarchical representation (ihr) of program wherein ihr file is available for debugging and optimizing during target execution
US5687375A (en) * 1994-10-14 1997-11-11 International Business Machines Corporation Debugging of High Performance Fortran programs with backup breakpoints
US6216143B1 (en) 1994-12-05 2001-04-10 International Business Machines Corporation Apparatus and method for generating animated color coded software traces
US6158045A (en) * 1995-11-13 2000-12-05 Object Technology Licensing Corporation Portable debugging services utilizing a client debugger object and a server debugger object with flexible addressing support
US6091896A (en) * 1995-12-22 2000-07-18 Hewlett-Packard Company Debugging optimized code using data change points
US6016555A (en) * 1997-11-19 2000-01-18 Texas Instruments Incorporated Non-intrusive software breakpoints in a processor instruction execution pipeline
US6260189B1 (en) * 1998-09-14 2001-07-10 Lucent Technologies Inc. Compiler-controlled dynamic instruction dispatch in pipelined processors
EP0992906B1 (en) * 1998-10-06 2005-08-03 Texas Instruments Inc. Apparatus and method for software breakpoint in a delay slot
US6493868B1 (en) * 1998-11-02 2002-12-10 Texas Instruments Incorporated Integrated development tool
US6480818B1 (en) * 1998-11-13 2002-11-12 Cray Inc. Debugging techniques in a multithreaded environment
US6571385B1 (en) * 1999-03-22 2003-05-27 Intel Corporation Early exit transformations for software pipelining
US6820250B2 (en) * 1999-06-07 2004-11-16 Intel Corporation Mechanism for software pipelining loop nests
US6681384B1 (en) * 1999-12-23 2004-01-20 International Business Machines Corporation Multi-threaded break-point
US6832370B1 (en) * 2000-05-09 2004-12-14 Hewlett-Packard Development, L.P. Data speculation within modulo scheduled loops
US7000225B2 (en) * 2000-12-07 2006-02-14 International Business Machines Corporation Method for inserting global breakpoints
US6912709B2 (en) * 2000-12-29 2005-06-28 Intel Corporation Mechanism to avoid explicit prologs in software pipelined do-while loops
US7007267B2 (en) * 2001-01-24 2006-02-28 Texas Instruments Incorporated Transparent shared memory access in a software development system
US6922826B2 (en) * 2001-07-03 2005-07-26 International Business Machines Corporation Debugger impact reduction through breakpoint motion
US6971089B2 (en) * 2001-08-01 2005-11-29 International Business Machines Corporation Debugger impact reduction through motion of induction variable based breakpoints
US7007268B2 (en) * 2001-08-20 2006-02-28 Sun Microsystems, Inc. Method and apparatus for debugging in a massively parallel processing environment
US6839893B2 (en) * 2001-10-18 2005-01-04 International Business Machines Corporation Debugger capable of providing warnings for unreachable breakpoints

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100334561C (zh) * 2003-07-30 2007-08-29 松下电器产业株式会社 程序调试装置、程序调试方法
CN101082875B (zh) * 2006-05-30 2014-01-22 Arm有限公司 减小在指令跟踪过程中产生的数据流的大小
CN101840372A (zh) * 2010-05-28 2010-09-22 北京邮电大学 应用符号分析的软件测试方法
CN111742304A (zh) * 2018-02-27 2020-10-02 Arm有限公司 当调试要在处理电路上执行的程序时访问元数据的方法
CN111742304B (zh) * 2018-02-27 2024-06-21 Arm有限公司 当调试要在处理电路上执行的程序时访问元数据的方法
CN113485748A (zh) * 2021-05-31 2021-10-08 上海卫星工程研究所 卫星条件指令系统及其执行方法

Also Published As

Publication number Publication date
US7266809B2 (en) 2007-09-04
CN1203409C (zh) 2005-05-25
JP2003050716A (ja) 2003-02-21
US20030033592A1 (en) 2003-02-13

Similar Documents

Publication Publication Date Title
CN1203409C (zh) 软件调试方法和软件开发辅助方法
CN100351822C (zh) 用简化视图定义、处理和表示用户界面组件的方法和工具
CN100340975C (zh) 计算机系统、编译器装置以及编译方法
CN1249577C (zh) 用于遗留软件与屏幕朗读器程序之间的互操作的方法和装置
CN1842767A (zh) 用于多个异常处理模型的中间表示
CN1293465C (zh) Gui显示装置及光标或gui组件动画显示处理方法
CN100339824C (zh) 高效执行特长指令字的处理器和方法
CN1869952A (zh) 指令执行设备、调试方法、调试设备以及调试程序
CN1252592C (zh) 通信服务供应方法和设备
CN1260665C (zh) 用于管理可换存储媒体的设备和方法
CN1437110A (zh) 用于断点设定的装置和方法
CN1969272A (zh) 自动生成内容的导入
CN1949187A (zh) 一种程序调测系统及方法
CN1804803A (zh) 具有对异步程序流程建模的软件工具
CN1278226C (zh) 模拟装置、模拟方法
CN1105507A (zh) 模型化系统
CN1609796A (zh) 应用编程接口(api)的设计
CN1278228C (zh) 两层粘贴缓冲区和显示装置
CN1228558A (zh) 程序变换方法和程序变换系统
CN1908892A (zh) 测试用例设计方法和系统
CN101046812A (zh) 一种数据库表记录构造与检查的方法及其装置
CN1758221A (zh) 程序处理装置
CN1932803A (zh) 文档编辑方法和装置
CN1725177A (zh) 嵌入式设备集成开发系统及其使用方法
CN1469254A (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
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20050525

Termination date: 20100806