主页 > 电脑硬件  > 

Linux的调试工具-gdb(超详细)

Linux的调试工具-gdb(超详细)

Linux的调试工具 - gdb 1. 背景2. 开始使用指令的使用都用下面这个C语言简单小代码来进行演示:1. list或l 行号:显示文件源代码,接着上次的位置往下列,每次列10行。2. list或l 函数名:列出某个函数的源代码。3. r或run: 运行程序。4. break或b 行号:在某一行设置断点5. n或next:单条执行(类似vs中的F10)6. s或step:进入函数调用(类似vs中的F11)7. break 函数名:在某个函数开头设置断点8. info break或info b:查看断点信息。9. finish:执行到当前函数返回,然后挺下来等待命令10. p 变量:打印变量值。11. continue或c:从当前位置开始连续而非单步执行程序12. run或r:从开始连续而非单步执行程序13. delete breakpoints:删除所有断点14. delete breakpoints n:删除序号为n的断点15. disable breakpoints:禁用断点16. enable breakpoints:启用断点17. display 变量名:跟踪查看一个变量,每次停下来都显示它的值18. undisplay:取消对先前设置的那些变量的跟踪19. until X(行号):跳至X行20. breaktrace或bt:查看各级函数调用及参数21. q或quit:退出gdb

1. 背景 程序的发布方式有两种,debug模式和release模式Linux gcc/g++出来的二进制程序,默认是release模式要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项,发布成debug模式 2. 开始使用 指令的使用都用下面这个C语言简单小代码来进行演示: 1 #include <stdio.h> 2 3 int SumAdd(int x) 4 { 5 int i=1; 6 int sum=0; 7 for(i=1;i<=x;i++) 8 { 9 sum+=i; 10 } 11 return sum; 12 } 13 14 int main() 15 { 16 printf("%d \n",SumAdd(100)); 17 return 0; 18 }
1. list或l 行号:显示文件源代码,接着上次的位置往下列,每次列10行。 例:l 0


2. list或l 函数名:列出某个函数的源代码。 例:l SumAdd


3. r或run: 运行程序。

注: 如果没有断点,程序将运行到底

例:r


4. break或b 行号:在某一行设置断点 例:b 3


5. n或next:单条执行(类似vs中的F10)

注: 单条执行需要在调试启动的情况下进行,需要先打断点,然后r执行到断点位置

例:n


6. s或step:进入函数调用(类似vs中的F11) 例:s


7. break 函数名:在某个函数开头设置断点 例:break SumAdd


8. info break或info b:查看断点信息。 例:info b


9. finish:执行到当前函数返回,然后挺下来等待命令 例:finish


10. p 变量:打印变量值。 例:p sum


11. continue或c:从当前位置开始连续而非单步执行程序 例:c


12. run或r:从开始连续而非单步执行程序 r

13. delete breakpoints:删除所有断点 例;delete breakpoints


14. delete breakpoints n:删除序号为n的断点 delete breakpoints 5


15. disable breakpoints:禁用断点 例:disable breakpoints


16. enable breakpoints:启用断点 例:enable breakpoints


17. display 变量名:跟踪查看一个变量,每次停下来都显示它的值 例:display sum


18. undisplay:取消对先前设置的那些变量的跟踪 例:undisplay


19. until X(行号):跳至X行 例:until 11


20. breaktrace或bt:查看各级函数调用及参数 例:bt


21. q或quit:退出gdb 例:q

(本章完)

标签:

Linux的调试工具-gdb(超详细)由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Linux的调试工具-gdb(超详细)