gdb(GNU Debugger)是一款命令行调试工具,主要用于定位和修复程序中的错误。
它支持设置断点、单步执行代码、查看变量值、检查内存状态等功能,能帮助开发者追踪程序执行流程,找到崩溃、逻辑错误等问题,广泛适用于 C、C++ 等语言的程序调试。
1.进入 gdb
我们创建写好的c语言文件或者c++文件 要通过gcc\g++ 变成可以执行程序
才能呗gdb调试
gdb是debug模式
但是gcc和g++编译器默认生成的可执行文件是release文件
因此我们在使用gcc 生成可执行文件要加上 -g
这样我们的.out文件才可以被调试

gdb 可执行文件名 --进入gdb

2.l(list)
这个地l和list可以混用是等价的

3.b(break)

4.i b(info breakpoint)
info break和info breakpoint是完全等价的

5.d breakpoint(delete breakpoints)
这个地方breakpoint不可以缩写成b
因为这个地方b除了breakpoint 还有可能是bookpoints
容易产生歧义

6.dis b(disable breakpoints)
和delet breakpoint一样 如果后面不加列 就是代表禁用所有断点

7.en b(enable breakpoints)

8.r(run)

9.!clear
10.n(next)

11.s(step)
s或step:进入函数调用
等同于vis中的F11
不是函数的时候和n(next)没什么区别

12.finish


13.until

14.display

15.undisplay

16.set var

17.q(quit)

18.p(print)
p x --打印变量的值
p a + b --打印表达式的值
(2)通过表达式修改变量值
p x = 20
(3)调用函数
p add(2, 3)

19.c(continue)

20.bt(breaktrace)

#0、#1…:栈帧编号(#0 是当前最内层函数,编号越大越接近程序入口)。
add(a=2,b=3):函数名 + 参数值(显示当前层函数及传入的参数)。
at example.c:6:代码位置(函数所在的文件名和行号)。
21.ifo locals

1137

被折叠的 条评论
为什么被折叠?



