如何在程序异常退出前输出当前进程的堆栈信息 Backtraces
2013-11-27 23:49
507 查看
http://www.gnu.org/software/libc/manual/html_node/Backtraces.html#Backtraces
http://www.gnu.org/software/libc/manual/html_node/Termination-in-Handler.html#Termination-in-Handler
http://www.cons.org/cracauer/sigint.html
用ulimit打开系统的core dump
用 gdb 运行的时候如果异常可以用 bt 命令查看各种各样的信息,另外用
strace 来运行你的程序可以检测所有的系统调用,尽管不是查看堆栈,但在某些时候也有助于分析错误 。
在
Glibc 的支持下,有这个方案:
Shell代码
1. 注册一个异常退出时的函数,所有的信息输出工作都在这个函数里完成。
2. 调用 backtrace 和 backtrace_symbols 来获取消息,或调用 backtrace_symbols_fd 来输出消息。
3. 编译源代码时,gcc 加上 -rdynamic 选项。
http://www.gnu.org/software/libc/manual/html_node/Termination-in-Handler.html#Termination-in-Handler
http://www.cons.org/cracauer/sigint.html
用ulimit打开系统的core dump
用 gdb 运行的时候如果异常可以用 bt 命令查看各种各样的信息,另外用
strace 来运行你的程序可以检测所有的系统调用,尽管不是查看堆栈,但在某些时候也有助于分析错误 。
在
Glibc 的支持下,有这个方案:
Shell代码
1. 注册一个异常退出时的函数,所有的信息输出工作都在这个函数里完成。
2. 调用 backtrace 和 backtrace_symbols 来获取消息,或调用 backtrace_symbols_fd 来输出消息。
3. 编译源代码时,gcc 加上 -rdynamic 选项。
使用Ptrace跟踪进程收到的异常信号(信号SIGTRAP是通过traceme后wait得到的)
相关文章推荐
- Android笔记 - 如何避免ActivityNotFound异常,查看Activity堆栈信息,获取进程名
- backtrace-----打印进程异常退出时的堆栈信息
- backtrace-----打印进程异常退出时的堆栈信息
- java 遇到未知异常使程序崩溃,输出jvm的dump崩溃信息到指定文件,然后杀死此进程
- backtrace-----打印进程异常退出时的堆栈信息
- backtrace-----打印进程异常退出时的堆栈信息
- 如何用Jstack把java进程中的堆栈信息输出到文件
- C++抛异常时如何获取异常时的堆栈调用信息
- 用C#输出数据到excel的最简单的例子--and--C#如何退出excel的进程!
- 在Linux下如何在程序中获得当前调用栈信息
- .net webservice 因 URL 意外地以“/GetAllArticle”结束,请求格式无法识别。 说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该
- 输出程序Crash时的详细堆栈信息(四)
- 如何让Delphi的程序在SQL Server控制台中的进程信息显示应用程序的名字?
- 日志如何打印异常堆栈信息。
- 如何得到当前程序执行的堆栈
- 如何关闭Windows程序异常退出时的提示信息对话框
- MFC程序如何使用printf输出调试信息
- Android-如何获得当前正在运行的activity和进程的相关信息
- 杀死当前进程,完全退出程序
- Liunix 如何命令行退出当前进程?