gdb调试的基本操作

1.查看代码:l :依次显示十行代码

(gdb) l
1	#include <stdio.h>                                                                    
2	   #include <string.h>
3	   int main()
4	   {
5	           char a[1000],b[1000];
6	           int i,j,k,l,n;
7	           for(i=0;;i++)
8	           {
9	   
10	          l=0;

2.设置断点 b +数字/函数名

(gdb) b 7
Breakpoint 1 at 0x11c7: file 5.8.c, line 7.

(gdb) break func  
Breakpoint 2 at 0x8048456: file tst.c, line 5.

即在第七行设置断点 在func 函数处设置断点

(gdb) b 10
Breakpoint 2 at 0x11d1: file 5.8.c, line 10.

即可以设置多个断点

3. 查看断点 i b

(gdb) i b
Num     Type           Disp Enb Address            What
1       breakpoint     keep y   0x00000000000011c7 in main at 5.8.c:7
2       breakpoint     keep y   0x00000000000011d1 in main at 5.8.c:10

可以看到我们刚才设置的两个断点

4. 使断点无效 disable +数字

(gdb) disable 1

再次使用i b 查看

(gdb) i b
Num     Type           Disp Enb Address            What
1       breakpoint     keep n   0x00000000000011c7 in main at 5.8.c:7
2       breakpoint     keep y   0x00000000000011d1 in main at 5.8.c:10

我们看到,第一个断点显示n , 即第一个断点无效。

5. 使断点有效 : enable +数字,并查看断点

(gdb) enable 1
(gdb) i b
Num     Type           Disp Enb Address            What
1       breakpoint     keep y   0x00000000000011c7 in main at 5.8.c:7
2       breakpoint     keep y   0x00000000000011d1 in main at 5.8.c:10

我们看出第一个断点重新显示y.

6.删除断点 d+数字

(gdb) d 1
(gdb) i b
Num     Type           Disp Enb Address            What
2       breakpoint     keep y   0x00000000000011d1 in main at 5.8.c:10

我们看到第一个断点直接消失。

7. 用r 运行代码
在设置完一个断点后,按r运行程序,直到该断点

(gdb) r
Starting program: /home/sss/learngit/a.out 

Breakpoint 2, main () at 5.8.c:10
10	          l=0;

直接运行到了第十行

8. 下一行操作 :n;

(gdb) n
11	          while((a[l]=getchar())!='\n')

即到了第11行
继续按n 继续下一步操作

9. 查看某个变量的值: p 或 display

(gdb) p l  或display l
$1 = 1

这里的$1先不用关他,只知道在这里l的值是1 即可。

10. 给变量赋值 p 变量=数字

(gdb) p l=0
$2 = 0

这就成功的将0赋给l

11. 退出调试 :q

(gdb) q
A debugging session is active.

	Inferior 1 [process 9525] will be killed.

Quit anyway? (y or n) 

再输入y即可

猜你喜欢

转载自blog.csdn.net/weixin_45511599/article/details/103551099