1. 首页
  2. 数据库
  3. 其它
  4. Linux下追踪函数调用打印栈帧

Linux下追踪函数调用打印栈帧

上传者: 2021-01-10 00:59:25上传 PDF文件 44.28KB 热度 19次
事情的起因是这样的,之前同事的代码有一个内存池出现了没有回收的情况。也是是Pop出来的对象没有Push回去,情况很难复现,所以在Pop里的打印日志,跟踪是谁调用了它,我想在GDB调试里可以追踪调用的栈帧,那也一定有方法实现。首先上网搜索了一下,并没有结果!还好代码量不是很多,只能用笨的方法,在每个调用Pop的地方,传参,把调用的文件,行号作为字符串传进去,在日志里打印!忙活完了,总感觉一定是有方法可以实现查看调用栈帧的,于是在QQ群里的问了下,果然有这方面经验的同学给出了答案! 主要是通过backtrace返回调用的栈帧,然后通过backtrace_symbols把地址转换为字符串。后,
用户评论