gdb 调试_gdb调试的简单举例

下面举例说明:

代码如下:

#include int main(){int a = 0;for (int i = 0; i < 10; i++)a += i;}

调试的时候过程如下:

(gdb) l

1 #include

2

3 int main()

4 {

5 int a = 0;

6 for (int i = 0; i < 10; i++)

7 a += i;

8 }

(gdb)b 5 ------ - 在第5行设置断电

Breakpoint 1 at 0x80483ba: file a.cpp, line 5.

(gdb)r------ - 执行到断点处停止

Starting program : / a.o

Breakpoint 1, main() at a.cpp : 5

5 int a = 0;

(gdb)watch a------ - 观察a的值,当有变化时,停止

Hardware watchpoint 2: a

(gdb) c------ - 继续执行,当a的值变化时停止

Continuing.

Hardware watchpoint 2 : a

Old value = 0

New value = 1

main() at a.cpp : 6

6 for (int i = 0; i < 10; i++)

(gdb)

Continuing.

Hardware watchpoint 2 : a

Old value = 1

New value = 3

main() at a.cpp : 6

6 for (int i = 0; i < 10; i++)

(gdb)

Continuing.

Hardware watchpoint 2 : a

即,在使用watch时步骤如下:

使用break在要观察的变量所在处设置断点;

使用run执行,直到断点;

使用watch设置观察点;

使用continue观察设置的观察点是否有变化。

8.set variable value = x 动态改变变量值

1,调试中需要修改临时变量的值时,可以使用set命令

语法:

set variable key = value

set var key = value

示例:

(gdb) set variable array[1] = 12

2,另一种更简单的方式,使用print命令修改

语法:

print key = value

8d61a52bd677c77da5e4d5050c4fa835.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值