gdb及其core调试

  1. gdb快速入门
    (1) 编译时需加 -g参数,gdb + app进入调试 r或run运行,退出q
    (2) 启动, start停在main函数
    (3) n或next下一条指令
    (4) s或step下一条指令,可以进入函数内部(非库函数)
    (5) 运行前指定参数 set args 1 2(也可用于改变变量值) 或直接 run 1 2
    (6) 断点b或break, c或continue下一个断点,d删除断点,条件断点+if
    (7) p或print打印变量值,ptype打印变量类型,list查看源码
    (8) display追踪变量 undisplay取消
  • 详细规则gcc/gdb基础
  1. core文件调试
    先设置 ulimit -c unlimited 查看 gdb app core 后 where
    cat /proc/sys/kernel/core_pattern 写入 core-%e-%t则生成指定文件名
    (1) ulimit -c unlimited 设置core大小为无限
    (2) gdb servertest core.6337
    (3) 输入where命令
  1. core文件名格式
    (1) vim /proc/sys/kernel/core_pattern 权限问题,写不进去
    (2) 用 echo “core-%e-%t” > /proc/sys/kernel/core_pattern 其中%e为程序名称 %t为时间戳

    推荐阅读