CN102063366A - 调试进程的方法和系统 - Google Patents
调试进程的方法和系统 Download PDFInfo
- Publication number
- CN102063366A CN102063366A CN200910224802XA CN200910224802A CN102063366A CN 102063366 A CN102063366 A CN 102063366A CN 200910224802X A CN200910224802X A CN 200910224802XA CN 200910224802 A CN200910224802 A CN 200910224802A CN 102063366 A CN102063366 A CN 102063366A
- Authority
- CN
- China
- Prior art keywords
- subprocess
- debugging
- new procedures
- debugged
- incident
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种调试进程的方法和系统,属于计算机软件领域。该方法包括:根据创建子进程事件的信号,使被调试程序和子进程处于停止状态;判断要调试子进程时,切换调试对象为所述子进程;控制所述子进程运行新程序,使新程序的相关调试信息替换原有程序的相关调试信息,并在所述新程序的入口代码处插入临时断点。该系统包括:调试代理模块和调试主控模块。本发明的技术方案可方便地跟踪子进程的入口代码,从而简化了调试过程,降低了软件开发人员调试程序的工作量,提高了工作效率。
Description
技术领域
本发明涉及计算机软件领域,特别涉及一种调试进程的方法和系统。
背景技术
计算机软件开发过程中,调试器是不可或缺的工具。在嵌入式软件开发领域,目标机或单板(后面统称“目标机”)的硬件资源通常比较有限,例如存储空间不大、中央处理单元(Central Processing Unit,CPU)性能也不及PC机和服务器,因此常常使用交叉调试模式,即在目标机上运行一个尺寸较小、功能相对简单的代理程序(本文后面统称为“调试代理模块”),而尺寸较大,功能完整的调试主控模块运行在资源相对丰富的主机端。
现有的交叉调试器存在一个缺陷,不方便跟踪被调试程序在调试过程中创建的子进程。被调试程序通常是采用fork、vfork等事件创建子进程,然后,再通过调用execv系列函数来运行新的程序。开源GDB在本地调试时,可以用set follow-fork-mode parent|child命令预先设置当有子进程生成时,调试器是继续调试被调试程序还是调试子进程。如果设置的是调试被调试程序,那么用户可以继续在被调试程序中进行调试,而子进程在创建以后将不受约束地正常运行;如果设置的是调试子进程,那么调试流程进入调试子进程的状态,而被调试程序脱离调试器的控制,恢复正常运行。开源GDB进行本地调试的缺陷在于,如果设置的是调试子进程,子进程调用execv系列函数来运行新的程序时,调试器将不能跟踪进入新启动的程序,更不能在新启动的程序的入口代码处停住,等待用户进行调试控制。开源GDB/GDBSERVER交叉调试器则完全不支持从被调试程序调试跟踪子进程的功能。
现有的其它一些交叉调试器,有些提供了调试子进程的功能,例如在调试器感知到被调试程序创建了子进程时,自动把新创建的子进程置于调试器的控制之下。但是,从其实际效果来说,与用户知道有子进程创建时,手工把子进程置于调试器控制中没有本质差别,它们的共同缺点是不方便调试子进程的入口代码,特别是当子进程会很快运行结束并退出的时候,很难对子进程进行调试。
为了解决上述不方便调试子进程入口代码的难题,通常推荐调试器使用者在子进程的入口代码开始处插入一段条件循环的代码,并将循环条件设置为‘真’,这样,在子进程启动后,将停在新加的循环代码中;待调试器跟踪到子进程以后,再修改循环条件为‘假’,终止循环,流程继续往下执行。这样就可以调试子进程的入口代码了。此方法有一个很明显的缺点,就是要修改被调试程序,并且修改后要重新编译,这给调试器的使用带来了不便。
另一种方法是编写脚本文件,例如,子进程要运行的可执行文件是filepathname,首先修改该文件的名字,例如,修改为filepathname1;然后,写一个shell脚本文件命名为filepathname,在该脚本文件中,首先启动一个新的shell,然后在新启动的shell中,使用GDB调试filepathname1文件。这样,当子进程调用execv函数执行filepathname文件时,实际上会在一个新的shell中启动一个GDB,然后在这个GDB中对新运行的程序进行调试。但这种方法不仅使用麻烦,而且只适用于本地调试,不适用于嵌入式交叉调试环境。
综上所述,现有的交叉调试器在调试子进程时,特别是在跟踪子进程入口代码时,要么是需要修改被调试程序,要么是编写脚本文件,调试过程复杂,工作量大,工作效率低。
发明内容
本发明实施例要解决的问题是提供一种调试进程的方法和系统,以解决现有技术中无法在嵌入式交叉调试器中,跟踪子进程入口代码的问题。
为了解决上述问题,本发明实施例提供了一种调试进程的方法和系统,具体技术方案如下:
一种调试进程的方法,包括:
根据创建子进程事件的信号,使被调试程序和子进程处于停止状态;
判断要调试子进程时,切换调试对象为所述子进程;
控制所述子进程运行新程序,使新程序的相关调试信息替换原有程序的相关调试信息,并在所述新程序的入口代码处插入临时断点。
一种调试进程的方法,包括:
在被调试程序调用执行新程序系列函数运行新程序后,获取到执行新程序事件的信号;
根据所述信号,使新程序的相关调试信息替换原有程序的相关调试信息,并在所述新程序的入口代码处插入临时断点。
一种调试进程的系统,包括:
所述调试代理模块,用于在获取到创建子进程事件的信号时,使被调试程序和所述子进程处于停止状态;
所述调试主控模块,用于在判断要调试所述子进程时,切换调试对象为所述子进程;使新程序的相关调试信息替换原有程序的相关调试信息,并在所述新程序的入口代码处插入临时断点。
一种调试进程的系统,包括:
调试代理模块,用于在被调试程序调用执行新程序系列函数运行新程序后,获取到执行新程序事件的信号;
调试主控模块,用于根据所述信号,使新程序的相关调试信息替换原有程序的相关调试信息,并在所述新程序的入口代码处插入临时断点。
在本发明实施例中,根据创建子进程事件的信号,使被调试程序和子进程处于停止状态;判断要调试子进程时,切换调试对象为所述子进程;控制所述子进程运行新程序,使新程序的相关调试信息替换原有程序的相关调试信息,并在所述新程序的入口代码处插入临时断点,解决了现有交叉调试器不便跟踪子进程、特别是很难跟踪子进程入口代码的问题,使用户可以不修改被调试程序的代码,也不需要任何额外的脚本,即可方便地跟踪子进程的入口代码,从而简化了调试过程,降低了软件开发人员调试程序的工作量,提高了工作效率。
附图说明
图1、7是本发明实施例提供的一种调试进程的方法的流程图;
图2是本发明实施例提供的一种调试进程的系统的结构图;
图3是本发明实施例提供的调试代理模块和调试主控模块的结构图;
图4是本发明实施例提供的调试代理模块对创建子进程事件的处理流程图;
图5是本发明实施例提供的调试主控模块对创建子进程事件的处理流程图。
图6是本发明实施例提供的调试主控模块调对execv事件的处理流程图。
具体实施方式
本发明的核心思想在于:根据创建子进程事件的信号,使被调试程序和子进程处于停止状态;判断要调试子进程时,切换调试对象为所述子进程;控制所述子进程运行新程序,使新程序的相关调试信息替换原有程序的相关调试信息,并在所述新程序的入口代码处插入临时断点,解决了现有交叉调试器不便跟踪子进程、特别是很难跟踪子进程入口代码的问题,使用户可以不修改被调试程序的代码,也不需要任何额外的脚本,即可方便地跟踪子进程的入口代码,从而简化了调试过程,降低了软件开发人员调试程序的工作量,提高了工作效率。
下面结合附图及优选实施方式对本发明技术方案进行详细说明。
本发明实施例提供了一种调试进程的方法,如图1所示,包括:
10,根据创建子进程事件的信号,使被调试程序和子进程处于停止状态;
20,判断要调试子进程时,切换调试对象为子进程;
30,控制子进程运行新程序,使新程序的相关调试信息替换原有程序的相关调试信息,并在新程序的入口代码处插入临时断点。
进一步地,切换调试对象为所述子进程,包括:
初始化内部管理数据结构及变量,重新初始化缓存帧内容。
进一步地使新程序的相关调试信息替换原有程序的相关调试信息,包括:
清空当前的符号表,重新加载新程序的符号表,重新加载新程序的共享库符号。
进一步地,该方法还包括:
在判断不调试子进程时,继续调试被调试程序,使子进程脱离跟踪调试状态,并结束。
下面结合附图,对本发明所述调试进程的系统以及在类UNIX目标机上的具体实施做进一步说明:
如图2所示为调试进程的系统结构图,图2所示的系统只是为了描述的需要,本发明的保护范围并不限于此。图2所示的系统包括:
调试代理模块100和调试主控模块106。
其中,如图3所示,调试代理模块100,运行在目标机端,运行的操作系统环境101是类UNIX操作系统。调试代理模块100包括:连接管理单元102、硬件抽象单元103、任务管理单元104和命令处理单元105。连接管理单元102负责维护调试代理模块100与调试主控模块106的网络连接,为上层处理单元提供数据通信通道。硬件抽象单元103负责屏蔽各种CPU的硬件(例如寄存器)差异,抽象出统一的接口,方便上层处理单元的流程实现;任务管理单元104负责控制被调试的各个程序的状态,感知并处理被调试对象的各种调试事件,并把被调试对象的事件及状态变迁通知调试主控模块106,其中,被调试对象可以是子进程,也可以是被调试程序,具体根据实际情况而定;命令处理单元105负责接收来自调试主控模块106的各种调试命令,执行相应的调试操作,并把操作结果反馈给调试主控模块106;
如图3所示,调试主控模块106运行在调试主机上,其中,调试主机与目标机可以是不同的计算机,也可以是同一台计算机,它运行的操作系统环境107既可以是Windows,也可以是类UNIX操作系统。调试主控模块106包括:命令处理单元112、目标管理单元111、符号处理单元110、断点管理单元109和连接管理单元108。其中,连接管理单元108负责维护调试主控模块106和调试代理模块100的网络连接,为上层处理单元提供数据通信通道;断点管理单元109负责各种类型断点的插入、删除、属性修改和断点表维护等工作;符号处理单元110负责分析被调试对象的符号信息和调试信息,它是调试主控模块106的核心组成部分之一,是实现源代码级调试、断点管理、变量查看、表达式求值和堆栈回溯等诸多功能的必要基础;目标管理单元111一方面负责向被调试对象发送指令,另一方面负责处理来自调试代理模块100的被调试对象的调试事件;命令处理单元112的任务是接收、处理用户命令,并把命令处理结果反馈给用户,如果是需要调试代理模块100处理的命令,命令处理单元112会通过目标管理单元111向调试代理模块100发送数据报文,控制调试代理模块100执行特定的操作,然后接收调试代理模块100返回的处理结果,再把处理结果反馈给用户。
下面结合图3对本发明实施例的方法进行详细的描述,具体如下:
产生子进程的操作包括以下几种fork事件、vfork事件、clone事件,其中,clone事件可以属于fork事件,也可以属于vfork事件。在实际应用中,用得最多的是fork事件和execv事件,或是vfork事件加execv事件创建子进程,但实际应用中,用户也可以只使用fork事件或vfork事件创建子进程,此时,子进程和被调试程序拥有相同的地址空间,在本实施例中,在感知到有子进程创建时,可以提示用户来选择是继续调试被调试程序、还是调试子进程;而对于execv事件,被调试程序调用execv系列函数时,发生该事件,此时,进程地址空间已经更新为新运行的程序的地址空间。在本实施例中,vfork事件、fork事件为创建子进程事件,execv事件是执行新程序事件。
图4所示为调试代理模块100对创建子进程事件的处理流程,调试代理模块100的任务管理单元104通过类UNIX操作系统定义的PTRACE_EVENT_FORK、PTRACE_EVENT_VFORK或者PTRACE_EVENT_CLONE等信号感知子进程创建事件(步骤201)。任务管理单元104感知到创建子进程事件时,使父子进程都处于停止运行状态(步骤202);任务管理单元104判断用户是否设置了调试子进程(步骤203),如果用户事先设置了不调试子进程,那么任务管理单元104删除子进程空间中的断点(步骤213),并使子进程脱离调试跟踪状态,恢复正常运行(步骤214);如果用户设置了调试子进程,则首先通过连接管理单元102向调试主控模块106发送携带子进程标识和事件类型的数据报文,报告子进程创建事件(步骤204),再由任务管理单元104判断是通过fork事件还是vfork事件创建的子进程(步骤205),如果感知到的是PTRACE_EVENT_VFORK信号,则是通过vfork事件创建的子进程,那么任务管理单元104切换当前调试对象为子进程(步骤211),并初始化内部管理数据结构和变量(步骤212);如果感知到的是PTRACE_EVENT_FORK信号,则是通过fork事件创建的子进程,那么任务管理单元104首先删除被调试程序空间中的内存断点(步骤206),使被调试程序脱离调试跟踪状态(步骤207),再切换当前调试对象为子进程(步骤208)、初始化相关的内部管理数据结构和变量(步骤209),并根据调试主控模块106的指令回插子进程空间中的断点到内存中(步骤210);如果感知到的是PTRACE_EVENT_CLONE事件,则是通过clone事件创建的子进程,处理流程与PTRACE_EVENT_FORK事件的处理流程相同,在此不再赘述。需要说明的是,任务管理单元104切换当前调试对象为子进程也可以是根据调试主控模块106的指令进行,即调试主控模块106在将当前调试对象切换为子进程后,会通知调试代理模块100,调试代理模块100中的任务管理单元104根据该指令切换当前的调试对象为子进程。
图5是调试主控模块106对创建子进程事件的处理流程图。调试主控模块106通过连接管理单元108收到调试代理模块100上报的数据报文后(步骤216),目标管理单元111配合命令处理单元112首先根据用户的配置或者用户的选择,判断是否要调试子进程(步骤217),如果不调试子进程,那么当前调试对象不变,继续为被调试程序(步骤221),目标管理单元111使子进程脱离跟踪状态,恢复正常运行(步骤222);如果要调试子进程,则连接管理单元108从上报报文中解析出子进程的ID(步骤218),由目标管理单元111切换当前调试对象为子进程(步骤219),并初始化内部管理数据结构及变量(步骤220),此时,调试主控模块106处理子进程创建事件的过程结束(步骤223)。
然后,调试主控模块106通知调试代理模块100,使调试代理模块100控制其让子进程继续运行。调试代理模块100控制子进程调用execv系列函数执行新的程序,类UNIX操作系统感知到该execv事件,生成相应的信号传送给调试代理模块106。调试代理模块106中的任务管理单元104通过类UNIX操作系统定义的PTRACE_EVENT_EXEC信号感知到execv事件后,处理流程比较简单:如果命令处理单元105设置了调试子进程,则向调试主控模块106发送数据报文,通知调试主控模块106发生了execv事件,加载符号表等流程由调试主控模块106的符号处理单元110完成;如果命令处理单元105没有设置调试子进程功能,则任务管理单元104直接让子进程继续运行,不做其它处理。
如图6所示,调试主控模块106中的连接管理单元108收到调试代理模块105上报的数据报文时(步骤224),通知符号处理单元110清空当前的符号表,重新加载新程序的符号表(步骤225),重新加载新程序的共享库符号(步骤226),由断点管理单元109在新程序的入口代码处插入临时断点(步骤227),目标管理单元111重新初始化帧缓冲区的内容以后(步骤228),让子进程继续运行(步骤229),并结束(步骤230)。在子进程运行到入口代码的时候,会命中临时断点而停住,这样就可以调试子进程中新程序的代码。
本发明实施例还提供了一种调试进程的方法,如图7所示,包括:
40,在被调试程序调用执行新程序系列函数运行新程序后,获取到执行新程序事件的信号;
50,根据该信号,使新程序的相关调试信息替换原有程序的相关调试信息,并在该新程序的入口代码处插入临时断点。
进一步地,使新程序的相关调试信息替换原有程序的相关调试信息,包括:
清空当前的符号表,重新加载新程序的符号表,重新加载新程序的共享库符号。
下面结合具体的示例对本发明的保护范围进行具体的描述,具体地,
被调试程序直接调用execv系列函数执行新程序。这种情况下,没有子进程产生,调试代理模块100通过操作系统的信号感知到execv事件后,向调试主控模块106发送数据报文,通知调试主控模块106发生了该execv事件。调试主控模块106收到调试代理模块100上报的数据报文后,清空当前的符号表,重新加载新程序的符号表,重新加载新程序的共享库符号,在新程序的入口代码处插入临时断点,重新初始化帧缓冲区的内容以后,让子进程继续运行。
通过以上流程,可以在类UNIX目标机上,实现了调试子进程入口代码的方法。
基于与方法相同的发明构思,本发明实施例提供了一种调试进程的系统,如图1所示,包括:
调试代理模块,用于在获取到创建子进程事件的信号时,使被调试程序和所述子进程处于停止状态;
调试主控模块,用于在判断要调试所述子进程时,切换调试对象为子进程;使新程序的相关调试信息替换原有程序的相关调试信息,并在新程序的入口代码处插入临时断点。
进一步地,调试主控模块切换调试对象为子进程,包括:
调试主控模块根据调试代理模块上报的数据报文中的子进程标识和创建子进程事件的类型切换调试对象。
进一步地,调试代理模块,还用于判断所述创建子进程事件的类型,如果是vfork事件,则切换调试对象为所述子进程;如果创建子进程事件的类型是fork事件,则删除被调试程序空间中的内存断点,切换当前调试对象为所述子进程。
进一步地,调试主控模块,还用于在判断不调试所述子进程时,继续调试所述被调试程序,使所述子进程脱离跟踪调试状态,并结束。
进一步地,调试代理模块和调试主控模块集成在同一设备上或分布在不同的设备上。
基于与方法相同的发明构思,本发明实施还提供了一种调试进程的系统,如图1所示,包括:
调试代理模块,用于在被调试程序调用执行新程序系列函数运行新程序后,获取到执行新程序事件的信号;
调试主控模块,用于根据所述信号,使新程序的相关调试信息替换原有程序的相关调试信息,并在所述新程序的入口代码处插入临时断点。
其中,使新程序的相关调试信息替换原有程序的相关调试信息,包括:
根据该通知清空当前的符号表,重新加载该新程序的符号表,重新加载该新程序的共享库符号。
本发明实施例可以解决了现有交叉调试器不便跟踪子进程、特别是很难跟踪子进程入口代码的问题,使用户可以不修改被调试程序的代码,也不需要任何额外的脚本,即可方便地跟踪子进程的入口代码,从而简化了调试过程,降低了软件开发人员调试程序的工作量,提高了工作效率。
上述说明示出并描述了本发明的一个优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (12)
1.一种调试进程的方法,其特征在于,包括:
根据创建子进程事件的信号,使被调试程序和子进程处于停止状态;
判断要调试子进程时,切换调试对象为所述子进程;
控制所述子进程运行新程序,使新程序的相关调试信息替换原有程序的相关调试信息,并在所述新程序的入口代码处插入临时断点。
2.如权利要求1所述的方法,其特征在于,所述切换调试对象为所述子进程,包括:
初始化内部管理数据结构及变量,重新初始化缓存帧内容。
3.如权利要求1所述的方法,其特征在于,所述使新程序的相关调试信息替换原有程序的相关调试信息,包括:
清空当前的符号表,重新加载新程序的符号表,重新加载新程序的共享库符号。
4.如权利要求1所述的方法,其特征在于,还包括:
在判断不调试所述子进程时,继续调试所述被调试程序,使所述子进程脱离跟踪调试状态,并结束。
5.一种调试进程的方法,其特征在于,包括:
在被调试程序调用执行新程序系列函数运行新程序后,获取到执行新程序事件的信号;
根据所述信号,使新程序的相关调试信息替换原有程序的相关调试信息,并在所述新程序的入口代码处插入临时断点。
6.如权利要求5所述的方法,其特征在于,包括:使新程序的相关调试信息替换原有程序的相关调试信息,包括:
清空当前的符号表,重新加载新程序的符号表,重新加载新程序的共享库符号。
7.一种调试进程的系统,其特征在于,包括:
所述调试代理模块,用于在获取到创建子进程事件的信号时,使被调试程序和所述子进程处于停止状态;
所述调试主控模块,用于在判断要调试所述子进程时,切换调试对象为所述子进程;使新程序的相关调试信息替换原有程序的相关调试信息,并在所述新程序的入口代码处插入临时断点。
8.如权利要求7所述的系统,其特征在于,所述调试主控模块切换调试对象为所述子进程,包括:
所述调试主控模块根据所述调试代理模块上报的数据报文中的子进程标识和创建子进程事件的类型切换调试对象。
9.如权利要求7所述的系统,其特征在于,所述调试代理模块,还用于判断所述创建子进程事件的类型,如果是vfork事件,则切换调试对象为所述子进程;如果创建子进程事件的类型是fork事件,则删除被调试程序空间中的内存断点,切换当前调试对象为所述子进程。
10.如权利要求7至9任意一项权利要求所述的系统,其特征在于,所述调试主控模块,还用于在判断不调试所述子进程时,继续调试所述被调试程序,使所述子进程脱离跟踪调试状态,并结束。
11.如权利要求7至9任意一项权利要求所述的系统,其特征在于,所述调试代理模块和所述调试主控模块集成在同一设备上或分布在不同的设备上。
12.一种调试进程的系统,其特征在于,包括:
调试代理模块,用于在被调试程序调用执行新程序系列函数运行新程序后,获取到执行新程序事件的信号;
调试主控模块,用于根据所述信号,使新程序的相关调试信息替换原有程序的相关调试信息,并在所述新程序的入口代码处插入临时断点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910224802.XA CN102063366B (zh) | 2009-11-18 | 2009-11-18 | 调试进程的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910224802.XA CN102063366B (zh) | 2009-11-18 | 2009-11-18 | 调试进程的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102063366A true CN102063366A (zh) | 2011-05-18 |
CN102063366B CN102063366B (zh) | 2014-12-31 |
Family
ID=43998651
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910224802.XA Expired - Fee Related CN102063366B (zh) | 2009-11-18 | 2009-11-18 | 调试进程的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102063366B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577209A (zh) * | 2012-08-06 | 2014-02-12 | 浙江大华技术股份有限公司 | 一种基于嵌入式设备的应用程序远程在线调试方法及装置 |
CN104199772A (zh) * | 2014-09-02 | 2014-12-10 | 浪潮(北京)电子信息产业有限公司 | 一种监管进程的方法和装置 |
CN104750607A (zh) * | 2011-06-17 | 2015-07-01 | 阿里巴巴集团控股有限公司 | 一种选择性恢复测试执行的方法及装置 |
CN105786685A (zh) * | 2014-12-18 | 2016-07-20 | 青岛海信移动通信技术股份有限公司 | 一种移动终端在线调试和诊断的方法及终端 |
CN108021791A (zh) * | 2016-10-31 | 2018-05-11 | 腾讯科技(深圳)有限公司 | 数据保护方法及装置 |
CN111062061A (zh) * | 2019-12-10 | 2020-04-24 | 厦门市美亚柏科信息股份有限公司 | 一种用于ios系统的安全防护方法和系统 |
CN118642426A (zh) * | 2024-08-16 | 2024-09-13 | 烟台欧能电子科技有限公司 | 一种基于plc的远程监控调试方法、系统及终端 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030066052A1 (en) * | 2001-10-02 | 2003-04-03 | Mcgeorge Vernon E. | API to increase debug log performance |
CN1645339A (zh) * | 2005-01-31 | 2005-07-27 | 浙江大学 | 在嵌入式系统模拟器上调试应用程序的方法 |
CN1779652A (zh) * | 2004-11-24 | 2006-05-31 | 中兴通讯股份有限公司 | 一种调试操作系统内核态程序的方法及装置 |
CN101216802A (zh) * | 2008-01-16 | 2008-07-09 | 中兴通讯股份有限公司 | 一种交叉调试器中条件断点实现方法 |
JP2009009596A (ja) * | 2008-08-18 | 2009-01-15 | Renesas Technology Corp | マイクロコンピュータ |
CN101504626A (zh) * | 2009-03-06 | 2009-08-12 | 中兴通讯股份有限公司 | 一种调试控制实现方法及系统 |
-
2009
- 2009-11-18 CN CN200910224802.XA patent/CN102063366B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030066052A1 (en) * | 2001-10-02 | 2003-04-03 | Mcgeorge Vernon E. | API to increase debug log performance |
CN1779652A (zh) * | 2004-11-24 | 2006-05-31 | 中兴通讯股份有限公司 | 一种调试操作系统内核态程序的方法及装置 |
CN1645339A (zh) * | 2005-01-31 | 2005-07-27 | 浙江大学 | 在嵌入式系统模拟器上调试应用程序的方法 |
CN101216802A (zh) * | 2008-01-16 | 2008-07-09 | 中兴通讯股份有限公司 | 一种交叉调试器中条件断点实现方法 |
JP2009009596A (ja) * | 2008-08-18 | 2009-01-15 | Renesas Technology Corp | マイクロコンピュータ |
CN101504626A (zh) * | 2009-03-06 | 2009-08-12 | 中兴通讯股份有限公司 | 一种调试控制实现方法及系统 |
Non-Patent Citations (1)
Title |
---|
王钦骞: "嵌入式系统调试器的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104750607A (zh) * | 2011-06-17 | 2015-07-01 | 阿里巴巴集团控股有限公司 | 一种选择性恢复测试执行的方法及装置 |
CN104750607B (zh) * | 2011-06-17 | 2018-07-06 | 阿里巴巴集团控股有限公司 | 一种选择性恢复测试执行的方法及装置 |
CN103577209A (zh) * | 2012-08-06 | 2014-02-12 | 浙江大华技术股份有限公司 | 一种基于嵌入式设备的应用程序远程在线调试方法及装置 |
CN104199772A (zh) * | 2014-09-02 | 2014-12-10 | 浪潮(北京)电子信息产业有限公司 | 一种监管进程的方法和装置 |
CN105786685A (zh) * | 2014-12-18 | 2016-07-20 | 青岛海信移动通信技术股份有限公司 | 一种移动终端在线调试和诊断的方法及终端 |
CN105786685B (zh) * | 2014-12-18 | 2018-05-25 | 青岛海信移动通信技术股份有限公司 | 一种移动终端在线调试和诊断的方法及终端 |
CN108021791A (zh) * | 2016-10-31 | 2018-05-11 | 腾讯科技(深圳)有限公司 | 数据保护方法及装置 |
CN111062061A (zh) * | 2019-12-10 | 2020-04-24 | 厦门市美亚柏科信息股份有限公司 | 一种用于ios系统的安全防护方法和系统 |
CN111062061B (zh) * | 2019-12-10 | 2023-01-24 | 厦门市美亚柏科信息股份有限公司 | 一种用于ios系统的安全防护方法和系统 |
CN118642426A (zh) * | 2024-08-16 | 2024-09-13 | 烟台欧能电子科技有限公司 | 一种基于plc的远程监控调试方法、系统及终端 |
Also Published As
Publication number | Publication date |
---|---|
CN102063366B (zh) | 2014-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102063366B (zh) | 调试进程的方法和系统 | |
US6216237B1 (en) | Distributed indirect software instrumentation | |
US5794046A (en) | Method and system for debugging parallel and distributed applications | |
CN101553769B (zh) | 用于跟踪并监控计算机应用的系统和方法 | |
US7143392B2 (en) | Hyperbolic tree space display of computer system monitoring and analysis data | |
CN114064152B (zh) | 基于动态加载的嵌入式多核调试系统及其调试方法 | |
CN108197032B (zh) | Ios应用的主线程卡顿监测方法、介质、设备及系统 | |
CN101286129A (zh) | 嵌入式系统调试 | |
CN109947635B (zh) | 一种数据上报方法、装置、存储介质及终端设备 | |
CN106294176B (zh) | Mac OS系统中应用程序故障定位的方法及系统 | |
CN104281520A (zh) | 跟踪和调试的方法、装置及系统 | |
CN104484094A (zh) | 基于多屏工作站的隧道监控多网页界面的实现方法 | |
CN105630664A (zh) | 一种反向调试方法、装置及调试器 | |
CN101237350B (zh) | 用于多任务环境单板机的全局变量异常改写定位方法 | |
Cargill | Pi: A case study in object-oriented programming | |
CN104778087A (zh) | 一种信息处理方法以及信息处理装置 | |
CN110941503A (zh) | 故障处理方法、装置及电子设备 | |
Oberhuber et al. | DETOP-an interactive debugger for PowerPC based multicomputers | |
US11341022B2 (en) | Runtime performance introspection | |
CN113238898A (zh) | 多任务运行状态与通信接口协同监视调试方法 | |
CN103019867B (zh) | 进程间的脚本执行方法、系统及浏览器 | |
CN100419711C (zh) | 一种服务调试命令发射器及其处理方法 | |
CN112363707A (zh) | 一种基于java反射技术的控制层通用调度方法 | |
Gombás et al. | Grid application monitoring and debugging using the Mercury monitoring system | |
CN117235107B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141231 Termination date: 20171118 |
|
CF01 | Termination of patent right due to non-payment of annual fee |