注意 | 在gdb的命令中都可使用缩略形式的命令,如“l”代表“list”,“b”代表“breakpoint”,“p”代表“print”等,读者也可使用“help”命令查看帮助信息。 |
小技巧 | gdb在显示变量值时都会在对应值之前加上“$N”标记,它是当前变量值的引用标记,所以以后若想再次引用此变量就可以直接写作“$N”,而无需写冗长的变量名。 |
小知识 | 在gdb中,程序的运行状态有“运行”、“暂停”和“停止”3种,其中“暂停”状态为程序遇到了断点或观察点之类的,程序暂时停止运行,而此时函数的地址、函数参数、函数内的局部变量都会被压入“栈”(Stack)中。故在这种状态下可以查看函数的变量值等各种属性。但在函数处于“停止”状态之后,“栈”就会自动撤消,它也就无法查看各种信息了。 |
命 令 格 式 | 含 义 |
set args运行时的参数 | 指定运行时参数,如set args 2 |
show args | 查看设置好的运行参数 |
Path dir | 设定程序的运行路径 |
show paths | 查看程序的运行路径 |
set environment var [=value] | 设置环境变量 |
show environment [var] | 查看环境变量 |
cd dir | 进入dir目录,相当于shell中的cd命令 |
Pwd | 显示当前工作目录 |
shell command | 运行shell的command命令 |
命 令 格 式 | 含 义 |
Info b | 查看所设断点 |
break [文件名:]行号或函数名 <条件表达式> | 设置断点 |
tbreak [文件名:]行号或函数名 <条件表达式> | 设置临时断点,到达后被自动删除 |
delete [断点号] | 删除指定断点,其断点号为“info b”中的第一栏。若缺省断点号则删除所有断点 |
disable [断点号] | 停止指定断点,使用“info b”仍能查看此断点。同delete一样,若缺省断点号则停止所有断点 |
enable [断点号] | 激活指定断点,即激活被disable停止的断点 |
condition [断点号] <条件表达式> | 修改对应断点的条件 |
ignore [断点号]<num> | 在程序执行中,忽略对应断点num次 |
Step | 单步恢复程序运行,且进入函数调用 |
Next | 单步恢复程序运行,但不进入函数调用 |
Finish | 运行程序,直到当前函数完成返回 |
C | 继续执行函数,直到函数结束或遇到新的断点 |
命 令 格 式 | 含 义 |
list <行号>|<函数名> | 查看指定位置代码 |
file [文件名] | 加载指定文件 |
forward-search 正则表达式 | 源代码的前向搜索 |
reverse-search 正则表达式 | 源代码的后向搜索 |
dir DIR | 将路径DIR添加到源文件搜索的路径的开头 |
show directories | 显示源文件的当前搜索路径 |
info line | 显示加载到gdb内存中的代码 |
命 令 格 式 | 含 义 |
print 表达式|变量 | 查看程序运行时对应表达式和变量的值 |
x <n/f/u> | 查看内存变量内容。其中n为整数表示显示内存的长度,f表示显示的格式,u表示从当前地址往后请求显示的字节数 |
display 表达式 | 设定在单步运行或其他情况中,自动显示的对应表达式的内容 |
backtrace | 查看当前栈的情况,即可以查到哪些被调用的函数尚未返回 |
注意 | gdb使用时的注意点: · 在gcc编译选项中一定要加入“-g”。 · 只有在代码处于“运行”或“暂停”状态时才能查看变量值。 · 设置断点后程序在指定行之前停止。 |
欢迎光临 DIY编程器网 (http://diybcq.com./) | Powered by Discuz! X3.2 |