当前位置: 首页 > news >正文

衍艺网站建设汽车租赁网站建设

衍艺网站建设,汽车租赁网站建设,wordpress添加页头代码,站长工具果冻传媒glibc提供了backtrace这个库函数#xff0c;可以用来打印call stack。比如我们可以在程序中注册常见的一些signal#xff0c;比如SIGSEGMENT, SIGPIPE#xff0c;然后在这些信号的回调函数中#xff0c;利用backtrace打印出call stack#xff0c;这样debug就非常的方便。 …glibc提供了backtrace这个库函数可以用来打印call stack。比如我们可以在程序中注册常见的一些signal比如SIGSEGMENT, SIGPIPE然后在这些信号的回调函数中利用backtrace打印出call stack这样debug就非常的方便。  backtrace的使用很简单使用man手册中的Example代码即可例如 1 #include execinfo.h 2 #include stdio.h3 #include string.h4 #include stdlib.h5 #include errno.h6 7 #define SIZE 1008 9 void dump_stack() 10 { 11 int btnum 0; 12 void *btbuf[SIZE]; 13 char **btstrings NULL; 14 int i; 15 16 /* Get backtrace */ 17 btnum backtrace(btbuf, SIZE); 18 btstrings backtrace_symbols(btbuf, btnum); 19 if (btstrings NULL) { 20 printf(Backtrace failed: %d:%s\n, errno, strerror(errno)); 21 } else { 22 printf(Backtraces, total %d items\n, btnum); 23 for (i 0; i btnum; i) 24 printf(%s\n, btstrings[i]); 25 26 free(btstrings); 27 } 28 } 29 30 void start_working() 31 { 32 printf(Start working...\n); 33 dump_stack(); 34 } 35 36 int main() 37 { 38 printf(Start backtracing...\n); 39 start_working(); 40 return 0; 41 }   首先用backtrace最多生成100层的call stack。然后用backtrace_symbols将backtrace返回的一堆地址翻译成函数名称。backtrace的返回值是具体生成了多少层的call stack填充的btbuf是一个void *的数组里面每个element都是一个void *其实就是一个地址。  backtrace_symbols生成的字符串都是malloc出来的但是不要最后一个一个的free因为backtrace_symbols是根据backtrace给出的call stack层数一次性的malloc出来一块内存来存放结果字符串的所以像上面代码一样只需要在最后free backtrace_symbols的返回指针就OK了。这一点backtrace的manual中也是特别提到的。 此外需要注意的是使用backtrace来获取调用栈信息在编译的时候需要加入-rdynamic这个option是传递给linker的linker会将symbol放到.dydym table中这样backtrace_symbols才能获取到地址对应的symbol。所以即使是使用了-g来编译程序如果不使用-rdynamic的话backtrace_symbols也找不到地址对应的symbol。这是backtrace系列函数的一个缺陷。不过有了地址也算是一个很大帮助了毕竟可以使用gdb来找到对应的symbol。 转载于:https://www.cnblogs.com/super119/archive/2010/12/09/1901468.html
http://www.pierceye.com/news/990367/

相关文章:

  • 门户网站网页设计规范willin kan 让你的wordpress飞起来
  • 建设银行广州招聘网站wordpress dz
  • 如何介绍自己做的网站东莞回收网站设计
  • 北京驾校网站建设厦门网页设计培训班
  • 网络公司给我做网站我有没有源代码版权吗我怎么做个人网站
  • 免费建站网站一站式做网站需要懂那些软件
  • 做新网站怎样提交360寻找销售团队外包
  • 重庆市建设网站wordpress 新闻模版
  • 国内网站建设推荐手工做的网站
  • 深圳罗湖做网站的公司网站建设与管理案例教程第三版课后答案
  • 有关网站招标商务标书怎么做做终端客户网站
  • c 网站做微信收款功能青岛网站建设定制
  • 贵州安顺建设主管部门网站网站全程设计技术
  • 公司宣传网站建设企业网站建设与实现的论文
  • 连云港网站建设推广网站的推广优化
  • 手机商城网站制作公司网站版面设计方案
  • 网站开发制作熊掌号网站推广方法主要有什么
  • 怎么查看网站的建设时间提高企业网站的访问率
  • 宁德做网站的公司长沙网站建设 芙蓉区
  • 兴平市住房和城乡建设局门户网站会员管理网站建设
  • 做seo的网站是怎么样的上饶小程序开发公司
  • 网站硬件需求建网站网站
  • 网站主机域名合肥室内装修设计培训
  • 上海网站优化网站对企业的作用
  • 哪些园林网站可以做外链网址怎么注册
  • 做网站域名服务器wordpress 互动性
  • 微信网站欣赏好看的旅游网站模版
  • 甘肃省嘉峪关建设局网站wordpress android下载
  • wordpress 调用discuzseo营销是什么
  • 广州市律师网站建设怎么样建行网站会员注册用户名