首页 > 其他 > 详细

在程序中安排当出现崩溃退出时把当前调用栈通过终端打印出来并定位问题的方法

时间:2020-05-03 22:07:09      阅读:39      评论:0      收藏:0      [点我收藏+]

core

backtrace

 

addr2line

  • backtrace的实现依赖于栈指针(fp寄存器),在gcc编译过程中任何非零的优化等级(-On参数)或加入了栈指针优化参数-fomit-frame-pointer后多将不能正确得到程序栈信息;
  • backtrace_symbols的实现需要符号名称的支持,在gcc编译过程中需要加入-rdynamic参数;
  • 内联函数没有栈帧,它在编译过程中被展开在调用的位置;
  • 尾调用优化(Tail-call Optimization)将复用当前函数栈,而不再生成新的函数栈,这将导致栈信息不能正确被获取。

在程序中安排当出现崩溃退出时把当前调用栈通过终端打印出来并定位问题的方法

原文:https://www.cnblogs.com/hshy/p/12823582.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!