gdb
还是学习一下 gdb 怎么用。
编译的时候加 -g,启动 gdb 调试 gdb -tui std,这里 -tui 是图形化界面。注意图形化界面用终端输入输出(标准错误流也不行)之后会乱行,所以必须加上文件读写。
| 命令 | 缩写 | 作用 |
|---|---|---|
| break | b | 设置断点 |
| info | i | 描述程序状态,比如: i break 显示有哪些断点 |
| delete | d | 删除断点,一般先使用 info 命令查看断点,之后使用 d + 断点号删除 |
| run | r | 开始运行程序 |
| until + 行号 | 运行到某一行停止 | |
| display | disp | 跟踪查看某个变量,每次停下来都显示其值 |
| undisplay | 取消跟踪 | |
| p | 打印内部变量值 | |
| watch | 监视变量值新旧的变化 | |
| step | 执行下一条语句,如果该语句为函数调用,则进入函数执行第一条语句 | |
| next | 执行下一条语句,如果该语句为函数调用,不会进入函数内部执行(即不会一步步地调试函数内部语句) | |
| continue | c | 继续程序的运行,直到遇到下一个断点 |
| finish | 如果进入了某个函数,返回到调用调用它的函数,jump out | |
| set var name = v | 设置变量的值 | |
| start | st | 开始执行程序,在main函数中的第一条语句前停下 |
| quit | q | 离开gdb |
| kill | k | 终止正在调试的程序 |
浙公网安备 33010602011771号