前言
学习工作中遇到程序 Crash 需要快速定位问题, 以下是经验总结。
保留 coredump 文件
- 用 limit 命令查看 coredumpsize 大小是否为 0,一般 Linux 系统下可能是 0,则无法保留 coredump 文件
- 用 unlimit 命令改变 coredumpsize 大小, 让程序跑可以保留 coredump 文件。
查看线程出错位置
- 运行 :gdb coredump* 命令
- 执行 thread apply all bt 可以看到线程准确的出错位置
- 在某个线程的 stack 里会显示 signal handler called 这是真正的出错的地方
file core*
gdb program core*