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

来源:互联网 发布:股市分析软件 编辑:程序博客网 时间:2024/05/17 14:30

直接贴代码:

#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 


原创粉丝点击