_009_gdb调试

Posted huangtiandi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了_009_gdb调试相关的知识,希望对你有一定的参考价值。

===================================================

 

查看源代码 

 


 

  调试需要先把应用程序编译,编译的时候后面需要加一个-g写入调试信息

  然后 gdb app

  程序会断下来,然后按l(小写)可以查看源代码

  按 l xxx.c:20   可以查看其它的.c文件的代码,第20行

  按 l xxxx.c:函数名   可以查看函数名,想继续看,就继续按l,就能看函数下面的内容,然后直接按回车就行了,不用一直按l

 

打断点

 


  break 22或者b 22     在22行打断点

  b 15 if i==10           条件断点,如果在15行处,i==10,才会断下来

  info break或者i b   查看断点的信息

  delete 断点编号(d 编号)        删除一个断点

  start或者r(run)   开始执行程序,但是只执行一步,相当于单步步过,然后按n(next)就可以继续单步,按s(step)是单步步入,可以进入函数体内部如果不想单步了, 可以按c (continue) 直接跑到断点的地方,如果没有断点,那就直接跑完

  查看变量的数值  p 变量名   p应该是pointer的意思

  查看遍历的类型 ptype 变量名

  追踪遍历的数值  display(显示) 变量名 ,每次都会打印出来这个变量的数值,如果不再想追踪,就用undisplay 变量的编号

变量的编号用 info display显示

  u 跳出循环

  finish(完成) 跳出当前函数

  set var 变量名  设置某个变量的数值,可以用这个来控制循环

  quit  退出调试

 

  

 


以上是关于_009_gdb调试的主要内容,如果未能解决你的问题,请参考以下文章

GDB调试基本命令

gdb使用_转

gdb调试Alpine Linux上的OpenJDK java失败了“线程接收信号?,未知信号”

gdb调试基本技巧

gdb调试基本技巧

gdb调试报错:Missing separate debuginfos