写在前面
本文主要介绍gdb
调试的一些选项,这些东西网上都能搜到,至于我为什么要写,主要我只会这些 (视频里只讲了这些) ,多了我也没看。
gdb调试
大前提:程序是你自己写的。用于调试一些逻辑错误
基础指令
-g
:使用该参数编译可以执行文件,得到调试表。gdb ./a.out
list
:list 1
列出源码。根据源码指定 行号设置断点。
b
:
b 20` 在20行位置设置断点。run/r
:运行程序n/next
: 下一条指令(会越过函数)s/step
: 下一条指令(会进入函数)p/print
:p i
查看变量的值。continue
:继续执行断点后续指令。finish
:结束当前函数调用。quit
:退出gdb当前调试。
其他指令
run
:使用run查找段错误出现位置。set args
:设置main函数命令行参数 (在 start、run 之前)
run 字串1 字串2 ...: 设置main函数命令行参数info b
: 查看断点信息表
b 20 if i = 5
:设置条件断点。ptype
:查看变量类型。bt
:列出当前程序正存活着的栈帧。frame
:根据栈帧编号,切换栈帧。display
:设置跟踪变量undisplay
:取消设置跟踪变量。 使用跟踪变量的编号。