CN109344083A - 一种程序调试方法、装置、设备及可读存储介质 - Google Patents

一种程序调试方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN109344083A
CN109344083A CN201811307876.5A CN201811307876A CN109344083A CN 109344083 A CN109344083 A CN 109344083A CN 201811307876 A CN201811307876 A CN 201811307876A CN 109344083 A CN109344083 A CN 109344083A
Authority
CN
China
Prior art keywords
trace
program
file
information
memory
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
Application number
CN201811307876.5A
Other languages
English (en)
Other versions
CN109344083B (zh
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201811307876.5A priority Critical patent/CN109344083B/zh
Publication of CN109344083A publication Critical patent/CN109344083A/zh
Application granted granted Critical
Publication of CN109344083B publication Critical patent/CN109344083B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • 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/3644Software debugging by instrumenting at runtime

Abstract

本发明公开了一种程序调试方法,该方法通过在系统程序中添加trace模块,可在调试运行时,可获取系统程序中指定格式的变量结构体对应的系统数据变化信息,并在可视化界面显示系统数据变化信息。可提升程序调试效率,进一步缩短系统程序的开发时长。本发明还公开了一种程序调试装置、设备及可读存储介质,具有相应的技术效果。

Description

一种程序调试方法、装置、设备及可读存储介质
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种程序调试方法、装置、设备及可读存储介质。
背景技术
为保障存储系统的安全性,实现存储的各种特性,存储系统往往规模庞大,模块多达二三十个,这就造成了系统开发过程中对系统程序进行调试时,问题定位复杂。
目前,系统调试手段主要有直接使用inBE工具查看,该方式适合程序运行过程中数据结构定义的变量值的查看,但随着数据结构的增多,运行效率会有降低。调试手段的调试效率低,造成系统开发过程缓慢,问题定位耗时严重,甚至影响存储系统性能。
综上所述,如何有效地解决系统程序的调试等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种程序调试方法、装置、设备及可读存储介质,以提高系统程序调试效率。
为解决上述技术问题,本发明提供如下技术方案:
一种程序调试方法,包括:
对添加了trace模块的系统程序进行编译,获取所述系统程序中指定格式的变量结构体;
生成所述变量结构体对应的Definition文件,以及与所述Definition文件对应的Symbol文件;
运行所述系统程序,利用所述Definition文件并结合所述Symbol文件将所述trace模块输出的trace信息写入内存中;
利用所述Symbol文件,从所述内存中读取所述trace信息;
利用Definition文件对所述trace信息进行解析,获得所述变量结构体对应的系统数据变化信息,并在可视化界面显示所述系统数据变化信息。
优选地,运行所述系统程序,利用所述Definition文件并结合所述Symbol文件将所述trace模块输出的trace信息写入内存中,包括:
运行所述系统程序,获得所述trace模块输出的trace信息;
将所述trace信息按照Symbol文件生成memory文件;
将所述memory文件存储至所述Symbol文件指定的内存地址中。
优选地,运行所述系统程序,利用所述Definition文件并结合所述Symbol文件将所述trace模块输出的trace信息写入内存中,包括:
运行所述系统程序,获得所述trace模块输出的trace信息;
将所述trace信息按照Symbol文件生成二进制文件和memory文件;
将所述二进制文件和所述memory文件存储至所述Symbol文件指定的内存地址中。
优选地,运行所述系统程序,获得所述trace模块输出的trace信息,包括:
运行所述系统程序,获得所述trace模块输出的trace公有信息和trace_entry信息;其中,所述trace信息包括所述trace模块对应的存储模块;
将所述trace公有信息和所述trace_entry信息确定为所述trace信息。
优选地,所述利用Definition文件对所述trace信息进行解析,获得所述变量结构体对应的系统数据变化信息,包括:
利用所述Definition文件对所述trace信息进行解析,获得变量结构体对应的系统数据变化信息,以及所述变量结构体对应的所述存储模块。
优选地,利用所述Symbol文件,从所述内存中读取所述trace信息,包括:
利用所述Symbol文件,从所述内存中实时读取所述memory文件。
优选地,在所述对添加了trace模块的系统程序进行编译,获取所述系统程序中指定格式的变量结构体之前,还包括:
接收调试信息显示请求,并确定所述调试信息显示请求对应的所述变量结构体;
在对所述系统程序进行编码时,将所述变量结构体编码为指定格式。
一种程序调试装置,包括:
变量结构体获取模块,用于对添加了trace模块的系统程序进行编译,获取所述系统程序中指定格式的变量结构体;
文件生成模块,用于生成所述变量结构体对应的Definition文件,以及与所述Definition文件对应的Symbol文件;
trcae信息存储模块,用于运行所述系统程序,利用所述Definition文件并结合所述Symbol文件将所述trace模块输出的trace信息写入内存中;
trace信息读取模块,用于利用所述Symbol文件,从所述内存中读取所述trace信息;
trace信息分析显示模块,用于利用Definition文件对所述trace信息进行解析,获得所述变量结构体对应的系统数据变化信息,并在可视化界面显示所述系统数据变化信息。
一种程序调试设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述程序调试方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述程序调试方法的步骤。
应用本发明实施例所提供的方法,在系统程序中添加trace模块,在对系统程序进行编译时,获取指定格式的变量结构体,并生成与该变量结构体对应的Definition文件,以及该Definition文件对应的Symbol。然后,运行系统程序时,由于添加了trace模块,trace模块便会输出trace信息,此时利用Definition文件和Symbol文件,将trace信息写入内存中。首先利用Symbol文件确定trace信息的内存地址,从该内存地址中读取trace信息时,并利用Definition文件对trace信息进行解析,便可获得该变量结构体对应的系统数据变化信息,可在可视化界面显示系统数据变化信息。如此,便可快速获取调试过程中,系统程序中的各个变量结构体的系统数据变化信息。相较于现有的inBE工具根据仅能查看个别数据结构定义的单一时刻的变量而言,本发明实施例所提供的程序调试方法,可快速获得多个变量结构体的数据变化信息。即,本发明实施例所提供的程序调试方法,可记录多个结构变量体的系统数据变化信息,如此便可提升程序调试效率,进一步缩短系统程序的开发时长。
相应地,本发明实施例还提供了与上述程序调试方法相对应的程序调试装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种程序调试方法的实施流程图;
图2为本发明实施例中一种trace模块使用示意图;
图3为本发明实施例中一种程序调试装置的结构示意图;
图4为本发明实施例中一种程序调试设备的结构示意图;
图5为本发明实施例中一种程序调试设备的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
请参考图1,图1为本发明实施例中一种程序调试方法的流程图,该方法包括以下步骤:
S101、对添加了trace模块的系统程序进行编译,获取系统程序中指定格式的变量结构体。
在本发明实施例中,对待调试的系统程序可预先添加trace模块。其中,系统程序可为存储系统的系统程序,trace模块,可通过trace模块提供的接口函数在存储系统中的各存储模块内部记录trace信息到内存空间。另外,对需要显示的变量结构体采用指定格式进行编码,例如BE格式。
优选地,为便于操作,还可根据用户在可视化界面输出的调试信息显示请求,确定需显示的变量结构体。具体的,在对添加了trace模块的系统程序进行编译,获取系统程序中指定格式的变量结构体之前,接收调试信息显示请求,并确定调试信息显示请求对应的变量结构体;在对系统程序进行编码时,将变量结构体编码为指定格式。即通过用户指定的方式,对用户感兴趣的变量结构体使用指定格式进行标注。
确定待查看的变量结构体之后,可执行步骤S102的操作。
S102、生成变量结构体对应的Definition文件,以及与Definition文件对应的Symbol文件。
其中,变量结构体的数目可为一个也可为多个。Definition文件即为定义文件,即定义该结构变量体的系统数据改变数值的存储格式和结构。具体的,可采用memory文件记录结构变量体的系统数据改变数值。即,Definition文件可用于定义memory文件的格式和结构。当然,考虑到对调试信息的查看不仅仅是调试时,还可能在后续分析中应用,因而Definition文件还可定义二进制文件格式。Symbol文件即指明二进制文件和memory文件的内存地址。需要说明的是,Symbol文件与Definition文件具有匹配对应关系。例如,若Definition文件仅定义了memory文件的格式和结构时,则Symbol文件则仅需指定memory文件的内存地址;若Definition文件仅定义了二进制文件和memory文件的格式和结构时,则Symbol文件则仅需指定二进制文件和memory文件的内存地址。
S103、运行系统程序,利用Definition文件并结合Symbol文件将trace模块输出的trace信息写入内存中。
运行系统程序时,系统程序中的trace模块,便会输出trace信息。此时,可利用Definition文件并结合Symbol文件将trace信息写入内存中。具体的,若Definition文件仅定义了memory文件的格式和结构,则运行系统程序时,记录trace信息的过程包括:
步骤一、运行系统程序,获得trace模块输出的trace信息;
步骤二、将trace信息按照Symbol文件生成memory文件;
步骤三、将memory文件存储至Symbol文件指定的内存地址中。
若Definition文件仅定义了memory文件的格式和结构,则运行系统程序时,记录trace信息的过程包括:
步骤一、运行系统程序,获得trace模块输出的trace信息;
步骤二、将trace信息按照Symbol文件生成二进制文件和memory文件;
步骤三、将二进制文件和memory文件存储至Symbol文件指定的内存地址中。
即根据Definition文件的定义,以及与Definition文件匹配的Symbol文件,将trace信息仅生成相应的memory文件,或生成相应的memory文件和二进制文件。
需要说明的是,上述的在运行系统程序,获得trace模块输出的trace信息,具体均可为:
步骤一、运行系统程序,获得trace模块输出的trace公有信息和trace_entry信息;其中,trace信息包括trace模块对应的存储模块;
步骤二、将trace公有信息和trace_entry信息确定为trace信息。
其中,trace信息包括trace公有信息和trace_entry信息;且trace公有信息具体可指trace信息的基本信息,如模块、时间、tracePoint等;trace_entry信息则可为开发者自行定制,需在调试时显示的关键信息。
S104、利用Symbol文件,从内存中读取trace信息。
将trace信息写入内存之后,便可利用Symbol文件,从内存中读取该trace信息。例如,使用诸如可直接读取内存空间的inBE工具,利用Symbol文件所记载的内存地址,从该内存地址中读取trace信息。
S105、利用Definition文件对trace信息进行解析,获得变量结构体对应的系统数据变化信息,并在可视化界面显示系统数据变化信息。
在读取到trace信息之后,可利用Definition文件对该trace信息进行解析,获得变量结构体对应的系统数据变化信息。具体的,即可利用Symbol文件,从内存中实时读取memory文件。然后使用Definition文件对memory文件进行解析,获得系统数据变化信息。
然后,在可视化界面显示该系统数据变化信息。例如,可在inBE工具中显示该系统数据变化信息。当然,还可是要其他可视化工具对系统数据变化信息进行显示。
应用本发明实施例所提供的方法,在系统程序中添加trace模块,在对系统程序进行编译时,获取指定格式的变量结构体,并生成与该变量结构体对应的Definition文件,以及该Definition文件对应的Symbol。然后,运行系统程序时,由于添加了trace模块,trace模块便会输出trace信息,此时利用Definition文件和Symbol文件,将trace信息写入内存中。首先利用Symbol文件确定trace信息的内存地址,从该内存地址中读取trace信息时,并利用Definition文件对trace信息进行解析,便可获得该变量结构体对应的系统数据变化信息,可在可视化界面显示系统数据变化信息。如此,便可快速获取调试过程中,系统程序中的各个变量结构体的系统数据变化信息。相较于现有的inBE工具根据仅能查看个别数据结构定义的单一时刻的变量而言,本发明实施例所提供的程序调试方法,可快速获得多个变量结构体的数据变化信息。即,本发明实施例所提供的程序调试方法,可记录多个结构变量体的系统数据变化信息,如此便可提升程序调试效率,进一步缩短系统程序的开发时长。
需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在优选/改进实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在本文的优选/改进实施例中不再一一赘述。
优选地、在对trace信息进行解析时,可利用Definition文件对trace信息进行解析,获得变量结构体对应的系统数据变化信息,以及变量结构体对应的存储模块。即,当存在多个变量结构体时,不仅可从trace信息中解析出系统数据变化信息,还可解析出系统数据变化信息对应的存储模块,便于在出现问题时,快速定位到问题模块。可进一步缩短调试时间,缩短开发时间。
实施例二:
为便于本领域技术人员更好的理解本发明实施例所提供的技术方案,下面以结合inBE工具中,进行查询调试为例对本发明实施例所提供的技术方案进行详细说明。
请参考图2,首先,trace模块定义了trace_table,由N个trace_entry构成,entry的结构可以定义,即定义了通用接口,可应对多参数情况trace记录;其次,在使用时需要定义并初始化trace_table,为trace table分配内存空间,然后可以使用接口函数记trace;最后,通过inBE可以查看定义的trace信息。
存储系统程序实现时主要包括:定义trace的selfDefineStruct,需要记录和显示的trace内容,即Definition文件里的内容;初始化trace table,分配内存空间;运行过程中各模块在关键位置使用接口trace来记录;通过inBE实时内存或二进制文件查看trace信息。
若将本发明实施例所提供的技术方案划分为:trace模块和inBE工具实现模块。则trace模块的实现初始化过程:初始化trace table,traceTable包含N个entry和记trace过程:调用trace()接口,按照自定义结构selfDefineStruct,填充Entry。inBE工具实现模块,即在调试时使用inBE来查看该traceTable信息。
trace模块,通过提供的接口函数在各模块内部记录trace到内存空间,利用inBE工具进行解析查看,可以记录程序运行过程中关键节点的信息。本发明实施例所提供的技术方案,可使开发过程的调试更加灵活高效,节约开发时间,降低研发成本。
实施例三:
相应于上面的方法实施例,本发明实施例还提供了一种程序调试装置,下文描述的程序调试装置与上文描述的程序调试方法可相互对应参照。
参见图3所示,该装置包括以下模块:
变量结构体获取模块101,用于对添加了trace模块的系统程序进行编译,获取系统程序中指定格式的变量结构体;
文件生成模块102,用于生成变量结构体对应的Definition文件,以及与Definition文件对应的Symbol文件;
trcae信息存储模块103,用于运行系统程序,利用Definition文件并结合Symbol文件将trace模块输出的trace信息写入内存中;
trace信息读取模块104,用于利用Symbol文件,从内存中读取trace信息;
trace信息分析显示模块105,用于利用Definition文件对trace信息进行解析,获得变量结构体对应的系统数据变化信息,并在可视化界面显示系统数据变化信息。
应用本发明实施例所提供的装置,在系统程序中添加trace模块,在对系统程序进行编译时,获取指定格式的变量结构体,并生成与该变量结构体对应的Definition文件,以及该Definition文件对应的Symbol。然后,运行系统程序时,由于添加了trace模块,trace模块便会输出trace信息,此时利用Definition文件和Symbol文件,将trace信息写入内存中。首先利用Symbol文件确定trace信息的内存地址,从该内存地址中读取trace信息时,并利用Definition文件对trace信息进行解析,便可获得该变量结构体对应的系统数据变化信息,可在可视化界面显示系统数据变化信息。如此,便可快速获取调试过程中,系统程序中的各个变量结构体的系统数据变化信息。相较于现有的inBE工具根据仅能查看个别数据结构定义的单一时刻的变量而言,本发明实施例所提供的程序调试装置,可快速获得多个变量结构体的数据变化信息。即,本发明实施例所提供的程序调试装置,可记录多个结构变量体的系统数据变化信息,如此便可提升程序调试效率,进一步缩短系统程序的开发时长。
在本发明的一种具体实施方式中,trcae信息存储模块103,具体用于运行系统程序,获得trace模块输出的trace信息;将trace信息按照Symbol文件生成memory文件;将memory文件存储至Symbol文件指定的内存地址中。
在本发明的一种具体实施方式中,trcae信息存储模块103,具体用于运行系统程序,获得trace模块输出的trace信息;将trace信息按照Symbol文件生成二进制文件和memory文件;将二进制文件和memory文件存储至Symbol文件指定的内存地址中。
在本发明的一种具体实施方式中,trcae信息存储模块103,具体用于运行系统程序,获得trace模块输出的trace公有信息和trace_entry信息;其中,trace信息包括trace模块对应的存储模块;将trace公有信息和trace_entry信息确定为trace信息。
在本发明的一种具体实施方式中,trace信息分析显示模块105,具体用于利用Definition文件对trace信息进行解析,获得变量结构体对应的系统数据变化信息,以及变量结构体对应的存储模块。
在本发明的一种具体实施方式中,trace信息读取模块104,具体用于利用Symbol文件,从内存中实时读取memory文件。
在本发明的一种具体实施方式中,还包括:
变量结构体编码模块,用于在对添加了trace模块的系统程序进行编译,获取系统程序中指定格式的变量结构体之前,接收调试信息显示请求,并确定调试信息显示请求对应的变量结构体;在对系统程序进行编码时,将变量结构体编码为指定格式。
实施例四:
相应于上面的方法实施例,本发明实施例还提供了一种程序调试设备,下文描述的一种程序调试设备与上文描述的一种程序调试方法可相互对应参照。
参见图4所示,该程序调试设备包括:
存储器D1,用于存储计算机程序;
处理器D2,用于执行计算机程序时实现上述方法实施例的程序调试方法的步骤。
具体的,请参考图5,为本实施例提供的一种程序调试设备的具体结构示意图,该程序调试设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在程序调试设备301上执行存储介质330中的一系列指令操作。
程序调试设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。例如,Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等。
上文所描述的程序调试方法中的步骤可以由程序调试设备的结构实现。
实施例五:
相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种程序调试方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的程序调试方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

Claims (10)

1.一种程序调试方法,其特征在于,包括:
对添加了trace模块的系统程序进行编译,获取所述系统程序中指定格式的变量结构体;
生成所述变量结构体对应的Definition文件,以及与所述Definition文件对应的Symbol文件;
运行所述系统程序,利用所述Definition文件并结合所述Symbol文件将所述trace模块输出的trace信息写入内存中;
利用所述Symbol文件,从所述内存中读取所述trace信息;
利用Definition文件对所述trace信息进行解析,获得所述变量结构体对应的系统数据变化信息,并在可视化界面显示所述系统数据变化信息。
2.根据权利要求1所述的程序调试方法,其特征在于,运行所述系统程序,利用所述Definition文件并结合所述Symbol文件将所述trace模块输出的trace信息写入内存中,包括:
运行所述系统程序,获得所述trace模块输出的trace信息;
将所述trace信息按照Symbol文件生成memory文件;
将所述memory文件存储至所述Symbol文件指定的内存地址中。
3.根据权利要求1所述的程序调试方法,其特征在于,运行所述系统程序,利用所述Definition文件并结合所述Symbol文件将所述trace模块输出的trace信息写入内存中,包括:
运行所述系统程序,获得所述trace模块输出的trace信息;
将所述trace信息按照Symbol文件生成二进制文件和memory文件;
将所述二进制文件和所述memory文件存储至所述Symbol文件指定的内存地址中。
4.根据权利要求1或2所述的程序调试方法,其特征在于,运行所述系统程序,获得所述trace模块输出的trace信息,包括:
运行所述系统程序,获得所述trace模块输出的trace公有信息和trace_entry信息;其中,所述trace信息包括所述trace模块对应的存储模块;
将所述trace公有信息和所述trace_entry信息确定为所述trace信息。
5.根据权利要求4所述的程序调试方法,其特征在于,所述利用Definition文件对所述trace信息进行解析,获得所述变量结构体对应的系统数据变化信息,包括:
利用所述Definition文件对所述trace信息进行解析,获得变量结构体对应的系统数据变化信息,以及所述变量结构体对应的所述存储模块。
6.根据权利要求2或3所述的程序调试方法,其特征在于,利用所述Symbol文件,从所述内存中读取所述trace信息,包括:
利用所述Symbol文件,从所述内存中实时读取所述memory文件。
7.根据权利要求1所述的程序调试方法,其特征在于,在所述对添加了trace模块的系统程序进行编译,获取所述系统程序中指定格式的变量结构体之前,还包括:
接收调试信息显示请求,并确定所述调试信息显示请求对应的所述变量结构体;
在对所述系统程序进行编码时,将所述变量结构体编码为指定格式。
8.一种程序调试装置,其特征在于,包括:
变量结构体获取模块,用于对添加了trace模块的系统程序进行编译,获取所述系统程序中指定格式的变量结构体;
文件生成模块,用于生成所述变量结构体对应的Definition文件,以及与所述Definition文件对应的Symbol文件;
trcae信息存储模块,用于运行所述系统程序,利用所述Definition文件并结合所述Symbol文件将所述trace模块输出的trace信息写入内存中;
trace信息读取模块,用于利用所述Symbol文件,从所述内存中读取所述trace信息;
trace信息分析显示模块,用于利用Definition文件对所述trace信息进行解析,获得所述变量结构体对应的系统数据变化信息,并在可视化界面显示所述系统数据变化信息。
9.一种程序调试设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述程序调试方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述程序调试方法的步骤。
CN201811307876.5A 2018-11-05 2018-11-05 一种程序调试方法、装置、设备及可读存储介质 Active CN109344083B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811307876.5A CN109344083B (zh) 2018-11-05 2018-11-05 一种程序调试方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811307876.5A CN109344083B (zh) 2018-11-05 2018-11-05 一种程序调试方法、装置、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN109344083A true CN109344083A (zh) 2019-02-15
CN109344083B CN109344083B (zh) 2022-07-08

Family

ID=65313722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811307876.5A Active CN109344083B (zh) 2018-11-05 2018-11-05 一种程序调试方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN109344083B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112463594A (zh) * 2020-11-13 2021-03-09 苏州浪潮智能科技有限公司 一种sas链路调试方法、装置、设备及计算机存储介质
WO2021190354A1 (zh) * 2020-03-26 2021-09-30 华为技术有限公司 一种采集追踪trace调用链的方法和电子设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0350640A (ja) * 1989-07-18 1991-03-05 Nec Corp 実行用プログラムのトレース情報編集方式
US5446900A (en) * 1992-07-24 1995-08-29 Microtec Research, Inc. Method and apparatus for statement level debugging of a computer program
CN1949186A (zh) * 2006-11-17 2007-04-18 深圳市领测科技有限公司 一种程序调测系统及用于程序调测系统的映射方法
CN102722440A (zh) * 2012-06-07 2012-10-10 中兴通讯股份有限公司 一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统
CN103077112A (zh) * 2012-10-16 2013-05-01 中兴通讯股份有限公司 一种软件调试的方法和系统
US20140258990A1 (en) * 2013-03-06 2014-09-11 Red Hat, Inc. Method and system for providing a core dump-level stack trace
CN104063319A (zh) * 2014-06-26 2014-09-24 上海凌阳科技有限公司 一种嵌入式系统的调试方法及其装置
CN104102356A (zh) * 2014-07-22 2014-10-15 王兰芝 汉字层次解析汉字与符号编码输入方法
CN104281520A (zh) * 2013-07-10 2015-01-14 腾讯科技(深圳)有限公司 跟踪和调试的方法、装置及系统
CN107301021A (zh) * 2017-06-22 2017-10-27 郑州云海信息技术有限公司 一种利用ssd缓存对lun进行加速的方法和装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0350640A (ja) * 1989-07-18 1991-03-05 Nec Corp 実行用プログラムのトレース情報編集方式
US5446900A (en) * 1992-07-24 1995-08-29 Microtec Research, Inc. Method and apparatus for statement level debugging of a computer program
CN1949186A (zh) * 2006-11-17 2007-04-18 深圳市领测科技有限公司 一种程序调测系统及用于程序调测系统的映射方法
CN102722440A (zh) * 2012-06-07 2012-10-10 中兴通讯股份有限公司 一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统
CN103077112A (zh) * 2012-10-16 2013-05-01 中兴通讯股份有限公司 一种软件调试的方法和系统
US20140258990A1 (en) * 2013-03-06 2014-09-11 Red Hat, Inc. Method and system for providing a core dump-level stack trace
CN104281520A (zh) * 2013-07-10 2015-01-14 腾讯科技(深圳)有限公司 跟踪和调试的方法、装置及系统
CN104063319A (zh) * 2014-06-26 2014-09-24 上海凌阳科技有限公司 一种嵌入式系统的调试方法及其装置
CN104102356A (zh) * 2014-07-22 2014-10-15 王兰芝 汉字层次解析汉字与符号编码输入方法
CN107301021A (zh) * 2017-06-22 2017-10-27 郑州云海信息技术有限公司 一种利用ssd缓存对lun进行加速的方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IEEE: "24765-2010-ISO/IEC/IEEE International Standard - Systems and software engineering-Vocabulary", 《ISO/IEC/IEEE INTERNATIONAL STANDARD》 *
彭闻宇: "Linux应用程序调试技术的研究", 《微计算机信息》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021190354A1 (zh) * 2020-03-26 2021-09-30 华为技术有限公司 一种采集追踪trace调用链的方法和电子设备
CN112463594A (zh) * 2020-11-13 2021-03-09 苏州浪潮智能科技有限公司 一种sas链路调试方法、装置、设备及计算机存储介质
CN112463594B (zh) * 2020-11-13 2023-01-10 苏州浪潮智能科技有限公司 一种sas链路调试方法、装置、设备及计算机存储介质

Also Published As

Publication number Publication date
CN109344083B (zh) 2022-07-08

Similar Documents

Publication Publication Date Title
CN103425574B (zh) 一种测试应用程序的方法及装置
CN104407951A (zh) 一种自动化进行服务器整机测试的方法
US20110145799A1 (en) Path-sensitive dataflow analysis including path refinement
JP6363152B2 (ja) データフロー分析のための装置、方法、コンピュータプログラム及び記憶媒体
CN110083145A (zh) 一种汽车诊断方法、装置及可读存储介质和汽车诊断仪
US20150082284A1 (en) Method and system for generating a memory trace of a program code executable on a programmable target
CN109710185A (zh) 数据处理方法及装置
CN109308254A (zh) 一种测试方法、装置及测试设备
CN108052327A (zh) 一种内核模块编译、加载方法及装置
CN107479866B (zh) 基于重构技术实现开放终端应用数据与功能的方法
CN109344083A (zh) 一种程序调试方法、装置、设备及可读存储介质
CN110968296B (zh) 一种数据获取方法、装置、设备及可读存储介质
CN109828759B (zh) 代码编译方法、装置、计算机装置及存储介质
CN110321127A (zh) 一种表单页面灵活渲染的方法、系统及介质
CN113778890A (zh) 代码测试方法、装置、电子设备及存储介质
CN109933770A (zh) 一种测试报告生成方法、系统及电子设备和存储介质
CN115495082B (zh) Tlv格式数据自动转换方法及相关设备
CN108845799B (zh) 一种可视化程序校验方法、装置和计算机可读存储介质
CN113778515B (zh) 确定程序包变更信息的方法和装置
CN109669829A (zh) 一种基于bmc的诊断调试方法、装置及服务器
CN116048481A (zh) 业务信息处理系统及方法
CN114385155A (zh) vue项目可视化工具生成方法、装置、设备及存储介质
CN114327614A (zh) 参考模型数据流记录和分析的方法及应用
CN114356218A (zh) Flash存储器的数据纠错方法、设备以及介质
CN111045891B (zh) 基于java多线程的监控方法、装置、设备以及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant