CN101120321A - 程序调试装置、程序调试方法以及程序 - Google Patents

程序调试装置、程序调试方法以及程序 Download PDF

Info

Publication number
CN101120321A
CN101120321A CNA2006800050447A CN200680005044A CN101120321A CN 101120321 A CN101120321 A CN 101120321A CN A2006800050447 A CNA2006800050447 A CN A2006800050447A CN 200680005044 A CN200680005044 A CN 200680005044A CN 101120321 A CN101120321 A CN 101120321A
Authority
CN
China
Prior art keywords
interruption
breakpoint
source code
program
debug device
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
Application number
CNA2006800050447A
Other languages
English (en)
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 CN101120321A publication Critical patent/CN101120321A/zh
Pending 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/3624Software debugging by performing operations on the source code, e.g. via a compiler

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

本发明涉及的程序调试装置按照无条件的中断以及带条件的中断来停止程序的执行;按照无条件的中断,无论带执行条件指令的条件如何,都要停止程序的执行;按照带条件的中断,只有带执行条件指令的条件为真时才要停止程序的执行,该程序调试装置包括:接收单元,按照用户的操作接收断点;决定单元,按照程序调试装置的状态来决定将收到的断点设为无条件的中断还是带条件的中断;以及停止单元,按照决定单元决定的无条件的中断或带条件的中断来停止程序。

Description

程序调试装置、程序调试方法以及程序
技术领域
本发明涉及一种程序调试装置,在任意进行程序的执行及停止的同时,显示程序的执行状态,从而支援软件开发者开发程序;尤其涉及以处理器为对象的程序调试装置,该处理器处理带执行条件指令。
背景技术
程序调试装置用于暂时停止处理器中执行的程序,并显示程序的执行状态,其对开发程序很有用。程序调试装置对程序中的任意指令设定断点,来暂时停止程序。专利文献1是该领域的现有技术文献。
专利文献1公开了中断控制装置(程序调试装置),该装置包括判断部,通过该判断部判断带执行条件指令是否满足了条件,并根据该判断结果控制中断的发生。在这里,带执行条件指令(也被称为谓词指令)包括执行条件的指定,该指令在没有满足执行条件的情况下不被执行,而只有满足执行条件的情况下才被执行。并且,所指定的执行条件是处理器包括的状态寄存器中的一个标志值。上述专利文献1公开的中断控制装置在带执行条件指令没有满足执行条件的情况下,即使该指令是符合断点的指令,也不使发生中断。结果,能实现不在该带执行条件指令的位置停止程序。由此,能实现在调试工作中没有必要的位置不使程序停止。
专利文献1:日本国特开2001-154877号公报
在上述以往的技术中,设定断点时,必须对于所有断点决定是否评估中断对象指令的执行条件,而在不十分注意的情况下,程序可能不停止在调试操作人员希望的位置。因此,存在的问题是,增加调试操作人员的负担,降低调试工作的效率。例如,必须对于各个断点分别决定是否评估执行条件。
并且,存在的问题是,由程序调试装置来显示所停止的带执行条件指令在程序列表中的位置的情况下,调试操作人员不能立刻判断该带执行条件指令是否真的决定了要评估执行条件,也不能判断该程序是否真的是因满足执行条件而停止的。
发明内容
本发明的目的在于,提供一种程序调试装置,以减轻调试操作人员的工作负担,并提高调试工作的效率。
为了达到上述目的,本发明的程序调试装置按照无条件的中断以及带条件的中断来停止程序的执行;该无条件的中断为,无论带执行条件指令的条件如何,都停止程序的执行;该带条件的中断为,只有带执行条件指令的条件为真时才停止程序的执行,该程序调试装置包括:接收单元,按照用户的操作接收断点;决定单元,断点指出带执行条件指令的情况下,按照程序调试装置的状态来决定将接收到的断点设为无条件的中断还是带条件的中断;以及停止单元,按照决定单元决定的无条件的中断或带条件的中断来停止程序。
在上述结构中,按照程序调试装置的状态决定对带执行条件指令设定的断点的种类(无条件的中断还是带条件的中断),因此调试操作人员不须要分别设定无条件的中断还是带条件的中断,而能减轻调试操作人员的负担。并且,调试操作人员只要按照程序调试装置的状态来识别该中断是无条件的中断还是带条件的中断即可,即能容易判断是否是因满足执行条件而停止的。由此,能够提高调试工作的效率。
在这里,上述决定单元,可以将在通过接收单元接收到断点时、是否正处于高级语言的源代码显示窗口获得焦点的状态,判断为程序调试装置的状态。
在这里,上述决定单元判断为正处于源代码显示窗口获得焦点的状态时,可以决定将断点设为带条件的中断;而在判断为源代码显示窗口没有获得焦点时,可以决定将断点设为无条件的中断。
在上述结构中,调试操作人员聚焦源代码显示窗口的情况下,该中断变为带条件的中断,即适应以源程序为基准进行的调试,从而能够提高调试工作的效率。而在调试操作人员没有聚焦源代码显示窗口的情况下,例如聚焦汇编代码显示窗口的情况下,该中断变为无条件的中断,即适应以汇编程序为基准进行的调试,从而能够提高调试工作的效率。
在这里,上述决定单元,将在通过接收单元接收到断点时、高级语言的源代码显示窗口是否正在显示源代码,判断为程序调试装置的状态。
在上述结构中,按源代码的显示与否决定断点的种类,因此调试操作人员不须分别设定断点种类,能够减轻工作负担。
在这里,上述决定单元在判断为源代码显示窗口正在显示源代码时,可以决定将断点设为带条件的中断;而在判断为源代码显示窗口没有显示源代码时,可以决定将断点设为无条件的中断。
在上述结构中,显示源代码的情况下,该中断变为带条件的中断,即适应以源程序为基准进行的调试,从而能够提高调试工作的效率。而在没有显示源代码的情况下,例如显示汇编代码的情况下,该中断变为无条件的中断,即适应以汇编程序为基准进行的调试,从而能够提高调试工作的效率。
在这里,上述决定单元,可以将在通过接收单元接收到断点时、高级语言的源代码显示窗口中源代码行是否正在被指定,判断为程序调试装置的状态。
在上述结构中,按源代码的指定与否进行设定,因此调试操作人员不须分别设定断点的种类,能够减轻工作负担。
在这里,上述决定单元在判断为源代码显示窗口中源代码行正在被指定时,可以决定将断点设为带条件的中断;而在判断为源代码显示窗口中源代码行没有被指定时,可以决定将断点设为无条件的中断。
在上述结构中,调试操作人员聚焦源代码的情况下,该中断变为带条件的中断,即适应以源程序为基准进行的调试,从而能够提高调试工作的效率。而在调试操作人员没有聚焦源代码的情况下,例如聚焦汇编代码的情况下,该中断变为无条件的中断,即适应以汇编程序为基准进行的调试,从而能够提高调试工作的效率。
在这里,上述决定单元,可以将执行程序的过程中是否正处于高级语言的源代码显示窗口获得焦点的状态,判断为程序调试装置的状态。
在上述结构中,不须要停止每一个程序来转换断点的种类,而可以按照执行程序的过程中的程序调试装置的状态来转换断点的种类,因此,调试操作人员不须设定每一个断点的种类,能够减轻工作负担。
在这里,上述决定单元在判断为正处于源代码显示窗口获得焦点的状态时,可以决定将断点设为带条件的中断;而在判断为源代码显示窗口没有获得焦点时,可以决定将断点设为无条件的中断。
在这里,上述程序调试装置也可以包括添加单元,该添加单元将表示断点的标记添加给被指定为断点的源代码行或汇编代码行,并且,也可以根据断点设为无条件的中断还是带条件的中断而变更上述标记。
在上述结构中,由于调试操作人员能直观地理解断点的种类,不须要进行确认断点种类的工作,因此能够减轻调试操作人员的工作负担,提高工作效率。
此外,本发明的调试方法及程序也具有与上述程序调试装置同样的效果。
发明的效果:根据本发明涉及的程序调试装置,调试操作人员不须要分别设定无条件的中断还是带条件的中断,而能减轻调试操作人员的负担。并且,只要识别程序调试装置的状态,就能够判断该程序是否是因满足执行条件而停止的。由此,能够提高调试工作的效率。
附图说明
图1表示本发明的第一实施例涉及的程序调试系统1的外观。
图2表示程序调试系统5的外观。
图3是一种方框图,其从功能的观点来表示主装置2a的结构。
图4表示在程序调试装置2中执行调试软件时的显示内容的一个例子。
图5表示对调试对象程序的源代码进行转换的一个例子。
图6表示指令行的显示例。
图7是一种流程图,其表示断点设定处理S1的细节。
图8是一种流程图,其表示窗口聚焦处理S21的细节。
图9是一种流程图,其表示中断模式标志设定处理步骤S11的细节。
图10是一种流程图,其表示本发明的第二实施例涉及的源代码显示处理S22的细节。
图11是一种流程图,其表示中断模式标志设定处理步骤S13的细节。
图12是一种流程图,其表示本发明的第三实施例涉及的断点设定处理S1a的细节。
图13是一种流程图,其表示中断模式标志设定处理步骤S12的细节。
图14表示根据设定断点的状况自动决定断点的种类。
图15是一种流程图,其表示本发明的第四实施例涉及的中断处理S2的细节。
图16是一种流程图,其表示本发明的第五实施例涉及的断点设定处理S1b的细节。
图17是一种流程图,其表示模式标志设定处理S31的细节。
图18是一种流程图,其表示断点显示处理S32的细节。
图19是一种流程图,其表示本发明的第六实施例涉及的断点显示处理S33的细节。
图20表示源代码显示窗口及汇编程序显示窗口的显示例子。
符号说明
1   程序调试系统
2   程序调试装置
2a  主装置
2b  显示装置
2c  输入装置
3   程序执行装置
3a  主装置
3b  显示装置
3c  输入装置
4   局域网电缆
5   程序调试系统
6   程序执行装置
7   连接电缆
10  C语言源代码
11  汇编语言代码
21  接收部
22  状态判断部
22a 中断模式标志
23  断点设定部
24  接口部
25  显示控制部
26  控制部
具体实施方式
以下,根据附图说明本发明的具体实施方式。
<第一实施例>
<程序调试系统的外观>
图1表示本发明的第一实施例涉及的程序调试系统的外观。该图所示的程序调试系统1包括程序调试装置2及程序执行装置3。
程序调试装置2包括主装置2a、显示装置2b、输入装置2c。主装置2a通过输入装置2c接收来自调试操作人员的各类操作指示,控制由程序执行装置3进行的调试对象程序的执行,并将执行状态显示在显示装置2b上。
针对带执行条件指令设定断点的情况下,通过上述程序调试装置2产生的调试对象程序的执行中断有两种,即,无条件的中断和带条件的中断。在这里,带执行条件指令包括执行条件的指定,该指令在没有满足执行条件的情况下不被执行,而只有满足执行条件的情况下才被执行。所指定的执行条件是处理器包括的状态寄存器中的一个标志值。按照无条件的中断,即使带执行条件指令没有满足执行条件的情况下,也在该指令的位置停止程序。按照带条件的中断,带执行条件指令没有满足执行条件的情况下,不在该指令的位置停止程序,而带执行条件指令满足执行条件的情况下,就在该指令的位置停止程序。换而言之,带条件的中断指的是一种断点,只有带执行条件指令的条件为真时,才在该断点上停止程序。另外,带执行条件指令没有满足执行条件的情况下,将该指令称为可透过指令。
程序调试装置2的结构要点在于,断点指出带执行条件指令的情况下,按照程序调试装置的状态决定在断点进行无条件的中断还是带条件的中断。
程序执行装置3包括主装置3a、显示装置3b、输入装置3c,是执行模拟软件的一种数据处理装置,该装置通过局域网电缆4受程序调试装置2的控制;上述模拟软件模仿处理器(或模仿具备处理器的试验板)的工作;该处理器执行调试对象程序。因正处于设计阶段而还没有存在目标系统的情况下,程序执行装置3可以代替其系统进行工作。
图2表示其他程序调试系统5的外观。与图1相比,不同之处是,本图所示的程序调试系统5包括代替了程序执行装置3的程序执行装置6。程序执行装置6是一种处理器或具备处理器的试验板(evaluation board),通过连接电缆7,可受程序调试装置2的控制。
程序调试装置2无论是在连接于作为模拟装置的程序执行装置3的情况下,即处于图1所示的连接状态的情况下,还是连接于作为处理器(或试验板)的程序执行装置6的情况下,即处于图2所示的连接状态的情况下,基本上都能同样进行工作。
另外,也可以在程序调试装置2的计算机上执行上述模拟软件,来使程序调试装置2兼备程序执行装置3的功能。
图3是一种方框图,其从功能的观点来表示主装置2a的结构。如本图所示,主装置2a包括:接收部21、状态判断部22、断点设定部23、接口部24、显示控制部25以及控制部26。状态判断部22在其内部存储有中断模式标志22a。
接收部21按照用户的操作从输入装置2c接收断点设定操作。通过断点设定操作,由用户任意选择的源代码行、助记码行、地址中的任一个被指定为断点。
状态判断部22判断接收部21接收断点设定操作时的程序调试装置2的状态,并按照该判断出的状态设定存储在内部的中断模式标志(图中的BM标志)的值。在这里,上述状态例如是显示装置2b的显示状态,即是高级语言的源代码显示窗口处于获得焦点的状态还是没有获得焦点的状态。
由接收部21接收的断点指出带执行条件指令的情况下,断点设定部23按照由状态判断部22判断出的程序调试装置2的状态决定将收到的断点设为无条件的中断还是带条件的中断。
接口部24输出针对程序执行装置6的执行控制信号,并接收其应答信号、指令码、寄存器数据等。
显示控制部25生成针对各种窗口的显示数据,并控制由显示装置2b进行的显示。
控制部26控制主装置2a的整体工作。
图4表示在程序调试装置2中执行调试软件时的显示内容的一个例子。本图中,W1是代码显示窗口,显示调试对象程序的指令码;W2是源代码显示窗口,显示调试对象的源程序;W3是输入指令窗口,通过用户的操作输入各种模拟操作用的指令;W4是寄存器内容显示窗口,显示寄存器数据;W5是存储器内容显示窗口,显示存储器数据。
M1是停止指令标记,表示停止执行的调试对象程序中未执行的最前面指令(以下称停止指令);M2是停止行标记,表示与所停止的指令相对应的源程序中的源代码行。
在代码显示窗口W1上,显示程序计数器的值(本图中的PC栏),该值表示调试对象程序中的指令地址;并显示行编码(LINE栏)、标志(FLG栏)、助记码(MNEMONIC栏)等;此外,还显示停止指令标记M1。本图中,第104行的指令([F]mov R3,1)及第105行的指令([F]mov R0,5)是带执行条件指令。在这里,标志[F]是处理器具备的状态标记寄存器中的标志F的值,以表示带执行条件指令的条件;调试对象程序在上述处理器中进行工作。在本图所示的程序例子中,通过位于带执行条件指令的紧前面的(第103行的)比较指令(cmp指令),根据所得的比较结果设定标志F,或将标志F归零(reset)。只有设定标志F的情况下,才执行第104行及第105行的带执行条件指令。如此,将条件转移的过程中的条件满足与否反映到标志F的值上,从而例如可以将标志F用于源代码显示窗口W2中第103行的依靠if语句的执行语句等。另外,只有标志F处于归零状态才执行指令的情况下,代替[F]显示[!F]。
<第一实施例涉及的调试对象程序>
调试对象程序往往由C语言编制,并且,这种由C语言编制的程序通过C语言编译器转换成汇编语言,在大体上,该所转换的汇编语言与处理器能理解的机器语言具有一对一的对应关系。进而,汇编语言通过汇编器及连接器转换成处理器中能执行的机器语言。
图5表示C语言源代码10的一部分通过C语言编译器如何转换成汇编语言代码11的一个例子。
C语言源代码10的虚线中表示的依靠if语句及其条件的执行语句对应于汇编语言代码11的虚线中表示的部分。如上所述,条件转移的过程中的条件满足与否反映到标志F的值上。据此,可以从汇编语言代码11中排除转移指令,从而避免在处理器中执行程序时因条件转移而产生的性能降低。
汇编语言代码11中带[F]的指令是与if语句中then执行语句相对应的代码,而带[!F]的指令是与if语句中else执行语句相对应的代码。
调试对象程序是通过编译器、汇编器、连接器来将包括C语言源代码10等的源代码程序转换成程序执行装置3或程序执行装置6能执行的可执行文件而得的程序。
该可执行文件及C语言源代码输入到程序调试装置3中。在程序执行装置3或6中执行可执行文件。调试操作人员通过程序调试装置3控制程序执行装置2或6进行的程序执行工作,并进行调试工作。
图6表示输入指令窗口W3上显示指令行的例子。图中″sim″是一种指令,该指令指示在程序执行装置3或程序执行装置6中开始程序的模拟执行。调试操作人员还输入断点设定操作、调试对象程序的执行(模拟)操作、单步执行、寄存器数据操作、存储器数据操作等指令,从而进行调试工作。
<第一实施例涉及的断点设定处理>
首先说明本发明第一实施例的特征性处理即断点设定处理S1。
图7是表示断点设定处理S1的细节的流程图,该断点设定处理S1是指,通过控制部26进行的控制来设定断点的处理。本图中,控制部26进行以下步骤,从而完成断点设定处理:接收步骤S99,按照用户的操作接收断点;中断模式标志判断步骤S100,对中断模式标志进行判断,该中断模式标志用于对无条件的中断与带条件的中断进行转换;设定带条件的中断的步骤S101,通过中断模式标志判断步骤S100判断为中断模式标志为1时设定带条件的中断;以及设定无条件的中断的步骤S102,通过中断模式标志判断步骤S100判断为中断模式标志为1以外时设定无条件的中断。
在这里,中断模式标志存储的初始值无论是0还是1都可以。再者,也可以根据源代码文件的存在与否等决定初始值。
图8是一种流程图,其表示程序调试装置2中让正在显示调试对象程序的窗口获得焦点时的窗口聚焦处理S21的细节。本图中,控制部26进行以下步骤,从而完成窗口聚焦处理:窗口聚焦步骤S105,让所选择的窗口获得焦点;以及中断模式标志设定处理步骤S11,判断获得焦点的窗口来设定中断模式标志。
图9是一种流程图,其表示中断模式标志设定处理步骤S11的细节。本图中,控制部26进行以下步骤,从而完成中断模式标志设定处理:源代码聚焦判断步骤S203,判断程序调试装置2的显示装置2b是否正在让高级语言的源代码显示窗口获得步骤;将中断模式标志设为1的步骤S202,通过源代码聚焦判断步骤S203判断为正在让高级语言的源代码显示窗口获得焦点时,将中断模式标志设为1;将中断模式标志设为0的步骤S201,通过源代码聚焦判断步骤S203判断为正在让汇编语言的源代码显示窗口获得焦点时,或判断为正在让反汇编语言(disassembly language)的代码显示窗口获得焦点时,将中断模式标志设为0,以及通过源代码聚焦判断步骤S203判断为正在让上述以外的窗口获得焦点时不进行关于中断模式标志的处理的步骤。
下面,说明断点设定处理S1的一个例子。通过调试操作人员对源代码显示窗口进行的点击操作,来让高级语言的源代码显示窗口获得了焦点时,进行窗口聚焦处理S21,即进行让所选择的窗口获得焦点的窗口聚焦步骤S105,以及中断模式标志设定处理步骤S11。由于在中断模式标志设定处理步骤S11中,通过源代码聚焦判断步骤S203选择让高级语言的源代码显示窗口获得焦点时的处理,因此将中断模式标志设为1。在此状态下进行断点设定处理S1时,由于通过中断模式标志判断步骤S100选择中断模式标志的值为1时的处理,因此通过设定带条件的中断的步骤S101对所指定的位置设定带条件的中断。其次,在进行程序执行处理时,由于设定了带条件的中断,因此只有带执行条件指令的条件为真时才停止程序。进而,即使通过调试操作人员的点击操作来让反汇编语言的代码显示窗口获得了焦点后再进行程序执行处理,也由于已经对断点设定了带条件的中断,因此只有带执行条件指令的条件为真时才停止程序。
另外,通过调试操作人员的点击操作来让反汇编语言的代码显示窗口获得了焦点时,进行窗口聚焦处理S21,即进行让所选择的窗口获得焦点的步骤S105以及中断模式标志设定处理步骤S11。由于在中断模式标志设定处理步骤S11中,通过源代码聚焦判断步骤S203选择让反汇编语言的代码显示窗口获得焦点时的处理,因此将中断模式标志设为0。在此状态下进行断点设定处理S1时,由于通过中断模式标志判断步骤S100选择中断模式标志的值为0时的处理,因此通过设定无条件的中断的步骤S102对所指定的位置设定无条件的中断,而在进行程序执行处理时,无论带执行条件指令的条件如何,都要停止程序。在让高级语言的源代码显示窗口获得焦点后设定的带条件的中断进行中断工作,直到该中断被解除为止;而在让反汇编语言的代码显示窗口获得焦点后设定的无条件的中断进行中断工作,直到该中断被解除为止。
在这种结构中,可以应对调试操作人员目前聚焦的源代码等来自动适当地转换断点,从而能够提高调试工作的效率。
<第二实施例>
本发明的第二实施例涉及的程序调试系统的外观、显示装置2b的显示内容以及调试对象程序都分别与上述第一实施例的外观、显示内容以及调试对象程序大体相同。而省略相同部分的详细说明,并以下主要说明不同部分。
<第二实施例涉及的调试对象程序>
本发明的第二实施例涉及的程序调试对象程序与本发明的上述第一实施例涉及的调试对象程序相同,因此省略详细说明。
<第二实施例涉及的断点设定处理的结构>
在这里,说明本发明第二实施例中的特征性处理,即说明断点设定处理S1的变化实施例。即,作为中断模式标志的转换处理,本发明的第一实施例涉及的断点设定处理S1中进行窗口聚焦处理S21,而在本实施例涉及的程序调试装置2中进行显示调试对象程序的处理S22。
图10是一种流程图,其表示显示控制部26为了使程序调试装置2显示调试对象程序而进行的源代码显示处理S22的细节。本图中,控制部26进行以下步骤,从而完成源代码显示处理:显示所选择的源代码的步骤S106;以及中断模式标志设定处理S13,判断所显示的源代码来设定中断模式标志。
图11是一种流程图,其表示中断模式标志设定处理步骤S13的细节。本图中,控制部26进行以下步骤,从而完成中断模式标志设定处理:源代码显示判断步骤S206,判断程序调试装置2的显示装置2b是否正在显示高级语言的源代码;将中断模式标志设为1的步骤S202,通过源代码显示判断步骤S206判断为正在显示高级语言的源代码时,将中断模式标志设为1;以及将中断模式标志设为0的步骤S201,通过源代码显示判断步骤S206判断为没有显示高级语言的源代码时,将中断模式标志设为0。
在这里说明断点设定处理S1的变化实施例。通过用户的操作,在选择了源代码行并且进行了断点指定操作的情况下,进行源代码显示处理S22,即进行显示所选择的源代码的处理S106以及中断模式标志设定处理步骤S13。由于在中断模式标志设定处理步骤S13中,通过源代码显示判断步骤S205选择显示高级语言的源代码时的处理,因此将中断模式标志设为1。断点设定处理S1与本发明的上述第一实施例涉及的处理相同,因此省略详细说明。
在这种结构中,由于调试操作人员可以预测以后要调试的调试对象程序,来自动适当地转换断点,因此能提高调试工作的效率。
<第三实施例>
本发明的第三实施例涉及的程序调试系统的外观、显示装置2b的显示内容以及调试对象程序都分别与上述第一实施例的外观、显示内容以及调试对象程序大体相同。而省略相同部分的详细说明,并以下主要说明不同部分。
<第三实施例涉及的调试对象程序>
本发明的第三实施例涉及的程序调试对象程序与本发明的上述第一实施例涉及的调试对象程序相同,因此省略详细说明。
<第三实施例涉及的断点设定处理的结构>
在这里说明本发明第三实施例的特征性处理,即断点设定处理S1a。
图12是一种流程图,其表示由控制部26进行的断点设定处理S1a的细节,该断点设定处理S1a的要点在于,为了使程序调试装置2对调试对象程序进行调试而设定断点。本图中,控制部26进行以下步骤,从而完成断点设定处理:中断模式标志设定处理步骤S12,判断通过用户的操作指定的断点位置,并设定中断模式标志;以及断点设定处理步骤S1。
图13是一种流程图,其表示中断模式标志设定处理步骤S12的细节。本图中,中断模式标志设定处理S12进行以下步骤,从而完成中断模式标志设定处理:源代码判断步骤S204,判断是否正在指定高级语言的源代码行,并将它作为程序调试装置2中的断点指定位置;将中断模式标志设为1的步骤S202,通过源代码判断步骤S204判断为正在指定高级语言的源代码行时,将中断模式标志设为1;以及将中断模式标志设为0的步骤S201,通过源代码判断步骤S204判断为没有指定高级语言的源代码行时,将中断模式标志设为0。
在这种结构中,由于根据调试操作人员设定的断点位置判断以后要聚焦的点,来能自动适当地转换断点,因此能够提高调试工作的效率。
再者,代替图12、图13所示的断点设定处理,也可以进行图14所示的断点设定处理,该处理不利用中断模式标志。即,控制部25进行以下步骤,从而完成断点处理:源代码行判断步骤S150,判断通过用户的操作来指定的断点位置是否为源代码行;带条件的中断处理步骤S151,通过中断模式标志判断步骤S100判断为中断模式标志为1时,将该断点作为带条件的中断来进行处理;无条件的中断处理步骤S152,通过中断模式标志判断步骤S301判断为中断模式标志为1以外时,将该断点作为无条件的中断来进行处理。
<第四实施例>
本发明的第四实施例涉及的程序调试系统的外观、显示装置2b的显示内容以及调试对象程序都分别与上述第一实施例的外观、显示内容以及调试对象程序大体相同。而省略相同部分的详细说明,并以下主要说明不同部分。
<第四实施例涉及的中断处理的结构>
在这里,说明本发明第四实施例的特征性处理即中断处理S2。
图15是一种流程图,其表示程序调试装置2对调试对象程序进行调试的过程中停止在断点时由控制部26进行的中断处理S2的细节。本图中,控制部26进行以下步骤,从而完成中断处理:接收步骤S99,按照用户的操作接收断点;中断模式标志判断步骤S100;带条件的中断处理步骤S103,通过中断模式标志判断步骤S100判断为中断模式标志为1时,将该中断作为带条件的中断来进行处理;以及无条件的中断处理步骤S104,通过中断模式标志判断步骤S301判断为中断模式标志为1以外时,将该中断作为无条件的中断来进行处理。
在这里,中断模式标志存储的初始值无论是0还是1都可以。在这里,关于中断模式标志的转换,可以通过本发明的上述第一实施例涉及的窗口聚焦处理S21进行,也可以通过本发明的上述第二实施例涉及的源代码显示处理S22进行。
下面,说明中断处理S2的一个例子。对于调试对象程序进行的调试工作中,例如通过本发明的第一实施例涉及的窗口聚焦处理S21来转换中断模式标志。在让高级语言的源代码显示窗口获得焦点时,要进行窗口聚焦处理S21,即进行让所选择的窗口获得焦点的步骤S105以及中断模式标志设定处理步骤S11。由于在中断模式标志设定处理步骤S11中,通过源代码聚焦判断步骤S203选择让高级语言的源代码显示窗口获得焦点时的处理,因此将中断模式标志设为1。在此状态下对调试对象程序设定断点,进行程序执行处理。在断点上停止程序并进行中断处理S2时,由于通过中断模式标志判断步骤S100选择中断模式标志的值为1时的处理,因此将该中断作为带条件的中断来处理。
另外,让反汇编语言的代码显示窗口获得了焦点时,进行窗口聚焦处理S21,并进行让所选择的窗口获得焦点的步骤S105以及中断模式标志设定处理步骤S11。由于在中断模式标志设定处理步骤S11中,通过源代码聚焦判断步骤S203选择让反汇编语言的代码显示窗口获得焦点时的处理,因此将中断模式标志设为0。在此状态下进行程序执行处理,并停止在断点来进行中断处理S2时,由于通过中断模式标志判断步骤S100选择中断模式标志的值为0时的处理,因此将该中断作为带条件的中断来处理。在所设定的断点,由于让源代码显示窗口获得焦点或让代码显示窗口获得焦点而变更中断模式标志的值,因此,随之变更中断处理工作。
在这种结构中,可以自动适当地转换断点,因此能够提高调试工作的效率,其要点在于,调试操作人员聚焦高级语言的源代码来进行调试工作的情况下,只有满足带条件指令的条件时才使程序停止在设有断点的源代码行上,而在聚焦反汇编语言等来进行调试工作的情况下,无论带条件指令的条件如何,都要使程序停止。
<第五实施例>
本发明的第五实施例涉及的程序调试对象程序与本发明的上述第一实施例涉及的调试对象程序相同,因此省略详细说明。在本实施例中,程序调试装置按断点存储模式标志,该模式标志表示该断点的种类是带条件的中断还是无条件的中断。
<第五实施例涉及的断点显示处理的结构>
在这里,说明本发明第五实施例的特征性处理,即断点显示处理S32。
图16是一种流程图,其表示断点设定处理S1b的细节,该断点设定处理S1b的要点在于,为了使程序调试装置2对调试对象程序进行调试而设定断点。本图中,控制部26进行以下步骤,从而完成断点设定处理:断点设定步骤S107;模式标志设定处理步骤S31,根据所设定的断点种类,设定模式标志;以及断点显示处理S32,判断模式标志的值,并在断点设定位置显示标记。
图17是一种流程图,其表示模式标志设定处理S31的细节。本图中,模式标志设定处理S31进行以下步骤,从而完成标志设定处理:中断判断步骤S300,判断所设定的中断的种类;将模式标志设为1并存储的步骤S302,通过中断判断步骤S300判断为设有带条件的中断时,对应于该中断,将模式标志设为1并存储;以及将模式标志设为0并存储的步骤S301,通过中断判断步骤S300判断为设有无条件的中断时,对应于该中断,将模式标志设为0并存储。
图18是一种流程图,其表示断点显示处理S32的细节。本图中,断点显示处理S32进行以下步骤,从而完成断点显示处理:模式标志判断步骤S303,对模式标志进行判断,该模式标志表示断点中设定有无条件的中断还是带条件的中断;标记A显示步骤S304,通过模式标志判断步骤S303判断为模式标志为1时,在断点的设定位置显示标记A;以及标记B显示步骤S305,通过模式标志判断步骤S303判断为模式标志为0时,在断点的设定位置显示标记B。
下面,说明断点显示处理S32的一个例子。程序调试装置2对高级语言的源代码进行断点设定处理S1b的情况下,在断点设定步骤S107中通过本发明的上述第三实施例涉及的断点设定处理来设定断点时,断点被设定到所指定的源代码行上。由于通过模式标志设定处理步骤S31中的中断判断步骤S300选择设有带条件的中断时的处理,因此将模式标志设为1。在此状态下进行断点显示处理步骤S32时,由于通过模式标志判断步骤S303选择模式标志为1时的处理,因此在断点设定位置显示标记A。
并且,对反汇编语言进行断点设定处理S1b时,通过断点设定步骤S107设定无条件的中断,并通过模式标志设定处理步骤S31中的中断判断步骤S300来选择设有无条件的中断时的处理,因此将模式标志设为0。在此状态下进行断点显示处理步骤S32时,由于通过模式标志判断步骤S303选择模式标志为0时的处理,因此在断点设定位置显示标记B。
在这种结构中,由于调试操作人员能直观地理解断点的种类,因此可以省略确认断点种类的工作,从而减轻调试操作人员的负担,提高调试工作的效率。
并在本实施例中,为了识别断点而设定了标记A、B,不过,也可以采用C、D等其他字母,或○、△等符号。
另外,在本实施例中,为了识别断点而设定了标记A、B,不过,也可以采用其他方法来进行识别,例如:给设有断点的源代码行的背景涂上蓝色、红色等颜色;对设有断点的源代码行的上面或下面画波状线、直线等线;以各种宽度的边线包围设定了断点的源代码行,等等。
<第六实施例>
<第六实施例涉及的程序调试系统的外观>
本发明的第六实施例涉及的程序调试系统具有与上述第一实施例涉及的程序调试系统相同的外观,因此省略详细说明。
由于程序调试装置显示的画面的内容与上述第一实施例涉及的画面的内容相同,因此省略详细说明。
<第六实施例涉及的调试对象程序>
本发明的第六实施例涉及的程序调试对象程序与本发明的上述第一实施例涉及的调试对象程序相同,因此省略详细说明。
<第六实施例涉及的断点显示处理的结构>
在这里说明本发明第六实施例的特征性处理即断点显示处理S33。
图19是一种流程图,其表示由控制部26进行的断点显示处理S33的细节。本图中,控制部26进行以下步骤,从而完成断点显示处理:中断模式标志判断步骤S100,判断中断模式标志;标记A显示步骤S304,通过中断模式标志判断步骤S100判断为模式标志为1时,在断点的设定位置显示标记A;以及标记B显示步骤S305,通过中断模式标志判断步骤S100判断为模式标志为1以外时,在断点的设定位置显示标记B。
下面,说明断点显示处理S33的一个例子。在程序调试装置2对高级语言的源代码进行窗口聚焦处理步骤S21时,由于在中断模式标志设定处理步骤S11中,通过源代码聚焦判断步骤S203来选择让高级语言的源代码显示窗口获得焦点时的处理,因此将中断模式标志设为1。通过断点设定处理步骤S1设定断点时,可在指定的位置设定带条件的中断。在此状态下进行断点显示处理步骤S33时,由于通过中断模式标志判断步骤S100选择模式标志为1时的处理,因此在断点设定位置显示标记A。
另外,对反汇编语言进行窗口聚焦处理步骤S21时,由于在中断模式标志设定处理步骤S11中,通过源代码聚焦判断步骤S203选择让反汇编语言的代码显示窗口获得焦点时的处理,因此将中断模式标志设为0。在此状态下进行断点显示处理步骤S33时,由于通过中断模式标志判断步骤S100选择模式标志为0时的处理,因此在断点设定位置显示标记B。
图20表示源代码显示窗口及汇编程序显示窗口的显示例子。本图中,在源代码显示窗口W101中第五行的源代码上及反汇编语言的代码显示窗口W102中第五行的反汇编语言代码上设有标记A。根据该标记A可知设有带条件的中断。而,在源代码显示窗口W101中第七行的源代码上及反汇编语言的代码显示窗口W102中第七行的反汇编语言代码上设有标记B。根据该标记B可知设有带条件的中断。
在这种结构中,由于调试操作人员能直观地理解断点的种类,因此可以省略确认断点种类的工作,从而减轻调试操作人员的负担,提高调试工作的效率。
并在本实施例中,为了识别断点而设定了标记A、B,不过,也可以采用C、D等其他字母,或○、△等符号。
另外,在本实施例中,为了识别断点而设定了标记A、B,不过,也可以采用其他方法来进行识别,例如:给设有断点的源代码行的背景涂上蓝色、红色等颜色;对设有断点的源代码行的上面或下面画波状线、直线等线;以各种宽度的边线包围设定了断点的源代码行,等等。
产业上的可利用性
本发明适于程序调试装置,该程序调试装置任意进行程序的执行及停止的同时,显示程序的执行状态,从而支援软件开发者开发程序;本发明还适于对包括带执行条件指令的程序进行调试的程序调试装置,该程序调试装置例如以C语言等源代码及汇编代码为基准进行调试。

Claims (12)

1.一种程序调试装置,按照无条件的中断以及带条件的中断来停止程序的执行;该无条件的中断为,无论带执行条件指令的条件如何,都停止程序的执行;该带条件的中断为,只有带执行条件指令的条件为真时才停止程序的执行,
其特征在于,该程序调试装置包括:
接收单元,按照用户的操作接收断点;
决定单元,按照程序调试装置的状态来决定将接收到的断点设为无条件的中断还是带条件的中断;以及
停止单元,按照决定单元决定的无条件的中断或带条件的中断来停止程序。
2.如权利要求1所述的程序调试装置,其特征在于,上述决定单元,将在通过接收单元接收到断点时、是否正处于高级语言的源代码显示窗口获得焦点的状态,判断为程序调试装置的状态。
3.如权利要求2所述的程序调试装置,其特征在于,上述决定单元在判断为正处于源代码显示窗口获得焦点的状态时,决定将断点设为带条件的中断;而在判断为源代码显示窗口没有获得焦点时,决定将断点设为无条件的中断。
4.如权利要求1所述的程序调试装置,其特征在于,上述决定单元,将在通过接收单元接收到断点时、高级语言的源代码显示窗口是否正在显示源代码,判断为程序调试装置的状态。
5.如权利要求4所述的程序调试装置,其特征在于,上述决定单元在判断为源代码显示窗口正在显示源代码时,决定将断点设为带条件的中断;而在判断为源代码显示窗口没有显示源代码时,决定将断点设为无条件的中断。
6.如权利要求1所述的程序调试装置,其特征在于,上述决定单元,将在通过接收单元接收到断点时、高级语言的源代码显示窗口中源代码行是否正在被指定,判断为程序调试装置的状态。
7.如权利要求6所述的程序调试装置,其特征在于,上述决定单元在判断为源代码显示窗口中源代码行正在被指定时,决定将断点设为带条件的中断;而在判断为源代码显示窗口中源代码行没有被指定时,决定将断点设为无条件的中断。
8.如权利要求1所述的程序调试装置,其特征在于,上述决定单元,将执行程序的过程中是否正处于高级语言的源代码显示窗口获得焦点的状态,判断为程序调试装置的状态。
9.如权利要求8所述的程序调试装置,其特征在于,上述决定单元在判断为正处于源代码显示窗口获得焦点的状态时,决定将断点设为带条件的中断;而在判断为源代码显示窗口没有获得焦点时,决定将断点设为无条件的中断。
10.如权利要求1所述的程序调试装置,其特征在于,上述程序调试装置还包括添加单元,该添加单元将表示断点的标记添加给被指定为断点的源代码行或汇编代码行;上述标记依断点设为无条件的中断还是带条件的中断而不同。
11.一种程序调试装置中的调试方法,该程序调试装置按照无条件的中断以及带条件的中断来停止程序的执行;该无条件的中断为,无论带执行条件指令的条件如何,都停止程序的执行;该带条件的中断为,只有带执行条件指令的条件为真时才停止程序的执行,
其特征在于,该调试方法包括:
接收步骤,按照用户的操作接收断点;
决定步骤,按照程序调试装置的状态来决定将接收到的断点设为无条件的中断还是带条件的中断;以及
停止步骤,按照决定步骤中决定的无条件的中断或带条件的中断来停止程序。
12.一种由处理器可执行的程序,该处理器控制程序调试装置;该程序调试装置按照无条件的中断以及带条件的中断来停止程序的执行;该无条件的中断为,无论带执行条件指令的条件如何,都停止程序的执行;该带条件的中断为,只有带执行条件指令的条件为真时才停止程序的执行,
其特征在于,该程序使上述处理器执行以下步骤:
接收步骤,按照用户的操作接收断点;
决定步骤,按照程序调试装置的状态来决定将接收到的断点设为无条件的中断还是带条件的中断;以及
停止步骤,按照决定步骤中决定的无条件的中断或带条件的中断来停止程序。
CNA2006800050447A 2005-02-15 2006-02-03 程序调试装置、程序调试方法以及程序 Pending CN101120321A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP037236/2005 2005-02-15
JP2005037236A JP2006227681A (ja) 2005-02-15 2005-02-15 デバッグ装置、デバッグ方法およびプログラム

Publications (1)

Publication Number Publication Date
CN101120321A true CN101120321A (zh) 2008-02-06

Family

ID=36916331

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006800050447A Pending CN101120321A (zh) 2005-02-15 2006-02-03 程序调试装置、程序调试方法以及程序

Country Status (4)

Country Link
US (1) US20090013313A1 (zh)
JP (1) JP2006227681A (zh)
CN (1) CN101120321A (zh)
WO (1) WO2006087922A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8555256B2 (en) 2009-12-14 2013-10-08 Huawei Technologies, Co., Ltd. Pass-by breakpoint setting and debugging method and device

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10078574B2 (en) 2006-09-25 2018-09-18 Typemock Ltd. Methods and systems for isolating software components
JP5228537B2 (ja) * 2008-02-29 2013-07-03 日本電気株式会社 テキスト表示装置、開発システム、テキスト表示方法及びプログラム
JP5636783B2 (ja) * 2010-07-22 2014-12-10 富士電機株式会社 プログラマブルコントローラ、およびプログラマブルコントローラのデバッグ方法
US8434057B2 (en) 2010-08-17 2013-04-30 Oracle International Corporation Optimized implementation of breakpoint in java debugger agent
US8572579B2 (en) 2010-08-19 2013-10-29 Oracle International Corporation Break on next called function or method in java debugger agent
US8689196B2 (en) * 2010-12-10 2014-04-01 Microsoft Corporation Display of data from parallel programming contexts
US8943477B2 (en) 2012-12-18 2015-01-27 International Business Machines Corporation Debugging a graphical user interface code script with non-intrusive overlays
US8938718B2 (en) 2012-12-18 2015-01-20 International Business Machines Corporation Managing window focus while debugging a graphical user interface program
US10642693B2 (en) * 2017-09-06 2020-05-05 Western Digital Technologies, Inc. System and method for switching firmware

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08272648A (ja) * 1994-12-29 1996-10-18 Hitachi Ltd デバッグコマンドファイルを自動的に生成する方法、およびデバッグコマンドファイルにおいてブレークポイントを自動的に再生成する装置
JPH11194957A (ja) * 1998-01-07 1999-07-21 Matsushita Electric Ind Co Ltd デバッグ支援装置、並列実行情報生成装置、及びこれらに適用されるプログラムを記録した記録媒体
JP4187371B2 (ja) * 1999-11-30 2008-11-26 富士通株式会社 割込制御装置および方法
JP2000330824A (ja) * 1999-05-21 2000-11-30 Advantest Corp 半導体試験装置のプログラム作成装置
US6922826B2 (en) * 2001-07-03 2005-07-26 International Business Machines Corporation Debugger impact reduction through breakpoint motion
JP2003050716A (ja) * 2001-08-06 2003-02-21 Matsushita Electric Ind Co Ltd ソフトウエアデバッガとソフトウエア開発支援システム
JP4272371B2 (ja) * 2001-11-05 2009-06-03 パナソニック株式会社 デバッグ支援装置、コンパイラ装置、デバッグ支援プログラム、コンパイラプログラム、及びコンピュータ読取可能な記録媒体。
US20050028036A1 (en) * 2003-07-30 2005-02-03 Kohsaku Shibata Program debug apparatus, program debug method and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8555256B2 (en) 2009-12-14 2013-10-08 Huawei Technologies, Co., Ltd. Pass-by breakpoint setting and debugging method and device

Also Published As

Publication number Publication date
WO2006087922A1 (ja) 2006-08-24
US20090013313A1 (en) 2009-01-08
JP2006227681A (ja) 2006-08-31

Similar Documents

Publication Publication Date Title
CN101120321A (zh) 程序调试装置、程序调试方法以及程序
CN100555218C (zh) 用于改善片上仿真系统中高级语言的仿真速度的装置和方法
EP1004072B1 (en) Embedded graphical programming system
US7093165B2 (en) Debugging Method
US20180173503A1 (en) System and method for graphical programming
CN100334561C (zh) 程序调试装置、程序调试方法
CN112463139B (zh) 基于电子积木的编程方法、装置、电子设备及存储介质
US8074182B2 (en) Work procedure display method and system, production process management method and system, and computer program of the same
CN110442520B (zh) 一种基于plc编程语言的交叉调试系统及方法
US20030110476A1 (en) Source code debugger, debugging method and debugging program
US7752558B2 (en) Plant operation supporting apparatus and plant operation supporting method
JP5422963B2 (ja) ソフトウェアの開発支援システム、開発支援方法およびプログラム
JP2010224597A (ja) プログラマブルコントローラ制御プログラム作成方法、および、プログラマブルコントローラ制御プログラム作成システム
CN101615016A (zh) 工程工具
US20080276187A1 (en) Iconic Programming System with Disabling and Enabling of Dependent Objects
JP7000302B2 (ja) 情報処理装置
KR100952762B1 (ko) 디지털 시그널 프로세서의 실시간 디버깅 방법
EP3633471B1 (en) Program development support device, program development support system, program development support method, and program development support program
US9830174B2 (en) Dynamic host code generation from architecture description for fast simulation
JP2009009314A (ja) エディタ装置、エディタプログラムおよびそれを記録した記録媒体
KR100423742B1 (ko) 순차기능챠트에 의한 전용 제어 시스템
JP2001075634A (ja) 制御装置用画面データのテスト表示方法
CN115829504A (zh) 工程的实施管理方法及装置
Antypas Allinea ddt as a parallel debugging alternative to totalview
WO2012124153A1 (ja) シミュレーション装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication