0%

Linux中使用core dump进行程序调试

背景

  • 在ubuntu 14.04系统中临时编译了LaneViewer(项目中基于QGLViewer编写的一个GUI界面),但在ubuntu 14.04系统中无法正常运行,启动后闪退,想到了使用core dump文件进行调试,定位问题所在;
  • 项目中所负责的某模块在iECU中运行时会出现defunct(挂掉)问题,想到了使用core dump文件进行调试,定位问题所在。

解决

  1. 临时开启core dump,取消core文件大小限制(仅对当前终端有效)
    1
    ulimit -c unlimited
  2. 运行目标程序,若非正常退出,会在程序所在目录下生成对应core文件
  3. 使用gdb调试core文件
    1
    gdb ./LaneViewer core
  4. 进入gdb调试界面后,输入r并回车,可使程序运行至断点位置,输入bt并回车,可显示程序运行时的调用堆栈,bt代表backtrace

参考

  1. 利用Core Dump调试程序

Thank you for your donate!