CN104778116B - 一种多断点的软件调试装置和方法 - Google Patents
一种多断点的软件调试装置和方法 Download PDFInfo
- Publication number
- CN104778116B CN104778116B CN201410010606.3A CN201410010606A CN104778116B CN 104778116 B CN104778116 B CN 104778116B CN 201410010606 A CN201410010606 A CN 201410010606A CN 104778116 B CN104778116 B CN 104778116B
- Authority
- CN
- China
- Prior art keywords
- instruction
- breakpoint
- break
- true
- poing
- 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.)
- Active
Links
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
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
本发明公开了一种多断点的软件调试装置和方法,该软件调试装置包括:驱动器、微处理器、指令存储器和微码集成开发环境(IDE);上述软件调试装置通过在软件程序中设置断点,获取断点信息,将断点处的指令替换成断点指令,在执行到断点指令时,上报中断、冻结流水线,根据IDE下发的命令将所述断点指令换回真实指令,解冻流水线,对断点处的真实指令进行取指,在断点指令执行的间隙将断点处的真实指令再次替换成断点指令的方法来实现多断点的软件调试。
Description
技术领域
本发明涉及软件调试技术,尤其涉及一种多断点的软件调试装置和方法。
背景技术
微处理器调试技术广泛地应用于软件故障定位、软件代码分析以及逆向工程领域,对微处理器的设计和使用有至关重要的作用。
对微处理器的软件进行调试一般包括以下两个方面的内容:在软件程序中设置断点,使程序执行到所设置的断点位置时产生中断并停止执行;用户可以对程序执行单步操作或使之摆脱中断状态继续往下执行。
从上述内容可以看出,断点技术是微处理器的软件调试中不可或缺并有决定性作用的技术。当前的断点技术主要分为两种:
第一种,硬件断点的方案。这种技术采用若干个断点寄存器来存储断点位置的指针,在微处理器执行指令时,根据配置不断将所执行指令的指针与断点寄存器中的断点指针进行对比,当发生匹配时,产生中断并冻结微处理器的流水线跳入特定程序段进行处理。这种硬件断点的显而易见的缺点就是,由于断点寄存器的数量限制,硬件断点只能实现数量有限的几个断点,在调试过程中会有很多的限制。
第二种,软件多断点方案。这技术当前使用非常广泛,一般做法是将微处理器执行的指令存储器中的断点位置的指令替换成断点指令,并将断点处的真实指令备份到另一个存储器中,当微处理器执行到断点位置时,处理器流水线解析断点位置处的指令,获知该断点位置处的指令为断点指令后产生中断,并冻结流水线跳入指定程序段进行处理,在产生中断后使用高级语言来解析该断点处的真实指令,利用PC++来使程序跳入断点后一条指令开始执行。上述软件多断点调试技术需要对断点位置的真实指令进行备份,在替换回真实指令时需要高级语言来解析断点处的真实指令,如此,实现该方案需要消耗大量额外的存储空间来存储备份断点处的真实指令,还需要替换流水线中指令,实现困难。
发明内容
为解决现有存在的问题,本发明实施例主要提供一种多断点的软件调试装置和方法,简单易行的实现了多断点的软件调试,同时节省了单板上的存储资源。
本发明的技术方案是这样实现的:
本发明提供了一种多断点的软件调试装置,该软件调试装置包括:驱动器、微处理器、指令存储器和微码集成开发环境IDE;其中,
所述驱动器,用于获取软件程序中的断点信息,将所述断点信息发送给指令存储器,并根据指令存储器中的断点信息将断点处的真实指令替换成断点指令,在上报中断给IDE后,根据IDE下发的命令将所述断点指令换回真实指令,触发微处理器解冻流水线,并在断点指令执行的间隙将断点处的真实指令再次替换成断点指令;
所述微处理器,用于当执行到断点指令时,通过驱动器上报中断给IDE,冻结流水线,并根据驱动器的触发解冻流水线,对断点处的真实指令进行取指;
所述指令存储器,用于存储断点指令和断点信息;
所述IDE,用于为用户提供下发命令的交互界面。
上述方案中,所述断点信息包括断点位置地址;所述断点指令为原地跳转指令;所述断点指令执行的间隙为断点指令在原地执行跳转的任意两次的间隙。
上述方案中,所述驱动器,还用于将来自所述IDE的命令解析成具体的寄存器或存储器读写信号通过总线发送给所述微处理器和/或指令存储器。
上述方案中,所述驱动器,还用于将断点位置和断点处的真实指令存储到IDE所在的上位机。
上述方案中,所述微处理器包括:流水线和调试模块;其中,
所述流水线,用于当执行到断点指令时,解析发现当前指令为断点指令后向所述调试模块发送通知,并在解冻后对断点处的真实指令进行取指;
所述调试模块,用于当接收到来自所述流水线的通知后,冻结流水线,上报中断给驱动器,并根据驱动器的触发解冻流水线。
上述方案中,所述调试模块,具体用于当接收到来自所述流水线的通知后,产生停止信号来冻结流水线。
本发明还提供了一种多断点的软件调试方法,该软件调试方法包括:
微码集成开发环境IDE在软件程序中设置断点;
驱动器获取软件程序中的断点信息,根据所述断点信息将断点处的真实指令替换成断点指令;
当执行到所述断点指令时,微处理器上报中断给IDE,并冻结流水线;
驱动器根据IDE下发的命令将所述断点指令换回真实指令;
微处理器解冻流水线,对断点处的真实指令进行取指;
驱动器在断点指令执行的间隙将断点处的真实指令再次替换成断点指令。
上述方案中,所述断点信息包括断点位置地址。
上述方案中的软件调试方法还包括:驱动器将断点位置和断点处的真实指令存储到IDE所在的上位机。
上述方案中,所述驱动器根据IDE下发的命令将所述断点指令换回真实指令,微处理器解冻流水线,对断点处的真实指令进行取指,驱动器在断点指令执行的间隙将断点处的真实指令再次替换成断点指令为:驱动器根据IDE下发的单步操作命令或继续操作命令,将所述断点指令换回真实指令,在换回真实指令时,微处理器解冻流水线,对断点处的真实指令进行取指,在对所述真实指令取指完成后,在任意两次执行断点指令的间隙将断点处的真实指令再次替换成断点指令。
本发明实施例提供了一种多断点的软件调试装置和方法,微码集成开发环境(IDE,Integrated Development Environment)在软件程序中设置断点,驱动器获取软件程序中的断点信息,根据所述断点信息将断点处的真实指令替换成断点指令,当执行到所述断点指令时,微处理器上报中断给IDE,并冻结流水线,驱动器根据IDE下发的命令将所述断点指令换回真实指令,微处理器解冻流水线,对断点处的真实指令进行取指,驱动器在断点指令执行的间隙将断点处的真实指令再次替换成断点指令;如此,本申请利用断点指令的特性和流水线冻结的空隙来完成替换指令的操作,不仅可以在指令存储器中继续保留断点,而且不用额外增加单板上的存储空间来存储断点位置的指令,节省大量的硬件存储资源的同时也简化了调试步骤。
附图说明
图1为本发明实施例提供的多断点的软件调试装置的结构示意图
图2为本发明实施例提供的软件调试装置中微处理器和指令存储器的结构示意图;
图3为本发明实施例提供的多断点的软件调试方法流程图;
图4为本发明实施例提供的断点的软件设置方法流程图;
图5为本发明实施例提供的执行单步操作的流程图;
图6为本发明实施例提供的执行继续操作的流程图。
具体实施方式
本发明实施例中,IDE在软件程序中设置断点;驱动器获取软件程序中的断点信息,根据所述断点信息将断点处的真实指令替换成断点指令;当执行到所述断点指令时,微处理器上报中断给IDE,并冻结流水线;驱动器根据IDE下发的命令将所述断点指令换回真实指令;微处理器解冻流水线,对断点处的真实指令进行取指;驱动器在断点指令执行的间隙将断点处的真实指令再次替换成断点指令,通过上述方法来实现多断点的软件调试。
下面通过附图及具体实施例对本发明做进一步的详细说明;
本发明实施例提供的多断点的软件调试装置的结构如图1所示,该软件调试装置包括:驱动器(Driver)10、微处理器11、指令存储器12和IDE13;其中,
所述驱动器10,用于获取软件程序中的断点信息,将所述断点信息发送给指令存储器,并根据指令存储器中的断点信息将断点处的真实指令替换成断点指令,在上报中断给IDE13后,根据IDE13下发的命令将所述断点指令换回真实指令,触发微处理器11解冻流水线,并在断点指令执行的间隙将断点处的真实指令再次替换成断点指令;
所述微处理器11,用于当执行到所述断点指令时,通过驱动器10上报中断给IDE13,冻结流水线,并根据驱动器10的触发解冻流水线,对断点处的真实指令进行取指;
所述指令存储器12,用于存储断点指令和断点信息;
所述IDE13,用于为用户提供下发命令的交互界面;
其中,所述断点信息包括断点位置地址;
所述断点指令为原地跳转指令,所述断点指令执行的间隙为断点指令在原地执行跳转的任意两次的间隙;
所述驱动器10,还用于将来自所述IDE13的命令解析成具体的寄存器或存储器读写信号通过总线发送给所述微处理器11和/或指令存储器12;所述命令包括:设置断点命令以及执行单步(Step)操作或继续(Continue)操作等命令;
所述IDE13安装在上位机上,在为微处理器11和或指令存储器12下发命令后,所述驱动器10,还用于将断点位置和断点处的真实指令存储到IDE13所在的上位机。
图2所示为本发明实施例提供的微处理器11和指令存储器12的结构图,如图所示,所述微处理器11具体包括:流水线20和调试(Debug)模块21;其中,
所述流水线20,用于当执行到断点指令时,解析发现当前指令为断点指令后向所述调试模块21发送通知,并在解冻后对断点处的真实指令进行取指;
所述调试模块21,用于当接收到来自所述流水线20的通知后,冻结流水线,上报中断给驱动器10,并根据驱动器10的触发解冻流水线;
所述调试模块21,具体用于当接收到来自所述流水线20的通知后,产生停止(stall)信号来冻结流水线;
所述上位机上安装的IDE13可以通过总线操作所述调试模块21中的寄存器来解除流水线冻结,从而使微处理器11可以执行单步操作或继续操作;
所述上位机上安装的IDE13还可以通过总线来对指令存储器12中存储的指令内容进行修改,所述指令存储器12可以由SRAM组成。
本发明实施例提供一种多断点的软件调试方法,如图3所示,该软件调试方法包括以下步骤:
步骤301:在软件程序中设置断点;
具体的,调试开始后,用户通过IDE在软件程序中设置断点,断点的数量和位置由用户根据需求来设定;
步骤302:驱动器获取软件程序中的断点信息,根据所述断点信息将断点处的真实指令替换为断点指令;
具体的,首先,驱动器从所述IDE中获得用户在软件程序中设置断点的命令以及断点信息;所述断点信息包括断点位置地址;然后,根据所述断点位置地址将软件程序中断点位置地址对应的真实指令替换成指令存储器中的断点指令,所述断点指令为原地跳转指令;
本步骤还包括,在将所述真实指令替换成断点指令后,将所述断点位置和所述断点处的真实指令存储到IDE所在的上位机。
步骤303:当执行到所述断点指令时,微处理器上报中断,并冻结流水线;
具体的,当软件程序执行到所述断点指令时,微处理器上报中断给IDE的同时冻结流水线;由于所述断点指令本身为原地跳转指令,因此,断点指令会跳转到微处理器当前的取指地址处,同时会将流水线上延迟槽内的指令都刷新成NOP指令。
步骤304:驱动器根据IDE下发的命令将所述断点指令换回真实指令,微处理器解冻流水线,对断点处的真实指令进行取指,驱动器在断点指令执行的间隙将断点处的真实指令再次替换成断点指令;
具体的,在上报中断后,驱动器根据IDE下发的单步操作命令或继续操作命令,将所述断点指令换回真实指令,在换回真实指令时,微处理器解冻流水线,执行所述断点指令,同时完成对断点处的真实指令进行取指,由于所述断点指令继续在原地跳转,这样,可以在任意两次执行断点指令的间隙将断点处的真实指令再次替换成断点指令。
图4具体的呈现了微处理器软件断点的设置方法流程,图中所示流程为图3中步骤301与步骤302的具体操作步骤,包括:
步骤401:IDE开启调试模式;
具体的,IDE开启调试模式后,用户可以在软件程序中设置断点,所述断点的位置和数量由用户根据调试需要来确定。
步骤402:驱动器从所述IDE获得打断点的命令以及断点位置地址;
具体的,用户通过IDE设置断点之后,驱动器从所述IDE中获取断点命令以及断点位置地址,为下一步替换指令做准备。
步骤403:驱动器根据所述断点位置地址将断点处的真实指令替换成断点指令;
步骤404:驱动器将所述断点位置地址和所述真实指令备份;
具体的,驱动器将软件程序中的所有断点位置地址和所述断点位置地址处的真实指令都保存至IDE所在上位机进行备份。
当微处理器执行到断点指令并上报中断后,IDE继续执行单步操作时,具体流程如图5所示;
首先,在IDE开始执行单步操作时读取中断寄存器来判断是否有中断,当有中断时,则表示微处理器已经产生中断并冻结了流水线,此时可以执行单步操作,当没有中断时,表示微处理器的流水线正常工作,此时不能执行单步操作;然后读取微处理器中当前取指地址,并将所述取指地址和所述驱动器记录存储的断点位置进行对比,判断所述取指地址是否与所述断点位置对应,当所述取指地址与所述断点位置对应时,则表示微处理器当前执行的指令是原地跳转指令;
然后,所述驱动器将所述取指地址ex_2pc处的指令替换为原来需执行的真实指令,本实施例中取指地址具体为ex_2pc;接下来所述驱动器触发微处理器执行所述原地跳转指令,同时完成对所述取指地址处的真实指令的取指;所述驱动器再将所述ex_2pc处的真实指令替换回所述原地跳转指令Trap指令;所述驱动器触发微处理器再一次执行所述原地跳转指令,最后,所述微处理器执行所述真实指令完成整个单步操作;
如图所示,当将所述当前的取指地址和所述驱动器中记录的断点位置进行对比,所述取指地址与所述断点位置不对应时,表示微处理器当前执行的指令不是断点指令,微处理器继续执行下一条指令,完成操作。
图6所示为当微处理器执行到断点指令并上报中断后,IDE执行继续操作时的流程图,具体流程与图5所示相似;
首先,在IDE开始执行继续操作时读取中断寄存器来判断是否有中断,当有中断时,则表示微处理器已经产生中断并冻结了流水线,此时可以执行继续操作,当没有中断时,表示微处理器的流水线正常工作,此时不能执行继续操作;然后读取微处理器中当前取指地址,并将所述取指地址和所述驱动器记录存储的断点位置进行对比,判断所述取指地址是否与所述断点位置对应,当所述取指地址与所述断点位置对应时,则表示微处理器当前执行的指令是原地跳转指令;
然后,所述驱动器将所述取指地址ex_2pc处的指令替换为原来需执行的真实指令,本实施例中取指地址具体为ex_2pc;接下来所述驱动器触发微处理器执行所述原地跳转指令,同时完成对所述取指地址处的真实指令的取指;所述驱动器再将所述ex_2pc处的真实指令替换回所述原地跳转指令Trap指令;驱动器触发微处理器再一次执行所述原地跳转指令,最后,驱动器触发微处理器全速执行软件程序,完成整个继续操作。
本发明实施例所述多断点的软件调试方法如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式,所述存储介质包括但不限于U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁盘存储器、CD-ROM、光学存储器等;
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现本发明方法流程中的一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
从上述实施例可以看出,本发明提供的微处理器软件多断点的软件调试装置和方法,通过利用断点指令和冻结流水线来实现微处理器软件调试过程中的多断点的灵活设置,比现有断点调试技术更加节省单板上的存储空间,调试方法也更加简便。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种多断点的软件调试装置,其特征在于,该软件调试装置包括:驱动器、微处理器、指令存储器和微码集成开发环境IDE;其中,
所述驱动器,用于获取软件程序中的断点信息,将所述断点信息发送给指令存储器,并根据指令存储器中的断点信息将断点处的真实指令替换成断点指令,在上报中断给IDE后,根据IDE下发的命令将所述断点指令换回真实指令,触发微处理器解冻流水线,并在断点指令执行的间隙将断点处的真实指令再次替换成断点指令,其中,所述断点信息包括断点位置地址;
所述微处理器,用于当执行到断点指令时,通过驱动器上报中断给IDE,冻结流水线,并根据驱动器的触发解冻流水线,对断点处的真实指令进行取指;
所述指令存储器,用于存储断点指令和断点信息;
所述IDE,用于为用户提供下发命令的交互界面。
2.根据权利要求1所述的软件调试装置,其特征在于,所述断点指令为原地跳转指令;所述断点指令执行的间隙为断点指令在原地执行跳转的任意两次的间隙。
3.根据权利要求2所述的软件调试装置,其特征在于,所述驱动器,还用于将来自所述IDE的命令解析成具体的寄存器或存储器读写信号通过总线发送给所述微处理器和/或指令存储器。
4.根据权利要求3所述的软件调试装置,其特征在于,所述驱动器,还用于将断点位置和断点处的真实指令存储到IDE所在的上位机。
5.根据权利要求4所述的软件调试装置,其特征在于,所述微处理器包括:流水线和调试模块;其中,
所述流水线,用于当执行到断点指令时,解析发现当前指令为断点指令后向所述调试模块发送通知,并在解冻后对断点处的真实指令进行取指;
所述调试模块,用于当接收到来自所述流水线的通知后,冻结流水线,上报中断给驱动器,并根据驱动器的触发解冻流水线。
6.根据权利要求5所述的软件调试装置,其特征在于,所述调试模块,具体用于当接收到来自所述流水线的通知后,产生停止信号来冻结流水线。
7.一种多断点的软件调试方法,其特征在于,该软件调试方法包括:
微码集成开发环境IDE在软件程序中设置断点;
驱动器获取软件程序中的断点信息,根据所述断点信息将断点处的真实指令替换成断点指令;
当执行到所述断点指令时,微处理器上报中断给IDE,并冻结流水线,其中,所述断点信息包括断点位置地址;
驱动器根据IDE下发的命令将所述断点指令换回真实指令;
微处理器解冻流水线,对断点处的真实指令进行取指;
驱动器在断点指令执行的间隙将断点处的真实指令再次替换成断点指令。
8.根据权利要求7所述的软件调试方法,其特征在于,该软件调试方法还包括:驱动器将断点位置和断点处的真实指令存储到IDE所在的上位机。
9.根据权利要求7所述的软件调试方法,其特征在于,所述驱动器根据IDE下发的命令将所述断点指令换回真实指令,微处理器解冻流水线,对断点处的真实指令进行取指,驱动器在断点指令执行的间隙将断点处的真实指令再次替换成断点指令为:驱动器根据IDE下发的单步操作命令或继续操作命令,将所述断点指令换回真实指令,在换回真实指令时,微处理器解冻流水线,对断点处的真实指令进行取指,在对所述真实指令取指完成后,在任意两次执行断点指令的间隙将断点处的真实指令再次替换成断点指令。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410010606.3A CN104778116B (zh) | 2014-01-09 | 2014-01-09 | 一种多断点的软件调试装置和方法 |
PCT/CN2014/074564 WO2015103815A1 (zh) | 2014-01-09 | 2014-04-01 | 一种多断点的软件调试装置、方法和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410010606.3A CN104778116B (zh) | 2014-01-09 | 2014-01-09 | 一种多断点的软件调试装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104778116A CN104778116A (zh) | 2015-07-15 |
CN104778116B true CN104778116B (zh) | 2018-09-18 |
Family
ID=53523485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410010606.3A Active CN104778116B (zh) | 2014-01-09 | 2014-01-09 | 一种多断点的软件调试装置和方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104778116B (zh) |
WO (1) | WO2015103815A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106933727B (zh) * | 2015-12-29 | 2020-12-18 | 北京国睿中数科技股份有限公司 | 处理器中断机制的验证方法及验证装置 |
CN107436842A (zh) * | 2016-05-25 | 2017-12-05 | 中兴通讯股份有限公司 | 一种微码调试方法及单板 |
CN105824750B (zh) * | 2016-05-31 | 2018-05-22 | 杭州中天微系统有限公司 | 一种在NorFlash程序空间调试的软断点模拟方法 |
CN106776728A (zh) * | 2016-11-14 | 2017-05-31 | 上海斐讯数据通信技术有限公司 | 基于日志文件分析的代码检查方法、系统及开发平台 |
CN110968494A (zh) * | 2018-09-28 | 2020-04-07 | 珠海格力电器股份有限公司 | 一种软件调试方法、装置及计算机存储介质 |
CN112035351A (zh) * | 2020-08-27 | 2020-12-04 | 优学汇信息科技(广东)有限公司 | 一种计算机软件技术开发调试系统及调试方法 |
CN113590470A (zh) * | 2021-06-30 | 2021-11-02 | 龙芯中科(成都)技术有限公司 | 软件调试方法、装置、电子设备及存储介质 |
CN113742237A (zh) * | 2021-09-13 | 2021-12-03 | 北京奕斯伟计算技术有限公司 | 程序调试方法、装置、设备以及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0849672A2 (en) * | 1996-12-20 | 1998-06-24 | Texas Instruments Incorporated | Non-intrusive software breakpoints in a processor instructions execution pipeline |
US6708326B1 (en) * | 2000-11-10 | 2004-03-16 | International Business Machines Corporation | Method, system and program product comprising breakpoint handling mechanism for debugging and/or monitoring a computer instruction sequence |
CN101295279A (zh) * | 2007-04-29 | 2008-10-29 | 国际商业机器公司 | 多线程环境下的调试程序的方法和系统 |
CN101339581A (zh) * | 2008-08-29 | 2009-01-07 | 北京中星微电子有限公司 | 基于中断通讯的嵌入式系统的在线调试仿真方法 |
CN102662835A (zh) * | 2012-03-23 | 2012-09-12 | 凌阳科技股份有限公司 | 一种针对嵌入式系统的程序调试方法及嵌入式系统 |
CN103268288A (zh) * | 2013-06-18 | 2013-08-28 | 北京云测信息技术有限公司 | 一种移动终端应用软件的远程真机调试方法及系统 |
-
2014
- 2014-01-09 CN CN201410010606.3A patent/CN104778116B/zh active Active
- 2014-04-01 WO PCT/CN2014/074564 patent/WO2015103815A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0849672A2 (en) * | 1996-12-20 | 1998-06-24 | Texas Instruments Incorporated | Non-intrusive software breakpoints in a processor instructions execution pipeline |
US6708326B1 (en) * | 2000-11-10 | 2004-03-16 | International Business Machines Corporation | Method, system and program product comprising breakpoint handling mechanism for debugging and/or monitoring a computer instruction sequence |
CN101295279A (zh) * | 2007-04-29 | 2008-10-29 | 国际商业机器公司 | 多线程环境下的调试程序的方法和系统 |
CN101339581A (zh) * | 2008-08-29 | 2009-01-07 | 北京中星微电子有限公司 | 基于中断通讯的嵌入式系统的在线调试仿真方法 |
CN102662835A (zh) * | 2012-03-23 | 2012-09-12 | 凌阳科技股份有限公司 | 一种针对嵌入式系统的程序调试方法及嵌入式系统 |
CN103268288A (zh) * | 2013-06-18 | 2013-08-28 | 北京云测信息技术有限公司 | 一种移动终端应用软件的远程真机调试方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2015103815A1 (zh) | 2015-07-16 |
CN104778116A (zh) | 2015-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104778116B (zh) | 一种多断点的软件调试装置和方法 | |
US8627143B2 (en) | Dynamically modeling and selecting a checkpoint scheme based upon an application workload | |
TWI461908B (zh) | 於即時指令追蹤紀錄中之除錯動作的選擇性紀錄技術 | |
US9793927B2 (en) | Storage systems with adaptive erasure code generation | |
CN101887393B (zh) | 基于半虚拟化技术的设备故障复现方法及系统 | |
US10592396B2 (en) | Memory validity states in time-travel debugging | |
US20120011491A1 (en) | Efficient recording and replaying of the execution path of a computer program | |
KR101081090B1 (ko) | 명령어 스트림의 효율적인 에뮬레이션을 가능하게 하기 위한 레지스터 기반의 명령어 최적화 | |
WO2013123405A1 (en) | Profiling and sequencing operators executable in an emulated computing system | |
US7562258B2 (en) | Generation of trace elements within a data processing apparatus | |
Schmidt et al. | Checkpoint/restart and beyond: Resilient high performance computing with FPGAs | |
CN102117243A (zh) | 一种在Flash存储器中高效的使用软件断点调试的方法 | |
CN104216771A (zh) | 软件程序的重启方法及装置 | |
CN109710470A (zh) | 处理器重放调试方法及系统 | |
CN102467446A (zh) | 可设置程序指针值的处理器芯片仿真器 | |
CN102662799B (zh) | 数据备份的方法、服务器及热备份系统 | |
CN117546139A (zh) | 多线程处理器上的多线程踪迹的确定性重放 | |
US20160358304A1 (en) | Instrumentation of graphics instructions | |
JP2015506519A (ja) | ユーザ生成によるデータセンターの省電力 | |
US9329883B2 (en) | Post-execution instruction tracing of virtualized instructions | |
US20200151085A1 (en) | Efficient register breakpoints | |
EP3559813B1 (en) | Parallel replay of executable code | |
CN106095631B (zh) | 一种基于有限状态机实现的多周期非流水线cpu动态调试方法 | |
WO2020073200A1 (zh) | 调试程序的方法和系统 | |
US8726244B2 (en) | Software breakpoint handling by eliminating instruction replacement and execution under certain conditions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20150715 Assignee: Xi'an Chris Semiconductor Technology Co. Ltd. Assignor: SHENZHEN ZTE MICROELECTRONICS TECHNOLOGY CO., LTD. Contract record no.: 2019440020036 Denomination of invention: Multibreak software debugging device and method Granted publication date: 20180918 License type: Common License Record date: 20190619 |
|
EE01 | Entry into force of recordation of patent licensing contract |