backtrace 调试 代码执行的路径(调用栈)

原创 2017年05月21日 22:01:10

直接贴代码:

#include <execinfo.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
  
void myfunc3(void)
{
    int j, nptrs;
    #define SIZE 100
    void *buffer[100];
    char **strings;
  
    nptrs = backtrace(buffer, SIZE);
    printf("backtrace() returned %d addresses\n", nptrs);
  
    backtrace_symbols_fd(buffer, nptrs, STDOUT_FILENO);
}
  
void myfunc(void)
{
    myfunc3();
}
  
int main(int argc, char *argv[])
{
    myfunc();
    return 0;
}



 程序运行结果:
[home@root ~]$ g++ -rdynamic t.cpp -o t  

这里必须的参数是 -rdynamic 


相关文章推荐

玩转ptrace(利用ptrace下断、单步调试、修改代码执行、代码注入等)

下面是转帖的内容,写的很详细。但是不同的linux发行版中头文件的路径和名称并不相同。如在某些发行版中就不存在,其中定义的变量出现在和中。 ===========================...

CCNx协议安装和代码执行策略

  • 2012年11月16日 21:10
  • 41KB
  • 下载

U-BOOT代码执行分析

  • 2010年07月25日 20:36
  • 34KB
  • 下载

打印函数调用栈----backtrace原理简单实现

backtrace函数是callstack调试器的基本功能之一,利用此功能,可以看到各级函数的调用关系。在gdb中,这一功能被称为backtrace,输入bt命令就可以看到当前函数的callstack...
  • hoi0714
  • hoi0714
  • 2012年06月13日 08:52
  • 6192

ASP.NET提高代码执行效率

  • 2011年04月28日 14:29
  • 36KB
  • 下载

systemtap函数调用栈信息不齐的原因和解决方法 :print_backtrace

http://blog.yufeng.info/archives/1229  本文链接地址: systemtap函数调用栈信息不齐的原因和解决方法 有时候在看系统代码的...
  • scdxmoe
  • scdxmoe
  • 2014年10月08日 14:47
  • 840

统计代码执行时间对象

  • 2017年03月06日 14:52
  • 1KB
  • 下载

提高PHP代码执行效率小结

1、如果能将类的方法定义成 static,就尽量定义成 static,它的速度会提升将近4倍。2、$row[‘id’] 的速度是 $row[id] 的7倍。3、echo 比 print 快,并且使用 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:backtrace 调试 代码执行的路径(调用栈)
举报原因:
原因补充:

(最多只允许输入30个字)