原文链接

  • http://www.unknownroad.com/rtfm/gdbtut/gdbuse.html

    1. 如何使用 gdb?

    想要使用 gdb 工具进行调试,编译代码时必须开启 debugger 模式。为了开启 debugger 模式编译的时候要带上参数 -g

    1.1 编译时开启 debug 模式

    以编译 c 语言为例
    1. prompt > gcc -g program.c -o programname
    NOTE: If you have a larger program with several files, each must be compiled with the -g flag, and it must also be set when you link.
    当程序很大时,必须每个文件都用 -g 编译。

    1.2 在 debug 模式下运行程序

    这个命令就会进入到 gdb 的shell。
    1. prompt> gdb programname(编译出来的可以执行文件名)
    run 命令可以开始执行程序,run 命令也可以接受参数。
  1. (gdb) run arg1 "arg2" ...

1.3 如何重启程序

使用 kill 命令杀掉程序后,就可以再使用 run 重启程序。

  1. (gdb) kill
  2. Kill the program being debugged? (y or n) y
  3. (gdb) run ..

1.4 如何退出 gdb 的debug模式?

使用 quit 命令。

  1. (gdb) quit
  2. The program is running. Exit anyway? (y or n) y
  3. prompt >

1.5 查看 gdb 的帮助命令

  1. (gdb) help

显示出来的都是一级命令,go 和这个比较像:

  • aliaes, 其他命令的别名
  • breakpoints,设置断点
  • data,检查数据
  • files,指定并检查文件
  • internals(内部的),内部命令
  • obscure (无名的), 隐式命令
  • running,运行程序
  • stack, 栈
  • status,状态查询
  • support,支持的设备
  • tracepoints, 追踪程序执行不停止程序
  • user-define,自定义命令。

使用 help 一级命令 获取对应的命令帮助详情;
使用 help all 获取所有命令。
使用 apropos [word] 来对 [word] 相关的命令进行模糊搜索。