Linux使用gdb调试段错误

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

你可能感兴趣的:(Linux,linux,gdb,c++,segmentfault)