CN102063367A - 针对当机程序的离线分析方法及装置 - Google Patents
针对当机程序的离线分析方法及装置 Download PDFInfo
- Publication number
- CN102063367A CN102063367A CN2010105363516A CN201010536351A CN102063367A CN 102063367 A CN102063367 A CN 102063367A CN 2010105363516 A CN2010105363516 A CN 2010105363516A CN 201010536351 A CN201010536351 A CN 201010536351A CN 102063367 A CN102063367 A CN 102063367A
- Authority
- CN
- China
- Prior art keywords
- information
- register
- debugger
- machine
- simulator
- 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
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
- G06F11/366—Software debugging using diagnostics
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
本发明提供了一种针对当机程序的离线分析方法及装置,属于当机程序的分析。该方法包括:使调试器的模拟器进入运行状态,并在运行状态中设置断点;从当机时平台输出的转储信息中分离出其寄存器和内存信息;通过调试器在断点处用分离出的寄存器和内存信息替换模拟器在运行状态时的寄存器和内存信息;用当机时的调试信息替换模拟器在原有运行状态时的调试信息;调试器根据替换后的调试信息、替换后的寄存器和内存信息进行当机原因分析。本发明通过从当机时平台输出的转储信息中分离出其寄存器和内存信息,而不包含操作系统信息。离线分析当机原因时不需要修改平台和GDB调试器。因此,降低了离线分析的难度和成本,缩短了离线分析的时间。
Description
技术领域
本发明涉及一种当机程序的分析方法,尤其涉及一种针对当机程序的离线分析方法及装置。
背景技术
程序调试的过程之一就是对当机程序进行分析以发现当机的原因。程序调试的工具则包括调试器,通过该调试器分析当机的原因。在常用的调试器中,有些自带模拟器SIMULATOR,有些不带模拟器SIMULATOR。对于自带模拟器SIMULATOR的调试器来说,模拟器通常都用来进行指令级别的调试,而不能调试带有硬件代码的程序。现有技术中,有的完全将包括由寄存器信息、内存信息和操作系统信息组成的转储信息加载到调试器上进行查看。
程序调试主要有两种方式,一种是在线调试,另外一种是离线调试。
在线调试即,调试器与目标板直接连接比如有线或者无线连接,可以对程序在目标板上的运行进行调试。但是,发明人在实现本发明的过程发现:
(1)如果某时刻调试器与目标板的连接瞬间中断,此时,程序恰好出现当机。这种当机的出现,由于调试器无法获取当机程序时的实时情况,因此,对于程序测试人员来说,增加了分析当机原因的难度。
(2)对于一些调试器与目标板建立实时连接难度较大的场合比如3G、航空,程序出现当机具有随机性和不可复现性,在线调试的难度较大。
比如对于手机测试来说,作为测试目标的手机在测试的过程难以保证实时与调试器连接。使用手机在上网的过程中,由于网络运营商提供了一个新发布的flash插件,正是由于该flash插件导致程序在手机上出现当机。但是,之后,该新发布的flash插件从网络上剔除。所以,由于该flash插件而导致的当机情况并不会复现。测试人员也就难以程序中存在什么样的bug而导致使用该新发布的flash出现当机。
(3)如果程序编写人员和测试人员分隔两地,实现在线测试的难度较大。
目标板在程序编写人员处,调试器在程序测试人员处。因此,由于双发分隔两地跨地区开发,难以实现在线测试。
离线调试即,在调试器上直接运行调试信息以及当机时的转储信息,并对当机原因进行分析。但是,对于离线调试来说,存在如下缺陷:
由于目标板运行的平台种类繁多,保存的转储信息中均包括操作系统有关信息,因此保存的转储信息格式上存在差异。如果要让调试器支持不同平台的转储信息,需要对平台和调试器进行大量改动。所以,为了完成当机原因的分析,需要对平台和/或调试器进行修改,以产生调试器可以支持的转储信息。
另外,即使运行程序的平台保持稳定性,即不经常变换程序运行的平台。但是,调试器的版本也在不断更新。这样,为了解决调试器与平台在文件格式支持上的矛盾,仍然需要修改调试器或者平台。而往往修改调试器需要大量的人力和时间,以GDB调试器为例,对其进行修改不仅需要熟悉GDB调试器的专门技术人员,而且由于其指令的复杂,也需要大量的时间来进行这项工作。
综上,由于现有技术通过不断修改平台和调试器来实现离线分析当机原因,这种实现离线分析的难度较大、成本较高、时间长。
发明内容
本发明所要解决的技术问题是提供一种针对当机程序的离线分析方法,用以克服通过不断修改平台和调试器来实现离线分析而导致的难度较大、成本高以及时间长等缺陷。
为解决上述技术问题,本发明提供了一种针对当机程序的离线分析方法。该方法包括如下步骤:
使调试器的模拟器进入运行状态,并在运行状态中设置断点;
从当机时平台输出的转储信息中分离出寄存器和内存信息;
通过所述调试器在断点处用所述分离出的寄存器和内存信息替换模拟器在所述运行状态时的寄存器和内存信息;
用当机时的调试信息替换所述模拟器在原有运行状态时的调试信息;
所述调试器根据替换后的调试信息、替换后的寄存器和内存信息进行当机原因分析。
为解决上述技术问题,本发明还提供了一种针对当机程序的离线分析装置。该装置包括:
模拟器,用于使其进入运行状态并可在运行状态中设置断点;
调度器,用于从当机时平台输出的转储信息中分离出其寄存器和内存信息并在断点处用所述分离出的寄存器和内存信息替换模拟器在所述原有运行状态时的寄存器和内存信息,以及用当机时的调试信息替换所述模拟器在原有运行状态时的调试信息;
调试器,用于根据替换后的调试信息、替换后的寄存器和内存信息进行当机原因分析。
本发明中,通过从当机时平台输出的转储信息中分离出其寄存器和内存信息,而不包含操作系统信息。由于滤除了操作系统信息因此,可以通过使用预先设定的启动程序等方式使模拟器进入运行状态以可设置断点情形下,使用分离出的寄存器和内存信息替换模拟器在所述运行状态时的寄存器和内存信息,以及使用当机时的调试信息替换模拟器在原有运行状态时的调试信息。根据该调试信息以及替换后的寄存器和内存信息即可完成当机原因的分析。正是基于替换后的寄存器和内存信息,而不包括操作系统信息,即使平台发生变化或者GDB调试发生更新时,也不需要修改平台和GDB调试器。因此,降低了离线分析的难度和成本,缩短了离线分析的时间。
附图说明
图1为本发明针对当机程序的离线分析方法实施例一的流程图;
图2为本发明分析当机原因的界面示意图;
图3为本发明针对当机程序的离线分析方法实施例二的流程图;
图4为本发明针对当机程序的离线分析装置实施例的结构示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
图1为本发明针对当机程序的离线分析方法实施例一的流程图。如图1所示,本实施例中的离线分析方法包括:
步骤101、根据预先设定的启动程序使调试器的模拟器SIMULATOR进入运行状态,并在运行状态中设置断点。
本实施例中的调试器可以为GDB(GNU DEBUGGER,简称:GDB)调试器,该GDB调试器支持的文件格式可以为可执行链接文件(executable and linking format,以下简称:ELF)。模拟器在由停止stop状态变成运行running状态时,才可以替换断点处的寄存器和内存信息等。对应地,预先设定的启动程序可以为可执行链接文件格式,而且,该启动程序可以根据模拟器模拟的硬件环境和软件环境定义。如果模拟器simulator集成了外设,则可以运行包括访问这些外设代码的启动程序。如果模拟器simulator没有集成外设,而只是支持CPU指令集,则可以启动程序只由CPU指令组成。本实施例中,该预先设定的启动程序可以为一简单的ELF文件如“hello,world”。通过GDB调试器来设置断点,以及更进一步地在断点处修改寄存器和内存信息。
本实施例中,由于滤除了操作系统信息,因此,使用了一个假的elf文件即预先设定的启动程序“骗”模拟器从stop状态进入运行running状态。这样,才可以保证设置断点。
本实施例中,通过一简单的ELF文件,“hello,world”进入运行状态,可以通过GDB调试器支持的设置断点命令“break”任意设置断点。比如,可以在启动程序的入口处、或者启动程序的指定行处、或所述启动程序的出口处设置断点。
GDB调试器不局限于支持elf格式的文件,也可以支持通用对象文件(COMMON OBJECT FILE FORMAT,简称:COFF)格式的文件。
步骤102、从当机时平台输出的转储信息中分离出其寄存器和内存信息。
对于难以实现在线调试或当机难以复现的平台来说,要实现离线调试,要素之一就是当机时的平台需要实时存储内存memory以及寄存器register等信息。但是,除了包括寄存器register和内存memory信息,操作系统信息也随之保存了下来。但是,不同的平台具有不同的操作系统信息,导致转储信息的格式也不同。而相比之下,本实施例中,从当机时平台输出的转储信息中分离出了寄存器和内存信息,而滤除了跟操作系统有关的信息,使得GDB调试器在离线调试时,不需要读取跟操作系统有关的信息。当平台变化时,用于离线分析的转储信息由寄存器和内存信息组成,无操作系统信息。因此,也就无需为了使GDB调试器和平台在支持的转储信息格式上兼容,而修改GDB调试器或平台。
具体地,步骤102可以为:
步骤112、当机时的平台输出转储信息,所述转储信息中至少包括所述寄存器和内存信息,以及操作系统信息;
步骤122、将操作系统信息从所述转储信息滤除以分离出寄存器和内存信息。
本实施例中,分离出的内存信息可以是平台内的部分数据,也可以所有数据。部分数据可以对应特定若干个线程thread,比如内存中数据为2k的话,只对应当前线程thread的数据,如该线程涉及的函数调用层次以及局部变量,这种方式可以称为最小化转储MINIDUMP。内存中的所有数据可以对应所有线程thread,比如64M内存中所有的数据,对应了所有线程thread的数据,如每个线程thread的执行状态以及该线程thread涉及的局部变量,以及所有线程thread涉及的全局变量等,这种方式可以称为全局内存转储FULLDUMP。可以在ECLIPSE平台的界面下查看线程相关数据。
本实施例中,步骤122可以具体为:
通过ECLIPSE平台滤除转储信息中的操作系统信息以分离出寄存器和内存信息。
ECLIPSE平台是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。现有技术中ECLIPSE平台也用于离线调试,但是该ECLIPSE平台只是简单的被用作界面化的查看工具。而相比之下,本实施例中,根据ECLIPSE平台可以插件的方式扩展其应用,对ECLIPSE平台做了插件扩展,该插件用于从转储信息中滤除操作系统信息。
可替换地,步骤122也可以具体为:通过自定义的调度平台滤除转储信息中的操作系统信息。
即重新定义一个调度平台,从当机时平台输出的转储信息中滤除有关操作系统信息。相比与使用ECLIPSE平台来完成滤除过程,重新定义调度平台的成本稍高。需要重新配置GDB调试器以及模拟器SIMULATOR。而ECLIPSE平台本身携带GDB调试器接口,还支持插件扩展,所以,基于ECLIPSE平台既可以滤除操作系统信息,还可以提供界面化的查看功能,相比于重新定义调度平台,成本较低。
步骤103、通过所述调试器在断点处用分离出的所述寄存器和内存信息替换所述模拟器在所述原有运行状态时的寄存器和内存信息。
根据步骤101设置了一断点。由于GDB调试器本身支持在断点处修改寄存器和内存信息。所以,本实施例中,将分离出的所述寄存器和内存信息通过GDB调试器的GDB命令替换模拟器中运行的启动程序原有的寄存器和内存信息(即,替换掉模拟器运行“hello,world”文件时的寄存器和内存信息)。即在设置的断点处,使用分离出其的寄存器和内存信息替换模拟器在步骤101运行状态时产生的寄存器和内存信息。
由于内存中保存的数据可以有最小化内存转储MINIDUMP和全局内存转储FULLDUMP时,替换时,方式也可以有不同。比如,针对最小化内存转储MINIDUMP可以通过restore或者set命令将内存和寄存器信息进行替换。针对全局内存转储FULLDUMP可以通过load命令将内存数据进行替换。具体地,在用load命令将内存信息进行替换前,可以先将内存信息转换成ELF格式的文件,然后可以通过load命令内存信息批量替换,而对寄存器信息仍通过命令行的方式替换。
在替换时,可以根据平台与模拟器之间对寄存器的命名和内存数据存储格式的差异,对分离出其的寄存器和内存信息作格式上的转换,再用格式转换后的寄存器和内存信息替换原有运行状态的寄存器和内存信息。
比如,在平台下,“Coredump_reg_0:00000000”表示寄存器0的数据值为00000000,转换成对应模拟器支持的寄存器则为:“set $r0=0x0”,表示寄存器r0的数据值为0x0。
通过对替换到模拟器上的寄存器和内存信息“set $r0=0x0”组成的操作序列。
步骤104、用当机时的调试信息替换原有运行状态的调试信息;
对于GDB调试器来说,可以通过“load”命令替换在步骤101的运行状态产生的调试信息。
经过上述步骤,通过现场恢复即信息替换的方式已将当机时平台的现场重新载入到模拟器中。
步骤105、调试器根据替换后的调试信息、替换后的寄存器和内存信息进行当机原因分析。
由于已通过信息替换的方式,将分离出的寄存器信息和内存信息恢复到模拟器simulator中,通过GDB调试器将步骤101中原来启动程序运行状态时的调试信息替换成当机时在平台上的调试信息。由于调试信息中有变量的名称、类型、映射地址以及行号等,寄存器和内存信息中包括对应变量的数据等。因此,基于GDB调试器以及ECLIPSE平台可以查看线程状态、局部变量和全局变量,从而分析当机原因。
比如,通过GDB调试器在ECLIPSE平台下查看到调试信息得到某变量A对应的映射地址为0X8000,GDB调试器从该地址中取出的数据值为5。但是,在原程序中,该A变量的实际值应为10。使用调用堆栈命令“bt”查看线程thread函数调用的关系,以确定哪个线程的哪个函数调用关系出现错误。
图2为本发明分析当机原因的界面示意图。如图2所示,基于ECLIPSE平台在界面的下方设有内存memory数据查看区1、右上方设置有变量variable数据查看区2以及左上方设置有线程thread查看区。
上述实施例中的GDB调试器也可以为windows调试器windows支持的格式为可移植的执行体(PORTABLE EXECUTABLE,简称:PE)格式。XDB调试器支持的启动程序格式可以为通用对象文件COFF格式。
图3为本发明针对当机程序的离线分析方法实施例二的流程图。如图3所示,本实施例具体流程如下:
步骤301、当机时使平台存储一所述转储信息,所述转储信息至少包括寄存器和内存信息。
具体地,针对不支持存储转储信息需要在这些平台上设置存储转储信息的功能。当机时平台存储的转储信息中,内存信息可以是当机时平台中国的部分数据或者全部数据。
步骤302、从当机时平台输出的转储信息中分离出其寄存器和内存信息;
步骤303、以文本的方式保存输出所述分离出的寄存器和内存信息的代码。
本实施例中,为了输出分离出的所述寄存器和内存信息的代码,需要在平台上增加一些输出代码,因此,防止当机程序对该输出代码的破坏,采用文本的将这部分输出代码隔离起来。
本实施例中,如果是最小核心内存转储MINIDUMP,则以文本的方式保存。如果是为全局内存转储FULLDUMP,则可以以二进制的格式保存输出分离出的所述寄存器和内存信息的代码。对于如何保存输出分离出的所述寄存器和内存信息的代码,用户可以自定义。
步骤304、通过强制的方式使调试器的模拟器进入运行状态;
本实施例中,调试器具体为XDB调试器,XDB调试器支持的启动程序格式为通用对象文件COFF格式。
与上述实施例一不同,本实施例具体可以通过使用另外一个调试器使进行当机原因分析的调试器强制控制标志模拟器运行状态的标志位有效。
除了强制方式外,可以启动当机程序使调试器的模拟器进入运行状态。所述当机程序根据所述模拟器模拟的硬件环境和软件环境定义。如果该启动当机程序不包含访问外设的代码,则可直接使用该启动当机程序时模拟器进入运行状态。如果包含访问外设的代码,可以使用带有外设的模拟器以使模拟器进入运行状态。
步骤305、通过所述调试器在断点处用分离出的所述寄存器和内存信息替换所述模拟器在原有所述运行状态时的寄存器和内存信息。
对应地,在替换时,需要将文本格式的所述寄存器和内存信息转换为coff格式。所述寄存器信息还可以包含协处理器信息。
步骤306、用当机时的调试信息替换原有运行状态的调试信息。
步骤307、调试器根据替换后的调试信息、替换后的寄存器和内存信息进行当机原因分析。
本实施例中,该调试信息可以和目标源代码一起保存为一个完成的elf文件。而且,该目标源代码中包含有访问硬件的代码,该访问硬件的代码可以随调试信息一起加载到模拟器中。而区别与现有技术中加载到模拟器的代码只是指令级代码而不包括访问硬件的代码。
本实施例中,XDB调试器不局限于支持coff格式的文件。
图4为本发明针对当机程序的离线分析装置实施例的结构示意图。如图4所示,该装置包括:模拟器401、调度器402以及调试器403。其中,模拟器401用于使其进入运行状态并可在运行状态中设置断点;调度器402用于从当机时平台输出的转储信息中分离出其寄存器和内存信息并在断点处用所述分离出的寄存器和内存信息替换模拟器在所述原有运行状态时的寄存器和内存信息,以及用当机时的调试信息替换所述模拟器在原有运行状态时的调试信息;调试器403用于根据替换后的调试信息、替换后的寄存器和内存信息进行当机原因分析。
上述实施例中,通过从当机时平台输出的转储信息中分离出其寄存器和内存信息,而不包含操作系统信息。在使模拟器进入运行状态以可设置断点情形下,使用分离出的寄存器和内存信息替换模拟器在所述运行状态时的寄存器和内存信息,以及使用当机时的调试信息替换模拟器在原有运行状态时的调试信息。根据该调试信息以及替换后的寄存器和内存信息即可完成当机原因的分析。正是基于替换后的寄存器和内存信息,而不包括操作系统信息,使的平台发生变化或者GDB调试发生更新时,也不需要修改平台和GDB调试器。因此,降低了离线分析的难度和成本,缩短了离线分析的时间。
上述实施例中的技术方案可以适用于多种场合,如因GDB调试器与目标板无法建立起实时连接的情形,如手机测试等、程序编写人员与测试人员分隔两地的等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。
Claims (13)
1.一种针对当机程序的离线分析方法,其特征在于,包括如下步骤:
使调试器的模拟器进入运行状态,并在运行状态中设置断点;
从当机时平台输出的转储信息中分离出其寄存器和内存信息;
通过所述调试器在断点处用所述分离出的寄存器和内存信息替换模拟器在所述运行状态时的寄存器和内存信息;
用当机时的调试信息替换所述模拟器在原有所述运行状态时的调试信息;
所述调试器根据替换后的调试信息、替换后的寄存器和内存信息进行当机原因分析。
2.根据权利要求1所述的方法,其特征在于,所述使调试器的模拟器进入运行状态包括:
根据预先设定的启动程序使调试器的模拟器进入运行状态,所述启动程序根据所述模拟器模拟的硬件环境和软件环境定义。
3.根据权利要求1所述的方法,所述使调试器的模拟器进入运行状态包括:
通过强制的方式使调试器的模拟器进入运行状态;或,
启动当机程序使调试器的模拟器进入运行状态,所述当机程序根据所述模拟器模拟的硬件环境和软件环境定义。
4.根据权利要求2所述的方法,其特征在于,所述调试器为GDB调试器,所述启动程序的格式为可执行链接文件格式。
5.根据权利要求2所述的方法,其特征在于,所述调试器为XDB调试器,所述启动程序的格式为通用对象文件格式。
6.根据权利要求2所述的方法,其特征在于,在所述启动程序的入口处设置断点;或在所述启动程序的指定行处;或在所述启动程序出口处设置断点。
7.根据权利要求1所述的方法,其特征在于,所述从当机时平台输出的转储信息中分离出其寄存器和内存信息之前,还包括:当机时使平台存储一所述转储信息,所述转储信息至少包含当机时所述平台的寄存器和内存信息。
8.根据权利要求7所述的方法,其特征在于,所述内存信息为:当机时所述平台内存中的部分或者全部数据;所述寄存器信息包含协处理器信息。
9.根据权利要求8所述的方法,其特征在于,所述从当机时平台输出的转储信息中分离出其寄存器和内存信息之后包括:
以文本的方式保存输出所述分离出的寄存器和内存信息的代码。
10.根据权利要求8所述的方法,其特征在于,所述调试器根据替换后的调试信息、替换后的寄存器和内存信息进行当机原因分析包括:
查看当机线程中函数调用层次以及该线程对应的局部变量;或,
查看所有线程的执行状态、局部变量和全局变量。
11.根据权利要求1所述的方法,其特征在于,所述从当机时平台输出的转储信息中分离出其寄存器和内存信息包括:
将操作系统信息从所述转储信息滤除以分离出其寄存器和内存信息。
12.根据权利要求11所述的方法,其特征在于,所述将操作系统信息从所述转储信息滤除以分离出其寄存器和内存信息具体为:
通过ECLIPSE平台滤除所述转储信息中的操作系统信息;或,
通过自定义的调度平台滤除所述转储信息中的操作系统信息。
13.一种针对当机程序的离线分析装置,其特征在于,包括:
模拟器,用于使其进入运行状态并可在运行状态中设置断点;
调度器,用于从当机时平台输出的转储信息中分离出其寄存器和内存信息并在断点处用所述分离出的寄存器和内存信息替换模拟器在所述原有运行状态时的寄存器和内存信息,以及用当机时的调试信息替换所述模拟器在原有运行状态时的调试信息;
调试器,用于根据替换后的调试信息、替换后的寄存器和内存信息进行当机原因分析。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010536351.6A CN102063367B (zh) | 2010-10-29 | 2010-10-29 | 针对当机程序的离线分析方法及装置 |
TW100103081A TW201217966A (en) | 2010-10-29 | 2011-01-27 | Method and apparatus for off-line analyzing crashed programs |
US13/067,428 US20120110383A1 (en) | 2010-10-29 | 2011-06-01 | Method and apparatus for off-line analyzing crashed programs |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010536351.6A CN102063367B (zh) | 2010-10-29 | 2010-10-29 | 针对当机程序的离线分析方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102063367A true CN102063367A (zh) | 2011-05-18 |
CN102063367B CN102063367B (zh) | 2013-07-17 |
Family
ID=43998652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010536351.6A Expired - Fee Related CN102063367B (zh) | 2010-10-29 | 2010-10-29 | 针对当机程序的离线分析方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20120110383A1 (zh) |
CN (1) | CN102063367B (zh) |
TW (1) | TW201217966A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262571A (zh) * | 2011-07-25 | 2011-11-30 | 福建星网锐捷网络有限公司 | 一种系统死机的处理方法、装置及设备 |
CN102831054A (zh) * | 2012-06-30 | 2012-12-19 | 华为技术有限公司 | 程序断点处理方法及装置 |
CN106997315A (zh) * | 2016-01-25 | 2017-08-01 | 阿里巴巴集团控股有限公司 | 一种用于虚拟机的内存转储的方法和装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109582542B (zh) * | 2018-12-04 | 2023-02-21 | 中国航空工业集团公司西安航空计算技术研究所 | 一种嵌入式系统核心转储的方法 |
CN111125015B (zh) * | 2019-12-20 | 2023-04-14 | 北京百度网讯科技有限公司 | 用于dump文件分类的方法、装置、终端和介质 |
CN111367799B (zh) * | 2020-02-28 | 2024-05-07 | 同盾控股有限公司 | 定位源代码崩溃位置的方法、装置、介质及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101142560A (zh) * | 2005-01-28 | 2008-03-12 | Nxp股份有限公司 | 调试装置和方法 |
CN101162438A (zh) * | 2006-10-10 | 2008-04-16 | 北京中电华大电子设计有限责任公司 | 一种嵌入式处理器的调试技术 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6480818B1 (en) * | 1998-11-13 | 2002-11-12 | Cray Inc. | Debugging techniques in a multithreaded environment |
US20020087949A1 (en) * | 2000-03-03 | 2002-07-04 | Valery Golender | System and method for software diagnostics using a combination of visual and dynamic tracing |
US20040205720A1 (en) * | 2001-04-30 | 2004-10-14 | Robert Hundt | Augmenting debuggers |
US7320125B2 (en) * | 2001-05-24 | 2008-01-15 | Techtracker, Inc. | Program execution stack signatures |
US7437612B1 (en) * | 2004-09-21 | 2008-10-14 | Sun Microsystems, Inc. | Postmortem detection of owned mutual exclusion locks |
US7409330B2 (en) * | 2005-06-16 | 2008-08-05 | Kabushiki Kaisha Toshiba | Method and system for software debugging using a simulator |
JP2008033849A (ja) * | 2006-08-01 | 2008-02-14 | Hitachi Ltd | 障害解析システム |
US8255203B2 (en) * | 2007-04-26 | 2012-08-28 | Hewlett-Packard Development Company, L.P. | Method of debugging an executable computer program having instructions for different computer architectures |
JP2009059005A (ja) * | 2007-08-29 | 2009-03-19 | Panasonic Corp | デバッグシステム、デバッグ装置および方法 |
US7689815B2 (en) * | 2007-10-12 | 2010-03-30 | Freescale Semiconductor, Inc | Debug instruction for use in a data processing system |
US7870430B2 (en) * | 2008-02-29 | 2011-01-11 | Freescale Semiconductor, Inc. | Method and apparatus for sharing debug resources |
-
2010
- 2010-10-29 CN CN201010536351.6A patent/CN102063367B/zh not_active Expired - Fee Related
-
2011
- 2011-01-27 TW TW100103081A patent/TW201217966A/zh unknown
- 2011-06-01 US US13/067,428 patent/US20120110383A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101142560A (zh) * | 2005-01-28 | 2008-03-12 | Nxp股份有限公司 | 调试装置和方法 |
CN101162438A (zh) * | 2006-10-10 | 2008-04-16 | 北京中电华大电子设计有限责任公司 | 一种嵌入式处理器的调试技术 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262571A (zh) * | 2011-07-25 | 2011-11-30 | 福建星网锐捷网络有限公司 | 一种系统死机的处理方法、装置及设备 |
CN102831054A (zh) * | 2012-06-30 | 2012-12-19 | 华为技术有限公司 | 程序断点处理方法及装置 |
CN102831054B (zh) * | 2012-06-30 | 2015-12-02 | 华为技术有限公司 | 程序断点处理方法及装置 |
CN106997315A (zh) * | 2016-01-25 | 2017-08-01 | 阿里巴巴集团控股有限公司 | 一种用于虚拟机的内存转储的方法和装置 |
CN106997315B (zh) * | 2016-01-25 | 2021-01-26 | 阿里巴巴集团控股有限公司 | 一种用于虚拟机的内存转储的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
TW201217966A (en) | 2012-05-01 |
US20120110383A1 (en) | 2012-05-03 |
CN102063367B (zh) | 2013-07-17 |
TWI420301B (zh) | 2013-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102063367B (zh) | 针对当机程序的离线分析方法及装置 | |
CN104050080B (zh) | 用户态调试linux内核的方法及系统 | |
CN101446918B (zh) | 一种实现用户态调试器调试单个函数的方法及系统 | |
US7900198B2 (en) | Method and system for parameter profile compiling | |
CN102346235A (zh) | 一种面向硬件设备功能的自动测试系统及方法 | |
CN105740139B (zh) | 一种基于虚拟环境的嵌入式软件调试方法 | |
CN102591696A (zh) | 一种手机软件行为数据提取方法及系统 | |
CN105930186B (zh) | 多cpu的软件加载方法及基于多cpu的软件加载装置 | |
CN102789416A (zh) | 面向bit软件测试的存储器故障注入方法及其模拟器 | |
CN104268074A (zh) | 一种基于dcs系统应用软件在线调试方法 | |
CN108170494B (zh) | 一种用于智能终端的应用程序启动方法及启动系统 | |
CN102567049A (zh) | 嵌入式操作系统的升级方法 | |
CN103389939A (zh) | 一种针对堆可控分配漏洞的检测方法及系统 | |
CN105094910A (zh) | 一种驱动函数用户态调试系统和方法 | |
CN115357515B (zh) | 一种多核系统的调试方法、装置、计算机设备及存储介质 | |
CN102968371A (zh) | 测试java api单元组件的方法及装置 | |
CN101594627A (zh) | 一种模拟移动终端故障的装置和方法 | |
CN111352842A (zh) | 基于嵌入式的软件调试方法 | |
CN114995226A (zh) | 一种针对航天嵌入式设备的流程控制系统及方法 | |
JP4009517B2 (ja) | プログラム開発支援装置およびコンパイル方法 | |
CN109947407B (zh) | 一种数据获取方法及装置 | |
CN113360440A (zh) | 处理器通信控制方法及相关产品 | |
CN100403275C (zh) | 应用于固件程序除错的微处理器与方法 | |
CN106874191B (zh) | 智能数据库执行方法及系统 | |
CN112765018B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130717 Termination date: 20181029 |