DGB 主要功能 :
设置断点;使程序在指定的代码行暂停执行;单步执行便于调试;查看程序中变量值的变化;动态改变程序的执行环境;
常用调试命令参数
调试开始 执行 gdb [exefilename] 进入gdb调试程序。其中exefilename要调试的可执行文件名称。
help: 帮助命令
run(r) #重新开始运行文件(run-text:加载文本文件,run-bin 加载二进制文件)
start #单步执行,运行程序,停在第一行执行语句中。
list(l) #查看源代码(list-n 从第n行开始查看代码,list+ 函数名:查看具体函数)
set #设置变量值
next(n) #单步调试(逐渐,函数直接执行)
step (s) #单步调试 跳入自定义函数内部执行
backtrace(bt) #查看函数的调用的栈帧和层级关系
frame(f) #切换函数的栈帧
info(i) 查看函数内部局部变量的数值
finish 结束当前函数,返回到函数调用点,也能跳出for循环
continue(c) 继续运行,直接到下一个断点
print(p) #打印值以及地址
quit (q) 退出gdb
break+num #在num行设置断点
info breakpoints #查看当前设置的所有断点
delete breakpoints num 删除第num个断点
display 追踪查看具体的变量值
undispaly 取消追踪观察变量
watch 被设置观察点的变量发生修改时,打印显示
i watch 显示观察点
enable breakpoints 启用断点
disablle breakpoints 禁用断点
编译程序时,加上-g 之后才能gdb调试,
打印 vector所有变量内容:
p *(word_pieces._M_impl._M_start)@word_pieces.size()
c++中外表某一元素与vector元素比较