无氧森林

和敬清寂

  • 博客访问: 143823
  • 博文数量: 61
  • 博客积分: 26
  • 博客等级: 民兵
  • 技术积分: 1124
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-23 14:46
个人简介

linux --- 一切皆文件

文章分类

全部博文(61)

文章存档

2017年(3)

2016年(11)

2015年(1)

2014年(2)

2013年(34)

2012年(10)

微信关注

IT168企业级官微



微信号:IT168qiye



系统架构师大会



微信号:SACC2013

订阅
热词专题
Linux C调用栈打印 2016-09-12 20:45:07

分类: LINUX


点击(此处)折叠或打开

  1. #include <execinfo.h>
  2. int backtrace(void **buffer, int size);
  3. char **backtrace_symbols(void *const *buffer, int size);

点击(此处)折叠或打开

  1. void print_stack(void)
  2. {
  3.     int size = 128;
  4.     void * array[128];
  5.     int stack_num = backtrace(array, size);
  6.     char ** stacktrace = backtrace_symbols(array, stack_num);
  7.     int i = 0;
  8.     for(i = 0; i < stack_num; i ++) {
  9.         printf("%s %d: %s\n", __func__, __LINE__, stacktrace[i]);
  10.     }

  11.     return ;
  12. }
编译时,添加-rdynamic可显示函数名。

点击(此处)折叠或打开

  1. cc -rdynamic prog.c -o prog


阅读(157) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册