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行的效果了:
全部0条评论
快来发表一下你的评论吧 !