背景
- 在ubuntu 14.04系统中临时编译了LaneViewer(项目中基于QGLViewer编写的一个GUI界面),但在ubuntu 14.04系统中无法正常运行,启动后闪退,想到了使用
core dump文件进行调试,定位问题所在; - 项目中所负责的某模块在iECU中运行时会出现
defunct(挂掉)问题,想到了使用core dump文件进行调试,定位问题所在。
解决
- 临时开启
core dump,取消core文件大小限制(仅对当前终端有效)1
ulimit -c unlimited
- 运行目标程序,若非正常退出,会在程序所在目录下生成对应core文件
- 使用
gdb调试core文件1
gdb ./LaneViewer core
- 进入
gdb调试界面后,输入r并回车,可使程序运行至断点位置,输入bt并回车,可显示程序运行时的调用堆栈,bt代表backtrace。
参考
- 利用Core Dump调试程序