Linux命令行使用GDB基本调试知道这些就够了

0.下载GDB

apt-get install gdb

1. 编译程序以支持调试

在使用 GDB 调试之前。这可以通过在编译时添加 -g 选项来实现:

g++ -g -o my_program main.cpp

-g 选项会在编译过程中生成调试信息,使 GDB 能够解析代码中的变量、行号等。

2. 启动 GDB

使用以下命令启动 GDB,并加载你的程序:

gdb ./my_program

这将进入 GDB 调试环境,你可以开始进行调试操作。

3. 运行程序

在 GDB 中,你可以使用 run 命令来启动程序:

(gdb) run

如果程序需要命令行参数,可以将它们附加在 run 后面。例如:

(gdb) run arg1 arg2

4. 设置断点

断点允许你在程序运行到特定行时暂停执行。使用 break 命令设置断点:

(gdb) break main

以上命令将在 main 函数的开头设置一个断点。你也可以通过指定行号或文件名来设置断点:

(gdb) break 15
(gdb) break myfile.cpp:20

5. 查看变量

在程序暂停执行时,你可以查看变量的值:

(gdb) print var_name

例如,如果你想查看变量 x 的值,可以使用:

(gdb) print x

你还可以使用 display 命令让 GDB 在每次暂停时自动显示变量的值:

(gdb) display x

6. 单步执行

GDB 提供了多种单步执行的方式:

  • step (或 s): 执行当前行并进入函数内部。
  • next (或 n): 执行当前行,但不进入函数内部。
  • continue (或 c): 继续执行程序,直到遇到下一个断点。

7. 查看当前代码

使用 list 命令可以查看当前执行的代码上下文:

(gdb) list

你也可以指定行号或函数名来查看特定位置的代码:

(gdb) list 10
(gdb) list main

8. 查看调用栈

调用栈可以帮助你了解当前函数是从哪里被调用的。使用 backtrace 命令查看调用栈:

(gdb) backtrace

9. 修改变量值

在调试过程中,你还可以修改变量的值,以观察不同输入对程序执行的影响:

(gdb) set var_name = value

例如,设置 x 为 5:

(gdb) set x = 5

10. 退出 GDB

完成调试后,你可以使用 quit 命令退出 GDB:

(gdb) quit

GDB 会提示你是否要终止正在调试的程序,你可以选择 yn


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值