一种嵌入式Linux系统应用程序的调测方法及系统技术方案

技术编号:27059066 阅读:64 留言:0更新日期:2021-01-15 14:38
本发明专利技术提供了一种嵌入式Linux系统应用程序的调测方法及系统,本发明专利技术通过在应用程序中添加Shell模块,以及自制debugshell工具,两者通过管道进行进程间通信,同时应用程序进程利用自动提取的符号表解析调试命令,完成在标准Linux系统根Shell命令行交互窗口中,通过debugshell工具对应用程序全局变量的实时读写、函数的实时调用等功能,操作简单,实时性强,且能够做到不干扰系统的正常运行,不影响现场环境的正常运营。

【技术实现步骤摘要】
一种嵌入式Linux系统应用程序的调测方法及系统
本专利技术涉及嵌入式Linux系统
,特别是一种嵌入式Linux系统应用程序的调测方法及系统。
技术介绍
在嵌入式Linux系统中调试程序或定位问题时,经常需要在运行时查看某个变量的值,或执行某个调试函数,这时往往需要在源代码中增加打印语句,或增加函数调用的语句,并重新编译运行,这样做不仅操作步骤繁琐,要花费大量编译和运行的时间,更重要的是破坏了问题发生时的现场,不利于一些偶发问题的调试定位,尤其是当设备在客户运营的环境下工作时,重新编译运行的方式可能会中断现场的运营,无法得到客户的认同,这就需要一种能让开发人员在系统正常运行不受干扰的情况下定位问题的快捷手段。
技术实现思路
本专利技术的目的是提供一种嵌入式Linux系统应用程序的调测方法及系统,旨在解决现有技术中调试过程影响系统正常运行的问题,实现不干扰系统的正常运行,降低操作复杂度。为达到上述技术目的,本专利技术提供了一种嵌入式Linux系统应用程序的调测方法,所述方法包括以下操作:在应用程序源码中添加Shell模块,重新编译后,利用nm工具获取重新编译后的应用程序文件的符号表;在ubuntu中交叉编译debugshell源码,得到debugshell工具的可执行文件,并将debugshell工具放置在设备目录下,创建符号链接;在设备的Shell命令行中键入调试命令和参数,debugshell工具向命令管道发送调试命令,Shell模块接收调试命令,调用命令函数并查找符号表,将参数中符号替换为内存地址,输出调试结果至结果管道,debugshell工具读取结果并打印。优选地,所述debugshell工具以只写方式打开命令管道文件以及以只读方式打开结果管道文件;所述Shell模块以只读方式打开命令管道文件以及以只写方式打开结果管道文件。优选地,所述调试命令包括d/m/call的调试命令,d命令为按一定的字节宽度显示指定地址后若干字节的内容,m命令为按一定的字节宽度修改指定地址后若干字节的内容,call命令为调用指定的应用程序中的函数,并根据命令的参数个数选用相应的函数指针,通过函数指针调用目标函数并传递参数。优选地,所述调试结果具有固定的结尾字符。本专利技术还提供了一种嵌入式Linux系统应用程序的调测系统,所述系统包括:主程序Shell模块,用于在应用程序源码中添加Shell模块,重新编译后,利用nm工具获取重新编译后的应用程序文件的符号表;debugshell模块,用于在ubuntu中交叉编译debugshell源码,得到debugshell工具的可执行文件,并将debugshell工具放置在设备目录下,创建符号链接;调试交互模块,用于在设备的Shell命令行中键入调试命令和参数,debugshell工具向命令管道发送调试命令,Shell模块接收调试命令,调用命令函数并查找符号表,将参数中符号替换为内存地址,输出调试结果至结果管道,debugshell工具读取结果并打印。优选地,所述debugshell工具以只写方式打开命令管道文件以及以只读方式打开结果管道文件;所述Shell模块以只读方式打开命令管道文件以及以只写方式打开结果管道文件。优选地,所述调试命令包括d/m/call的调试命令,d命令为按一定的字节宽度显示指定地址后若干字节的内容,m命令为按一定的字节宽度修改指定地址后若干字节的内容,call命令为调用指定的应用程序中的函数,并根据命令的参数个数选用相应的函数指针,通过函数指针调用目标函数并传递参数。优选地,所述调试结果具有固定的结尾字符。本专利技术还提供了一种嵌入式Linux系统应用程序的调测设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序,以实现所述的嵌入式Linux系统应用程序的调测方法。本专利技术还提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现所述的嵌入式Linux系统应用程序的调测方法。
技术实现思路
中提供的效果仅仅是实施例的效果,而不是专利技术所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:与现有技术相比,本专利技术通过在应用程序中添加Shell模块,以及自制debugshell工具,两者通过管道进行进程间通信,同时应用程序进程利用自动提取的符号表解析调试命令,完成在标准Linux系统根Shell命令行交互窗口中,通过debugshell工具对应用程序全局变量的实时读写、函数的实时调用等功能,操作简单,实时性强,且能够做到不干扰系统的正常运行,不影响现场环境的正常运营。附图说明图1为本专利技术实施例中所提供的一种嵌入式Linux系统应用程序的调测方法流程图;图2为本专利技术实施例中所提供的debugshell工具与Shell模块通信流程图;图3为本专利技术实施例中所提供的一种嵌入式Linux系统应用程序的调测系统框图。具体实施方式为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本专利技术进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本专利技术的不同结构。为了简化本专利技术的公开,下文中对特定例子的部件和设置进行描述。此外,本专利技术可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本专利技术省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本专利技术。下面结合附图对本专利技术实施例所提供的一种嵌入式Linux系统应用程序的调测方法及系统进行详细说明。如图1所示,本专利技术公开了一种嵌入式Linux系统应用程序的调测方法,所述方法包括以下操作:在应用程序源码中添加Shell模块,重新编译后,利用nm工具获取重新编译后的应用程序文件的符号表;在ubuntu中交叉编译debugshell源码,得到debugshell工具的可执行文件,并将debugshell工具放置在设备目录下,创建符号链接;在设备的Shell命令行中键入调试命令和参数,debugshell工具向命令管道发送调试命令,Shell模块接收调试命令,调用命令函数并查找符号表,将参数中符号替换为内存地址,输出调试结果至结果管道,debugshell工具读取结果并打印。在嵌入式Linux系统应用软件的源码中移植Shell模块,重新编译应用软件,在编译选项中添加-g,并在嵌入式设备中正常运行。Shell模块主要用于创建传输调试命令和调试结果的管道文件。通过添加Shell模块,可启动tShell线程,用于从管道文件中接收调试命令、执行调试动作以及向管道文件发送调试结果。下载GNUBinutils的源码压缩包,配置编译选项,交叉编译得到一组二进制工具集,其中的nm工具用于可执行文件的符号表提取。将nm工具和新编译得到的应用本文档来自技高网
...

【技术保护点】
1.一种嵌入式Linux系统应用程序的调测方法,其特征在于,所述方法包括以下操作:/n在应用程序源码中添加Shell模块,重新编译后,利用nm工具获取重新编译后的应用程序文件的符号表;/n在ubuntu中交叉编译debugshell源码,得到debugshell工具的可执行文件,并将debugshell工具放置在设备目录下,创建符号链接;/n在设备的Shell命令行中键入调试命令和参数,debugshell工具向命令管道发送调试命令,Shell模块接收调试命令,调用命令函数并查找符号表,将参数中符号替换为内存地址,输出调试结果至结果管道,debugshell工具读取结果并打印。/n

【技术特征摘要】
1.一种嵌入式Linux系统应用程序的调测方法,其特征在于,所述方法包括以下操作:
在应用程序源码中添加Shell模块,重新编译后,利用nm工具获取重新编译后的应用程序文件的符号表;
在ubuntu中交叉编译debugshell源码,得到debugshell工具的可执行文件,并将debugshell工具放置在设备目录下,创建符号链接;
在设备的Shell命令行中键入调试命令和参数,debugshell工具向命令管道发送调试命令,Shell模块接收调试命令,调用命令函数并查找符号表,将参数中符号替换为内存地址,输出调试结果至结果管道,debugshell工具读取结果并打印。


2.根据权利要求1所述的一种嵌入式Linux系统应用程序的调测方法,其特征在于,所述debugshell工具以只写方式打开命令管道文件以及以只读方式打开结果管道文件;所述Shell模块以只读方式打开命令管道文件以及以只写方式打开结果管道文件。


3.根据权利要求1所述的一种嵌入式Linux系统应用程序的调测方法,其特征在于,所述调试命令包括d/m/call的调试命令,d命令为按一定的字节宽度显示指定地址后若干字节的内容,m命令为按一定的字节宽度修改指定地址后若干字节的内容,call命令为调用指定的应用程序中的函数,并根据命令的参数个数选用相应的函数指针,通过函数指针调用目标函数并传递参数。


4.根据权利要求1所述的一种嵌入式Linux系统应用程序的调测方法,其特征在于,所述调试结果具有固定的结尾字符。


5.一种嵌入式Linux系统应用程序的调测系统,其特征在于,所述系统包括:
主程序Shell模块,用于在应用程序源码中添加Shell模块,重新编译后,利用nm工具获取重新编译后的应用程序文件的符号表;
debugshell模块...

【专利技术属性】
技术研发人员:常卫江赵静魏峰柳逢源
申请(专利权)人:积成电子股份有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1