| 注意 | 在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 |