[发明专利]获取程序运行信息的方法及系统有效
申请号: | 201210151244.0 | 申请日: | 2012-05-16 |
公开(公告)号: | CN103425565A | 公开(公告)日: | 2013-12-04 |
发明(设计)人: | 董航 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F11/32 | 分类号: | G06F11/32 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 牛峥;王丽琴 |
地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 获取 程序 运行 信息 方法 系统 | ||
技术领域
本发明涉及程序运行领域,尤其涉及获取程序运行信息的方法及系统。
背景技术
程序运行时会调用多个函数。实践中,常需要获知程序调用了哪些函数,以及调用函数的运行流程。
目前,只有部分高级平台基于Addr2line工具能获取到程序运行信息,且最终获取的是程序运行过程中调用的函数的函数名。Addr2line工具是GNU Binutils中的一个工具,GNU Binutils为一整套编程语言工具程式,是一组二进制工具集。在特定的情况下,Addr2line工具可以将指令的地址和可执行映象转换成文件名和函数名。Addr2line工具的安装复杂,使用环境比较局限,不能用于通用的情况。
由以上可见,现有获取程序运行信息的方法比较局限,且只能获取程序运行中调用的函数名;如果能获取程序运行过程中函数调用的图形化流程情况,将更加直观,但目前还没有这方面的技术。
发明内容
本发明提供了一种获取程序运行信息的方法,该方法能够以图形方式直观地获得程序运行信息。
本发明提供了一种获取程序运行信息的系统,该系统能够以图形方式直观地获得程序运行信息。
一种获取程序运行信息的方法,该方法包括:
获取程序生成的地址文件,所述地址文件包含程序运行中调用的各函数的函数地址,并获取程序的MAP文件;
由地址文件中包含的函数地址,从MAP文件中查询对应的函数名;
由地址文件中的函数地址写入顺序确定函数调用顺序,将函数名按照函数调用顺序输入DOT文件,生成调用函数的运行流程图。
一种获取程序运行信息的系统,该系统包括获取单元、查询单元和流程图生成单元;
所述获取单元,用于获取程序生成的地址文件,所述地址文件包含程序运行中调用的各函数的函数地址,传送给所述查询单元和所述流程图生成单元;并获取程序的MAP文件,传送给所述查询单元;
所述查询单元,用于由地址文件中包含的函数地址,从MAP文件中查询对应的函数名,传送给所述流程图生成单元;
所述流程图生成单元,用于由地址文件中的函数地址写入顺序确定函数调用顺序,将函数名按照函数调用顺序输入DOT文件,生成调用函数的运行流程图。
从上述方案可以看出,本发明获取程序生成的地址文件后,结合程序的MAP文件查询出函数名,而后,由地址文件中的函数地址写入顺序确定函数调用顺序,将函数名按照函数调用顺序输入DOT文件,生成调用函数的运行流程图。这样,实现了以图形方式直观地获得程序运行信息;并且,本发明基于MAP文件获得程序运行过程中调用的函数的函数名,而几乎所有系统平台对应的编译器都能生成程序的MAP文件,从而,使本发明方案的应用范围更广泛。
附图说明
图1为本发明获取程序运行信息的方法示意性流程图;
图2为本发明获取程序运行信息的方法流程图实例;
图3为本发明生成的地址文件实例;
图4为依照图3的地址文件生成的运行流程图;
图5为本发明获取程序运行信息的系统结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。
本发明先基于MAP文件获得程序运行过程中调用的函数的函数名,再输入DOT文件,生成调用函数的运行流程图。参见图1,为本发明获取程序运行信息的方法示意性流程图,其包括以下步骤:
步骤101,获取程序生成的地址文件,所述地址文件包含程序运行中调用的各函数的函数地址,并获取程序的MAP文件。
程序运行之前,需获取程序的安装包,对安装包进行安装;具体地,可以从网络侧服务器下载安装包,也可以接收其他网络节点传输的安装包。安装包由编译器生成,编译器是将高级语言编译成机器语言的程序。对于不同的系统平台,需要采用不同的编译器对程序进行编译,以生成能在相应系统平台执行的安装包;例如,对于安卓系统平台,服务器需要采用安卓系统平台对应的编译器对程序进行编译,以生成能在安卓系统平台执行的安装包。而几乎所有系统平台对应的编译器都支持程序编译后生成MAP文件,MAP文件用以保存程序全局符号、源文件和代码行号等信息,其中包括函数地址与函数名之间的映射关系。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210151244.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:电能表平放检测装置
- 下一篇:贝尔多载频TXMA电源检测装置
- 信息记录介质、信息记录方法、信息记录设备、信息再现方法和信息再现设备
- 信息记录装置、信息记录方法、信息记录介质、信息复制装置和信息复制方法
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录装置、信息再现装置、信息记录方法、信息再现方法、信息记录程序、信息再现程序、以及信息记录介质
- 信息记录设备、信息重放设备、信息记录方法、信息重放方法、以及信息记录介质
- 信息存储介质、信息记录方法、信息重放方法、信息记录设备、以及信息重放设备
- 信息存储介质、信息记录方法、信息回放方法、信息记录设备和信息回放设备
- 信息记录介质、信息记录方法、信息记录装置、信息再现方法和信息再现装置
- 信息终端,信息终端的信息呈现方法和信息呈现程序
- 信息创建、信息发送方法及信息创建、信息发送装置