在程序中打印调用堆栈
来源:互联网 发布:荣耀盒子无法连接网络 编辑:程序博客网 时间:2024/05/05 14:40
一直以来都没有花太多精力放在学习调试方面,主要还是平时调试的机会相对较少,一般情况下,用strace、gdb、以及通过打印log基本上就能解决问题了,还有就是,与其花精力去提高调试技能,还不如在设计、防御式编程和单元测试等能力去提高,以及提高自已编码的质量,减少BUG的出现或者缩少BUG的范围。
但是,有时使用调试工具并不是为了查找BUG,在阅读和分析源代码时也非常有用,下面的代码演示如何在自已的程序中打印调用堆栈,有时你想知道某一个函数在某一时刻被哪一个函数调用了,只要在这个函数中打印一下调用堆栈即可,在一些不方便使用调试工具的场合(例如程序在开发板上运行时)还是比较有用的。
下面的示例代码我从网络上找来的,我去掉了注释,并在上面加上了我自已的注释,可以通过看注释来了解是怎么实现的,注意在用gcc编译代码时,要加上选项-rdynamic和-g:
- 在程序中打印调用堆栈
- 在程序中打印调用堆栈
- 在程序中打印出程序堆栈的信息
- 在Linux中打印函数调用堆栈(一)
- android如何在C++中打印调用堆栈
- Linux程序异常退出打印调用堆栈
- android打印程序调用堆栈信息
- Linux程序异常退出打印调用堆栈
- C++ 程序崩溃调用堆栈打印
- 在linux代码中打印函数调用的堆栈的方法
- 在linux代码中打印函数调用的堆栈的方法
- 在linux kernel中打印函数调用的堆栈的方法
- VB在程序中调用Web实现打印
- 在Java程序中调用C函数--打印"HelloWorld"
- 在C/C++程序中打印当前函数调用栈
- 在Java程序中调用C函数--打印"HelloWorld"
- 在C/C++程序中打印当前函数调用栈
- 在C/C++程序中打印当前函数调用栈
- BLOG上传图片
- 用Glade和libGlade设计Gtk+图形界面
- 北京警方捣毁组织卖y团伙抓获150余人
- ORACLE随机排序
- 广电封杀美剧网络传播 字幕组低调中牟利蜕变
- 在程序中打印调用堆栈
- VC6_0中友元函数无法访问类私有成员的解决办法---VC6_0的经典bug(转)
- 佛教
- 奥巴马任命美政府新首席技术官 力推云计算
- C++ 预编译指令
- 百度任命李一男担任首席技术官
- VMware首席技术官 新战略重点是管理
- 让IIS支持ASPX,添加Web服务扩展的方法,没法调试的解决办法
- UL和LI的用法