- 开启core dump记录
- 使用ulimit -a,查看core file size,若为unlimited说明已经打开
- 否则使用下面的指令打开
ulimit -c unlimited
- 安装gdb
apt-get install gdb
- 模拟段错误
char *p = 0; *p = 0;
- 编译
- 加-g参数,生成debug信息
- 如:g++ Hello.cpp -g
- 不能有-s参数
- 若不加,会提示
- 离线运行调试
- gdb a.out core
- a.out:出错的程序
- core:自动生成的dump文件
- 调试信息
- 退出gdb查看:输入 quit
- 查看错误栈信息:输入where
- core dump文件找不到
- 修改默认存储位置
- cat /proc/sys/kernel/core_pattern 查看文件名及位置
- 修改路径和名称
echo "/home/core-%e-%p-%t" > /proc/sys/kernel/core_pattern
- coredump文件大小为0
- 执行程序的目录移动到非远程挂载的目录下面重新执行
- 如果gdb和core不在同一个linux系统生成的,查看不了
- Amba CV25开发板的gdb文件
- /usr/local/linaro-aarch64-2020.09-gcc10.2-linux5.4/aarch64-linux-gnu/debug-root/usr/bin/gdb
- 复制到开发板或共享目录
Linux使用gdb调试段错误
于 2020-12-03 11:17:23 首次发布