Linux系统GDB单步调试

描述

单步调试

   gdb helloworld                     <------------------------------- 加载程序

   (gdb) break helloworld.c:18        <------------------------------- 设置断点

   (gdb) run                          <------------------------------- 启动调试

   The program being debugged has been started already.

   Start it from the beginning? (y or n) y

   Starting program: /home/book/helloworld

   Helleo World.

   

   Breakpoint 2, main (argc=1, argv=0x7fffffffdca8) at helloworld.c:18         <-------- 程序在 18 行暂停

   18            result += i;

   Breakpoint 2, main (argc=1, argv=0x7fffffffdca8) at helloworld.c:18

   18            result += i;

   (gdb) next                                    <--------  单步执行

   

   17        for(i = 1; i <= 100; i++)  {

   

   Breakpoint 2, main (argc=1, argv=0x7fffffffdca8) at helloworld.c:18

   18            result += i;

   (gdb) next 2                                  <--------  执行两次

   

   Breakpoint 2, main (argc=1, argv=0x7fffffffdca8) at helloworld.c:18

   18            result += i;

断点继续-continue:

continue命令(可简写为c),它会继续执行程序,直到再次遇到断点处。

单步进入-step:

如果我们想跟踪函数内部的情况,可以使用step命令(可简写为s),它可以单步跟踪到函数内部,但前提是该函数有调试信息并且有源码信息。

单步执行-next:

next命令(可简写为n)用于在程序断住后,继续执行下一条语句,假设已经启动调试,并在第12行停住,如果要继续执行,则使用n执行下一条语句,如果后面跟上数字num,则表示执行该命令num次,就达到继续执行n行的效果了:

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分