CN105138453A - 一种程序调试方法和装置 - Google Patents
一种程序调试方法和装置 Download PDFInfo
- Publication number
- CN105138453A CN105138453A CN201510493325.2A CN201510493325A CN105138453A CN 105138453 A CN105138453 A CN 105138453A CN 201510493325 A CN201510493325 A CN 201510493325A CN 105138453 A CN105138453 A CN 105138453A
- Authority
- CN
- China
- Prior art keywords
- debugging
- program
- debug
- information
- memory address
- 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
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000009471 action Effects 0.000 claims abstract description 59
- 238000012545 processing Methods 0.000 claims abstract description 57
- 238000006243 chemical reaction Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种程序调试方法和装置,其中方法包括:根据加载的Debug版本程序设置的调试信息中的调试位置,转换成对应的内存地址,所述Debug版本程序与待测试的Release版本程序对应;将内存地址以及对应的调试信息中的调试动作信息发送至Release版本程序所在的程序调试装置,以使得程序调试装置在Release版本程序的内存地址处进行调试动作信息对应的调试处理;接收程序调试装置返回的调试处理结果,该结果包括内存地址、以及结果信息,将内存地址转换为Debug版本程序的调试位置,得到调试位置处的结果信息。本申请提高了对Release版本的故障定位效率。
Description
技术领域
本申请涉及计算机技术,特别涉及一种程序调试方法和装置。
背景技术
在程序的编译生成阶段,通过参数设置可以在最终程序代码中保留一些调试所需的符号表等信息,以便于根据这些信息调试程序来寻找程序中的逻辑漏洞,包含这些调试所需的符号表等信息的程序版本可以称为调试版本即Debug版本。而实际发布程序时,出于代码体积和安全的考虑,交付到客户的程序版本一般为发布版本即Release版本。Release版本与Debug版本的功能一致,只是去掉了符号等信息。例如,在一些交付到用户手中的网络设备(如,路由器、交换机)中包括的程序即为Release版本的程序。
但是可能出现的情况是,由于实验室中环境有限,导致一些问题发生在用户现场的Release版本中,比如产生程序运行故障。目前在定位Release版本程序的故障所在时,可以采用的一种方式是根据Release版本运行中产生的dump镜像文件分析故障,但是dump文件并非每次都能产生(只在发生致命问题时发生),或者,当没有dump文件时由定位人员根据经验和沟通猜解问题所在,这些方式都使得对Release版本程序的问题定位效率较低,从而也对Release版本运行所在的设备(例如,上述路由器、交换机)的故障修复造成困难,影响设备使用。
发明内容
有鉴于此,本申请提供一种程序调试方法和装置,以提高对Release版本的故障定位效率。
具体地,本申请是通过如下技术方案实现的:
第一方面,提供一种程序调试方法,包括:
根据加载的Debug版本程序设置的调试信息中的调试位置,转换成对应的内存地址,所述Debug版本程序与待测试的Release版本程序对应;
将所述内存地址以及对应的所述调试信息中的调试动作信息发送至所述Release版本程序所在的程序调试装置,以使得所述程序调试装置在所述Release版本程序的所述内存地址处进行所述调试动作信息对应的调试处理;
接收所述程序调试装置返回的调试处理结果,所述调试处理结果包括所述内存地址、以及结果信息,将所述内存地址转换为Debug版本程序的所述调试位置,得到所述调试位置处的所述结果信息。
第二方面,提供一种程序调试方法,包括:
接收Debug版本程序所在的程序调试装置发送的内存地址、以及对应的调试动作信息,所述Debug版本程序与待测试的Release版本程序对应;
在所述Release版本程序的所述内存地址处,进行所述调试动作信息对应的调试处理;
将调试处理结果反馈至所述程序调试装置,所述调试处理结果包括所述内存地址、以及结果信息,以使得所述程序调试装置将所述内存地址转换为Debug版本程序的所述调试位置,得到所述调试位置处的所述结果信息。
第三方面,提供一种程序调试装置,包括:
地址转换模块,用于根据加载的Debug版本程序设置的调试信息中的调试位置,转换成对应的内存地址,所述Debug版本程序与待测试的Release版本程序对应;
信息发送模块,用于将所述内存地址以及对应的所述调试信息中的调试动作信息发送至所述Release版本程序所在的程序调试装置,以使得所述程序调试装置在所述Release版本程序的所述内存地址处进行所述调试动作信息对应的调试处理;
转换结果模块,用于接收所述程序调试装置返回的调试处理结果,所述调试处理结果包括所述内存地址、以及结果信息,将所述内存地址转换为Debug版本程序的所述调试位置,得到所述调试位置处的所述结果信息。
第四方面,提供一种程序调试装置,包括:
信息接收模块,用于接收Debug版本程序所在的程序调试装置发送的内存地址、以及对应的调试动作信息,所述Debug版本程序与待测试的Release版本程序对应;
调试处理模块,用于在所述Release版本程序的内存地址处,进行所述调试动作信息对应的调试处理;
结果反馈模块,用于将调试处理结果反馈至所述程序调试装置,所述调试处理结果包括所述内存地址、以及结果信息,以使得所述程序调试装置将所述内存地址转换为Debug版本程序的所述调试位置,得到所述调试位置处的所述结果信息。
本申请提供的程序调试方法和装置,通过将对Debug版本程序的调试位置转换成内存地址发送至Release版本程序所在的程序调试装置,可以使得根据内存地址对Release版本程序进行源码级的调试,从而提高了对Release版本的故障定位效率。
附图说明
图1是本申请一示例性实施例示出的一种程序调试方法的应用场景;
图2是本申请一示例性实施例示出的一种程序调试方法的流程图;
图3是本申请一示例性实施例示出的另一种程序调试方法的流程图;
图4是本申请一示例性实施例示出的又一种程序调试方法的流程图;
图5是本申请一示例性实施例示出的一种程序调试装置的结构图;
图6是本申请一示例性实施例示出的另一种程序调试装置的结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
本申请实施例的程序调试方法,可以应用于对已发布的Release版本的故障定位,例如可以用于对路由器中的Release版本程序的问题检测。
图1示例了该程序调试方法的应用场景,如图1所示,设备A中装有待测试的Release版本程序,测试人员可以通过设备B对Release版本程序进行调试,以定位程序故障所在。当然,也不排除设备A和设备B是同一台设备。
为了调试Release版本程序,测试人员还可以准备如下两种工具:
其中一个工具是,与待测试的Release版本程序对应的Debug版本程序:
例如,如果Debug版本程序和Release版本程序编译所用的源码相同,且编译过程中,除了是否保留符号表等调试所需信息的参数不同之外,其他参数均保持一致,则可以称这两种版本的程序对应。并且,Release版本与Debug版本的功能一致,只是相比Debug版本缺少了符号表等调试所需信息。该与待测试的Release版本程序对应的Debug版本程序可以设在设备B侧,以供测试人员在调试时使用。
另一个工具是,程序调试***:
例如,如图1所示,该***可以包括:设置在设备B的程序调试工具客户端、以及设置在设备A的程序调试工具服务端。即程序调试工具客户端可以设置在测试人员这一侧,加载与待测试的Release版本程序对应的Debug版本程序;而程序调试工具服务端可以设置在待测试的Release版本程序侧,用于加载Release版本,也就是本实施例的调试目标。
本实施例以gdb+gdbserver的调试***为例,即程序调试工具客户端例如可以为gdb(GNUsymbolicdebugger,GNU符号调试器),通过gdb加载Debug版本程序,程序调试工具服务端例如可以为gdbserver,用于通过gdbserver加载Release版本程序。具体实施中也可以使用其他功能类似的程序调试工具。
在准备上述两种工具后,可以通过gdb与gdbserver之间的通信,来实现本实施例的程序调试方法。其中,gdb与gdbserver之间可以通过IP地址以及端口号进行通信,例如,gdbserver在设备A端运行后,监听本地特定端口,设备B的gdb与设备A中的gdbserver所监听的端口建立链接。
如下将以gdb+gdbserver的调试***为例,详细描述如何结合Debug版本程序对Release版本程序进行源码级的调试,该源码级的调试即可以将Release版本程序与Debug版本程序的源代码建立关联,从而尽快的查找导致Release版本程序的故障问题的源代码所在。
图2示例了本申请的程序调试方法的流程,该流程是以设备B的程序调试工具客户端gdb执行为例,如图2所示,可以包括:
201、根据加载的Debug版本程序设置的调试信息中的调试位置,转换成对应的内存地址,所述Debug版本程序与待测试的Release版本程序对应;
例如,在实际实施中,可以通过版本号来确定对应的Debug版本程序与待测试的Release版本程序。如果Debug版本程序和Release版本程序编译所用的源码相同,且编译过程中,除了是否保留符号表等调试所需信息的参数不同之外,其他参数均保持一致,则可以称这两种版本的程序对应。对于这种对应的Debug版本程序和Release版本程序,可以使用相同的版本号。
202、将内存地址以及对应的调试信息中的调试动作信息发送至Release版本程序所在的程序调试装置,以使得在所述Release版本程序的所述内存地址处进行所述调试动作信息对应的调试处理;
203、接收所述程序调试装置返回的调试处理结果,所述调试处理结果包括所述内存地址、以及结果信息,将所述内存地址转换为Debug版本程序的所述调试位置,得到所述调试位置处的所述结果信息。
图3示例了本申请的程序调试方法的流程,该流程是以设备A的程序调试装置gdbserver执行为例,如图3所示,可以包括:
301、接收Debug版本程序所在的程序调试装置发送的内存地址、以及对应的调试动作信息,Debug版本程序与待测试的Release版本程序对应;
302、在Release版本程序的内存地址处,进行调试动作信息对应的调试处理;
303、将调试处理结果反馈至所述程序调试装置,调试处理结果包括所述内存地址、以及结果信息,以使得程序调试装置将内存地址转换为Debug版本程序的调试位置,得到调试位置处的所述结果信息。
结合图2和图3所示,在步骤201中,测试人员可以通过设备B的gdb设置调试信息,该调试信息可以包括:调试位置及调试动作信息。
例如,Debug版本程序即设置了调试信息的源代码文件,因此,可以在源代码中设置断点等调试信息。在本例子中,设置的调试信息中,调试位置即为断点设置位置(如,在源代码文件abc.c的第16行)以及调试动作信息,该调试动作信息可以为“设置断点”的动作指示,即在调试位置设置断点,该断点表示,当程序运行到第16行时将暂停,以方便测试人员查看相关变量值等运行结果。
又例如,在进行调试时,除了上述的设置断点,还可以获取程序中一些变量的运行结果值进行查看,以检测运行结果是否正确。在本例子中,设置的调试信息中,调试位置可以为Debug版本程序中要取值的目标变量对应的变量位置(如,在源代码文件abc.c的第16行中的变量x)以及调试动作信息,该调试动作信息可以为“取变量x的运行结果值”,该变量x可以称为目标变量,调试动作即获取目标变量的取值。
在步骤201中,gdb可以根据上述设置的调试信息,进行地址转换,主要是将调试信息中的调试位置转换为对应的内存地址。例如,在上述例子中,可以将断点设置位置(如,在源代码文件abc.c的第16行)转换成对应的内存地址,比如0x123456;又例如,还可以将第16行中的变量x也转换成对应的内存地址,即变量x的值位于某个对应的内存地址中。
在步骤202和步骤301中,gdb可以将在201中转换得到的内存地址以及对应的调试动作信息发送至gdbserver,并且是以gdbserver能够解析的协议格式进行信息传输;同样,当gdbserver向gdb传输信息时,也以gdb能够解析的协议格式,以使得程序调试装置双方能够进行通信的理解。
由上述可以看到,设备A的gdbserver加载的Release版本程序本身是不能对应源代码文件的,比如,如果gdb通知gdbserver在Release版本程序的第16行位置设置断点,那么Release版本程序将无法执行,因为其不能知道该源码中断点的位置,其他断点信息同理,如果通知Release版本程序获取变量x的值,其也不知道源码中x对应Release自身的位置而不能获取;基于此,本实施例的gdb将调试信息中的调试位置转换成了内存地址,Release版本程序和Debug版本程序在运行时占用的内存地址是相同的,因此,通过该内存地址使得Release版本程序确定调试信息的位置。
并且,gdb要在告知调试位置对应的内存地址时,还要通知在该内存地址需要进行何种调试处理,即调试动作信息;例如,在断点设置位置进行“设置断点”,或者,在变量位置获取目标变量对应的取值。
在步骤302中,设置A的程序调试装置gdbserver可以根据在步骤301中接收到的调试信息,在Release版本程序的对应上述内存地址的位置,进行调试动作信息对应的调试处理。例如,在断点设置位置进行设置断点的动作;或者,在变量x对应的内存地址获取该变量x的取值。
在步骤303中,gdbserver还可以将调试处理结果反馈至设备B侧的gdb,以供设备B的测试人员查看。该调试处理结果可以包括:内存地址以及该地址处的结果信息。
例如,当调试信息是在断点设置位置设置断点时,那么据此进行调试处理的结果包括“触发断点”以及内存地址,即gdbserver通知gdb已经在“内存地址”的位置实现了“触发断点”的结果。又例如,当调试信息是在获取变量x的取值时,那么据此进行调试处理的结果包括“变量x的取值”即运行结果、以及“内存地址”,此时该内存地址是变量x对应的内存地址。
需要说明的是,对于设备A的gdbserver来说,其只要根据gdb传输的调试信息中的内存地址以及调试动作信息,进行调试处理即可,但是,由于Release版本程序不与源码对应,gdbserver无法获知进行调试处理的内存地址处对应的是何种源码信息,比如,gdbserver在Release版本程序对应的内存地址0x123456处触发断点,而不能知道该地址0x123456对应的是源码文件的第16行;又例如,gdbserver在Release版本程序对应的一个内存地址获取了一个取值,但是并不能知道该取值对应的是源码文件的变量x的值。因此,在步骤303中,gdbserver要将结果信息及对应的内存地址返回给gdb。
而在步骤203中,gdb可以根据gdbserver反馈的调试处理结果,解析其中的结果信息对应的内存地址是源码的何种位置,比如,当gdbserver返回的调试处理结果包括“触发断点”(结果信息)以及“0x123456”(内存地址)时,gdb可以进行地址转换,将内存地址0x123456转换为源码文件abc.c第16行,从而获知gdbserver对Release版本程序相当于在源码第16行的位置触发了断点,即获得了在步骤201中最初设定的调试位置处的调试结果信息。
上述例子的程序调试方法,通过在gdb调试装置对Debug版本程序设置调试信息,并使用内存地址转换的方法,通知待测试的Release版本程序侧进行调试的内存地址及调试动作,可以使得Release版本程序执行设置的调试信息对应的调试处理;并且,通过由Release版本程序所在的gdbserver将调试结果及内存地址反馈回gdb,gdb也可以通过地址转换获知调试信息对应的调试结果,从而实现了对Release版本程序源码级的调试,能够尽快的定位Release版本的问题对应的源码位置,提高了故障定位的效率。
如下一个例子,描述使用本申请的程序调试方法对Release版本程序进行问题定位的过程;其中,在该例子中,假设Release版本程序对对应源码的第16行的位置出现了错误,并且假设是变量x的运行结果错误,那么图4的流程示例了使用本实施例的调试方法定位出该问题所在的步骤。如图4所示,该流程是gdb和gdbserver之间的通信过程,可以包括:
501、gdb获取加载的Debug版本程序设置的调试信息,包括断点设置位置和设置断点的动作;
例如,设备B安装的程序调试装置gdb,可以加载与待测试的Release版本程序对应的Debug版本程序。并且,测试人员可以通过gdb设置调试信息,包括调试位置以及在该位置处的调试动作信息。
示例性的,在本步骤中,可以设置在第16行的位置设置断点,即调试位置为源码文件的16行,调试动作为设置断点。
502、gdb将断点设置位置转换成内存地址;
例如,gdb可以根据加载的Debug版本程序将源码文件abc.c第16行这个信息转换成一个对应的内存地址,如0x123456。
503、gdb将内存地址以及设置断点的动作指示,传输至gdbserver;
例如,gdb可以通过gdbserver能够解析的协议格式将上述的内存地址及设置断点指示传输至gdbserver。
504、gdbserver在内存地址处,对Release版本程序触发断点;
例如,gdbserver在接收到0x123456以及设置断点的信息后,可以对Release版本程序进行断点的设置,并当该程序运行到断点位置0x123456时触发断点。
505、gdbserver将调试处理结果反馈至gdb,包括触发断点及内存地址;
例如,在本步骤中,gdbserver相当于通知gdb,在内存地址0x123456的位置对Release版本程序进行了断点触发;可以通过gdb能够理解的协议格式发送该信息。
506、gdb将内存地址转换为对应源码的位置,获得断点调试的结果;
例如,gdb可以将在505中gdbserver返回的地址0x123456进行地址转换,得到该地址对应的是源码文件第16行,综合触发断点的结果信息,那就是“Release版本程序在对应源码16行的位置触发了断点”,实现了根据在步骤501中设置的调试信息的程序调试,触发了断点。
在断点触发后,测试人员还可以在程序暂停时查看某个变量的运行结果,例如,可以查看第16行位置的变量x的运行结果值。那么,可以继续执行507,进行变量x的取值的查询,该查看变量值也属于一种调试信息。
507、gdb获取要查询的目标变量x的内存地址;
508、gdb将变量x的内存地址、以及获取变量值的动作信息,传输至gdbserver;
例如,在本步骤中,相当于gdb通知gdbserver在对应所述的内存地址的位置,获取Release版本程序的运行结果。
509、gdbserver根据内存地址获取取值;
例如,gdbserver可以根据508中接收到的内存地址,获取该地址处存储的取值,但是gdbserver和Release版本程序并不知道该内存地址对应的源码位置是变量x。
510、gdbserver将取值以及对应的内存地址反馈至gdb;
511、gdb将取值的内存地址进行地址转换得到变量x,从而得到测试人员要查看的变量x的取值。
例如,假设查看的变量x的取值为10,也就是说,Release版本程序在设备中的运行环境运行时,得到的变量x的运行结果是10;而假设在正常情况下,变量x的结果应该是8,那么就可以确定该变量运行错误,那么测试人员可以定位到这是Release版本程序的问题所在,从而进行程序修正。
在上面的例子中,是以断点的设置以及变量的查看为例,对程序调试的方法进行了描述,其他调试动作的原理和上述过程类似,不再赘述。通过上述例子还可以得到,这种通过地址转换的方式进行调试信息的传输和调试结果的反馈,可以将Release版本程序与源码的Debug版本程序建立对应,从而实现源码级的程序调试,提高Release版本的调试效率。
图5示例了一种程序调试装置的结构,该装置可以应用于程序调试工具客户端(例如,gdb),该装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。如图5所示,该调试装置可以包括:地址转换模块51、信息发送模块52和转换结果模块53;其中,
地址转换模块51,用于根据加载的Debug版本程序设置的调试信息中的调试位置,转换成对应的内存地址,所述Debug版本程序与待测试的Release版本程序对应;
信息发送模块52,用于将所述内存地址以及对应的所述调试信息中的调试动作信息发送至所述Release版本程序所在的程序调试装置,以使得所述程序调试装置在所述Release版本程序的所述内存地址处进行所述调试动作信息对应的调试处理;
转换结果模块53,用于接收所述程序调试装置返回的调试处理结果,所述调试处理结果包括所述内存地址、以及结果信息,将所述内存地址转换为Debug版本程序的所述调试位置,得到所述调试位置处的所述结果信息。
例如,所述调试位置,包括:所述Debug版本程序的断点设置位置;所述调试动作信息,包括:设置断点的动作指示。
又例如,所述调试位置,包括:所述Debug版本程序中要取值的目标变量对应的变量位置;调试动作信息,包括:获取目标变量取值的动作指示。
图6示例了另一种程序调试装置的结构,该装置可以应用于程序调试工具服务端(例如,gdbserver),该装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。如图6所示,该调试装置可以包括:信息接收模块61、调试处理模块62和结果反馈模块63;其中,
信息接收模块61,用于接收Debug版本程序所在的程序调试装置发送的内存地址、以及对应的调试动作信息,所述Debug版本程序与待测试的Release版本程序对应;
调试处理模块62,用于在所述Release版本程序的内存地址处,进行所述调试动作信息对应的调试处理;
结果反馈模块63,用于将调试处理结果反馈至所述程序调试装置,所述调试处理结果包括所述内存地址、以及结果信息,以使得所述程序调试装置将所述内存地址转换为Debug版本程序的所述调试位置,得到所述调试位置处的所述结果信息。
进一步的,调试处理模块62,具体用于将触发断点的结果、或者目标变量的取值反馈至所述程序调试装置。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种程序调试方法,其特征在于,包括:
根据加载的Debug版本程序设置的调试信息中的调试位置,转换成对应的内存地址,所述Debug版本程序与待测试的Release版本程序对应;
将所述内存地址以及对应的所述调试信息中的调试动作信息发送至所述Release版本程序所在的程序调试装置,以使得所述程序调试装置在所述Release版本程序的所述内存地址处进行所述调试动作信息对应的调试处理;
接收所述程序调试装置返回的调试处理结果,所述调试处理结果包括所述内存地址、以及结果信息,将所述内存地址转换为Debug版本程序的所述调试位置,得到所述调试位置处的所述结果信息。
2.根据权利要求1所述的方法,其特征在于,所述调试位置,包括:所述Debug版本程序的断点设置位置;
所述调试动作信息,包括:设置断点的动作指示。
3.根据权利要求1所述的方法,其特征在于,所述调试位置,包括:所述Debug版本程序中要取值的目标变量对应的变量位置;
所述调试动作信息,包括:获取所述目标变量取值的动作指示。
4.一种程序调试方法,其特征在于,包括:
接收Debug版本程序所在的程序调试装置发送的内存地址、以及对应的调试动作信息,所述Debug版本程序与待测试的Release版本程序对应;
在所述Release版本程序的所述内存地址处,进行所述调试动作信息对应的调试处理;
将调试处理结果反馈至所述程序调试装置,所述调试处理结果包括所述内存地址、以及结果信息,以使得所述程序调试装置将所述内存地址转换为Debug版本程序的所述调试位置,得到所述调试位置处的所述结果信息。
5.根据权利要求4所述的方法,其特征在于,所述将调试处理结果反馈至所述程序调试装置,包括:
将触发断点的结果、或者目标变量的取值反馈至所述程序调试装置。
6.一种程序调试装置,其特征在于,包括:
地址转换模块,用于根据加载的Debug版本程序设置的调试信息中的调试位置,转换成对应的内存地址,所述Debug版本程序与待测试的Release版本程序对应;
信息发送模块,用于将所述内存地址以及对应的所述调试信息中的调试动作信息发送至所述Release版本程序所在的程序调试装置,以使得所述程序调试装置在所述Release版本程序的所述内存地址处进行所述调试动作信息对应的调试处理;
转换结果模块,用于接收所述程序调试装置返回的调试处理结果,所述调试处理结果包括所述内存地址、以及结果信息,将所述内存地址转换为Debug版本程序的所述调试位置,得到所述调试位置处的所述结果信息。
7.根据权利要求6所述的装置,其特征在于,所述调试位置,包括:所述Debug版本程序的断点设置位置;
所述调试动作信息,包括:设置断点的动作指示。
8.根据权利要求6所述的装置,其特征在于,所述调试位置,包括:所述Debug版本程序中要取值的目标变量对应的变量位置;
所述调试动作信息,包括:获取所述目标变量取值的动作指示。
9.一种程序调试装置,其特征在于,包括:
信息接收模块,用于接收Debug版本程序所在的程序调试装置发送的内存地址、以及对应的调试动作信息,所述Debug版本程序与待测试的Release版本程序对应;
调试处理模块,用于在所述Release版本程序的内存地址处,进行所述调试动作信息对应的调试处理;
结果反馈模块,用于将调试处理结果反馈至所述程序调试装置,所述调试处理结果包括所述内存地址、以及结果信息,以使得所述程序调试装置将所述内存地址转换为Debug版本程序的所述调试位置,得到所述调试位置处的所述结果信息。
10.根据权利要求9所述的装置,其特征在于,
所述调试处理模块,具体用于将触发断点的结果、或者目标变量的取值反馈至所述程序调试装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510493325.2A CN105138453B (zh) | 2015-08-12 | 2015-08-12 | 一种程序调试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510493325.2A CN105138453B (zh) | 2015-08-12 | 2015-08-12 | 一种程序调试方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105138453A true CN105138453A (zh) | 2015-12-09 |
CN105138453B CN105138453B (zh) | 2018-08-14 |
Family
ID=54723807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510493325.2A Active CN105138453B (zh) | 2015-08-12 | 2015-08-12 | 一种程序调试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105138453B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110532178A (zh) * | 2019-08-09 | 2019-12-03 | 四川虹美智能科技有限公司 | 一种安卓***库文件崩溃位置定位方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1286431A (zh) * | 1999-11-30 | 2001-03-07 | 深圳市中兴通讯股份有限公司 | 嵌入式软件辅助调试方法 |
US20040054945A1 (en) * | 2002-09-17 | 2004-03-18 | Smith Gerald E. | Symbol support in embedded firmware images |
CN101178684A (zh) * | 2006-11-06 | 2008-05-14 | 中兴通讯股份有限公司 | 一种嵌入式***的符号定位方法 |
CN101309475A (zh) * | 2007-05-18 | 2008-11-19 | 中兴通讯股份有限公司 | 一种通讯终端调试和发布软件版本合一的方法 |
CN101340314A (zh) * | 2008-08-11 | 2009-01-07 | 中兴通讯股份有限公司 | 一种嵌入式***的实时调试定位方法及其装置 |
CN102073489A (zh) * | 2009-11-23 | 2011-05-25 | 新奥特(北京)视频技术有限公司 | 一种调试日志生成方法及装置 |
CN103077112A (zh) * | 2012-10-16 | 2013-05-01 | 中兴通讯股份有限公司 | 一种软件调试的方法和*** |
-
2015
- 2015-08-12 CN CN201510493325.2A patent/CN105138453B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1286431A (zh) * | 1999-11-30 | 2001-03-07 | 深圳市中兴通讯股份有限公司 | 嵌入式软件辅助调试方法 |
US20040054945A1 (en) * | 2002-09-17 | 2004-03-18 | Smith Gerald E. | Symbol support in embedded firmware images |
CN101178684A (zh) * | 2006-11-06 | 2008-05-14 | 中兴通讯股份有限公司 | 一种嵌入式***的符号定位方法 |
CN101309475A (zh) * | 2007-05-18 | 2008-11-19 | 中兴通讯股份有限公司 | 一种通讯终端调试和发布软件版本合一的方法 |
CN101340314A (zh) * | 2008-08-11 | 2009-01-07 | 中兴通讯股份有限公司 | 一种嵌入式***的实时调试定位方法及其装置 |
CN102073489A (zh) * | 2009-11-23 | 2011-05-25 | 新奥特(北京)视频技术有限公司 | 一种调试日志生成方法及装置 |
CN103077112A (zh) * | 2012-10-16 | 2013-05-01 | 中兴通讯股份有限公司 | 一种软件调试的方法和*** |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110532178A (zh) * | 2019-08-09 | 2019-12-03 | 四川虹美智能科技有限公司 | 一种安卓***库文件崩溃位置定位方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105138453B (zh) | 2018-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102546266B (zh) | 一种网络故障的诊断方法及平台 | |
CN111786855B (zh) | 一种网卡的压力测试方法、装置、电子设备及存储介质 | |
KR20150033711A (ko) | 런타임 오류 복원 방법, 디바이스 및 시스템 | |
CN103138988B (zh) | 网络故障的定位处理方法及装置 | |
CN103580943A (zh) | 一种网络软件在线测试方法和*** | |
CN104516732A (zh) | 一种应用程序崩溃报告方法和*** | |
CN103970661A (zh) | 一种利用ipmi工具进行批量服务器内存故障检测的方法 | |
CN112256570A (zh) | 远程调试方法、装置、设备及存储介质 | |
CN103713215A (zh) | X射线管运行状态检测***及方法 | |
CN105138453B (zh) | 一种程序调试方法和装置 | |
US20070047448A1 (en) | Network equipment testing method and system | |
KR101587279B1 (ko) | Msc 입력을 위한 인터페이스를 갖는 소프트웨어 테스팅 장치 및 그 방법 | |
CN108946370B (zh) | 电梯故障信息处理方法、***、设备和可读存储介质 | |
CN111078484A (zh) | ***升级的断电测试方法、装置、设备及存储介质 | |
CN107092547B (zh) | 一种设备测试方法、电子设备和测试*** | |
KR20130037977A (ko) | 로봇 컴포넌트 관리 장치 및 방법 | |
CN105227411B (zh) | 测试接口的方法、网络代理和*** | |
CN101227346B (zh) | 通信设备自动化测试过程中故障监控方法与装置 | |
CN105808422A (zh) | 一种基于网络的软件测试方法、客户端及待测试设备 | |
CN109614337B (zh) | 一种基于linux***的性能测试***及测试工具 | |
CN106708488A (zh) | 一种多应用程序的调试***和方法 | |
CN107332697B (zh) | 一种故障检测方法及装置 | |
CN110825630A (zh) | 漏洞挖掘方法及装置 | |
KR20130029250A (ko) | 장애 발견 및 진단 요청 방법 및 장치 | |
CN103257924B (zh) | Gdb代理调试方法和装置 |
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 |