回顾
静态库安装指令
sudo yum install -y glibc-static
sudo yum install -y libstdc++-static
Linux调试器:gdb
debug
->添加调试信息
release
->取消调试信息
gcc/g++
默认是release
,debug
:-g
1. gdb的基本命令
l(list)
10
main
code.c:1 指定文件行
r
运行(VS快捷键 F5
)
b(break)
添加断点,d
删除断点
10 指定行号
main 函数开头
disable/enable 编号
禁用/启用对应断点
info b
查看当前所有断点信息
n(next)
单步执行,不进入函数内部(VS调试快捷键 F10
)
s(step)
单步执行,进入函数内部(VS调试快捷键 F11
)
display 变量
常显示
undisplay 编号
取消常显示
p 变量
在当前状态查看变量对应值(表达式也可以查看)
info locals
相当于VS的自动窗口,运行完显示main
函数中的临时变量值
2. gbd调试的特定技巧
调试的本质是为了找到问题,调试工具起协助作用
快速定位问题:设置断点 + finish + until + c
(适用于对大的代码块进行debug
)
until 12
跳出函数体,直接运行到第12行
c(continue)
从一个断点直接运行到下一个断点
设置函数所在行位置的断点后,可以使用 finish
以函数体为整个单位运行
watch 变量
监视变量值的改变 Old value -> New value
set var
预修订,现场把出错的变量修改其值验证结果,如set var flag = -1
添加条件断点:
- 新增断点
b 11 if i==10
(stop only if i == 10)
使用finish
也不会走完,会在该条件满足时触发一次 - 给已有断点追加条件
condition 11 i==10
注意中间没有if
关键字