【技术实现步骤摘要】
本专利技术涉及计算4几
,尤其涉及,具体地说,是涉及一种linux 环境下快速转换调用堆栈地址的系统及方法。
技术介绍
在Linux环境下, 一般查看函数运行时堆栈的方法是使用GDB之类的 外部调试器。但是,有些时候为了分析程序的BUG,在需要的时候打印出 函数的调用堆栈信息是非常有用的。;见有^支术通常调用backtrace函凄t和backtrace—symbols函凄t,来获耳又函 数调用堆栈信息,每一层堆栈信息的格式如下所示/应用程序名。具体的例子如下/kernel 。由此可以看出,获取的其实只是函数地址,并不是具体的函数名称和源 代码行数。想要获取更详细的信息,还必须执行终端命令addr21ine来进行 转换addr21ine -f 0x804869c -e kernel > filel 。该命令把指定应用程序(kernel)对应函数地址的具体函数信息保存到 file 1文件中,保存信息的格式如下例所示os—nmlloc/root/src/pub/err.c:69。因此,现有技术在Linux环境下获取函数调用堆栈的流程,如图1所示, 主要包括 ...
【技术保护点】
一种linux环境下快速转换调用堆栈地址的方法,其特征在于,包括: 建立一包含有若干公共线程的公共线程池; 需要保存当前堆栈信息时,获取函数调用堆栈地址信息; 从每一层的堆栈地址信息中解析出函数地址数组,将所述函数地址数组与当前堆栈相 关信息组合成一个结构体对象并缓存到一缓存队列中; 遍历所述缓存队列中的每个节点,用所述公共线程池并行处理每个节点的每层函数地址的转换操作,得到转换结果。
【技术特征摘要】
【专利技术属性】
技术研发人员:龙涛,
申请(专利权)人:中兴通讯股份有限公司,
类型:发明
国别省市:94[中国|深圳]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。