此处只是我日常记录的一些命令,详细的请见 100个gdb小技巧
序号 | 命令 | 含义 | 备注 |
---|---|---|---|
1 | gdb --args program param | gdb拉起调试程序, 加入–args 可以指定拉起时的参数 | |
2 | gdb attach pid | 调试正在运行的程序 | |
3 | b functionName / filename:line | 设置断点 | 如果在当前调试的文件中用行号打断点时,不用输入行号 |
4 | info b | 查看断点 | |
5 | d breakNum | 删除断点 | 指定断点号,注意删除后 再打断点,断点号是继续递增的 |
6 | display var | 展示变量值,每次停止的时候都会显示 | 一般用于查看循环体内的变量值,不必每次停止的时候 用p查看 |
7 | gdb program -c coredump | 调试coredump | 用-c参数指定coredump文件 |
8 |
| 条件断点 | |
9 | watch var / watch *(int*)address | 观察点,当值变化时会停下来 | 删除和断点一样,显示的时候也只是type类型不一样 |
10 | info watchpoints | 查看所有观察点 | |
11 | x/nfu addr | 含义为以f 格式打印从addr 开始的n 个长度单元为u 的内存值。参数具体含义如下:a)n:输出单元的个数。 b)f:是输出格式。比如 x 是以16进制形式输出,o 是以8进制形式输出,等等。c)u:标明一个单元的长度。 b 是一个byte ,h 是两个byte (halfword),w 是四个byte (word),g 是八个byte (giant word)。 | |