[发明专利]一种程序调试方法及装置在审
申请号: | 201710651756.6 | 申请日: | 2017-08-02 |
公开(公告)号: | CN107402885A | 公开(公告)日: | 2017-11-28 |
发明(设计)人: | 王艳清;徐洪志 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京集佳知识产权代理有限公司11227 | 代理人: | 罗满 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 程序 调试 方法 装置 | ||
技术领域
本申请涉及存储技术领域,特别涉及一种程序调试方法及装置。
背景技术
随着信息技术的飞速发展,存储技术领域中的技术革新也是日新月异,悄然改变着人们的生产生活方式。
目前,单一的磁盘存储设备已经逐渐转变为更加复杂的智能化存储设备系统,基于Linux系统进行软件开发,以满足现代社会的生产要求。随着新功能的开发,相关的软件代码逐渐增多,代码复杂程度也随之增大,因而,对程序进行调试以解决程序bug故障原因的难度也大大提升。
现有技术中采用的传统程序调试方法,是基于GDB调试工具采用ptrace方式进行的断点调试,通过设置断点一步步调试程序,因而在调试过程中会影响程序的执行效率。而对于存储设备来说,调试过程中对应用程序执行效率的影响严格来说是不允许的,这会严重影响到系统所提供的存储服务。
由此可见,如何在不降低业务进程的执行效率的基础上,对业务进程的程序进行在线调试,是本领域技术人员亟待解决的技术问题,在存储设备技术开发中具有重要的意义。
发明内容
本申请的目的在于提供一种程序调试方法及装置,以便在调试的过程中可以有效地保障业务进程的执行效率。
为解决上述技术问题,本申请提供一种程序调试方法,包括:
将业务进程的数据文件以mmap方式映射到调试进程的内存空间;
利用BE二进制编辑器,根据所述业务进程的资源文件和符号表文件,对所述数据文件进行解析和调试;
其中,所述资源文件和所述符号表文件预先在所述业务进程的编译过程中生成。
可选地,还包括:
若所述业务进程的源代码被修改,则再次在所述业务进程的编译过程中生成所述资源文件和所述符号表文件。
可选地,所述在所述业务进程的编译过程中生成所述资源文件和所述符号表文件包括:
将BE代码嵌入所述源代码中,用以注释所述源代码中的数据结构;
利用AWK处理工具,抽取所述源代码中的所述BE代码组成所述资源文件;
利用GCC编译器,将嵌入有BE代码的所述源代码编译成可执行文件;
利用readelf处理命令,读取所述可执行文件中的符号信息生成所述符号表文件。
可选地,所述数据文件包括所述业务进程的以下任意一项或者组合:数据段、BSS段、堆栈。
本申请还提供了一种程序调试装置,包括:
映射模块:用于将业务进程的数据文件以mmap方式映射到调试进程的内存空间;
调试模块:用于利用BE二进制编辑器,根据所述业务进程的资源文件和符号表文件,对所述数据文件进行解析和调试;
生成模块:用于预先在所述业务进程的编译过程中,生成所述资源文件和所述符号表文件。
可选地,所述生成模块还用于:
在所述业务进程的源代码被修改后,再次在所述业务进程的编译过程中生成所述资源文件和所述符号表文件。
可选地,所述生成模块具体用于:
将BE代码嵌入所述源代码中,用以注释所述源代码中的数据结构;
利用AWK处理工具,抽取所述源代码中的所述BE代码组成所述资源文件;
利用GCC编译器,将嵌入有BE代码的所述源代码编译成可执行文件;
利用readelf处理命令,读取所述可执行文件中的符号信息生成所述符号表文件。
可选地,所述数据文件包括所述业务进程的以下任意一项或者组合:数据段、BSS段、堆栈。
本申请所提供的程序调试方法中,将业务进程的数据文件以mmap方式映射到调试进程的内存空间;利用BE二进制编辑器,根据所述业务进程的资源文件和符号表文件,对所述数据文件进行解析和调试;其中,所述资源文件和所述符号表文件预先在所述业务进程的编译过程中生成。
可见,相比于现有技术,本申请所提供的程序调试方法中,利用建立mmap映射,使得调试进程可以共享业务进程的内存空间,由此可以根据业务进程的符号表和资源文件,对业务进程的数据文件进行解析和调试,而不会影响到业务进程的执行。由此可见,本申请所提供的程序调试方法,可以有效实现在进行调试的同时,保障业务进程的执行效率。本申请所提供的程序调试装置可以实现上述程序调试方法,同样具有上述有益效果。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710651756.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:生成接口测试代码的方法及装置
- 下一篇:堆栈分析方法及相关装置