时间:2023-09-26 16:22
人气:
作者:admin
gdbhelloworld<------------------------------- 加载程序
(gdb)breakhelloworld.c:18<------------------------------- 设置断点
(gdb)run<------------------------------- 启动调试
Theprogrambeingdebuggedhasbeenstartedalready.
Startitfromthebeginning?(yorn)y
Startingprogram:/home/book/helloworld
HelleoWorld.
Breakpoint2,main(argc=1,argv=0x7fffffffdca8)athelloworld.c:18<-------- 程序在 18 行暂停
18result+=i;
Breakpoint2,main(argc=1,argv=0x7fffffffdca8)athelloworld.c:18
18result+=i;
(gdb)next<-------- 单步执行
17for(i=1;i<= 100; i++) {
Breakpoint2,main(argc=1,argv=0x7fffffffdca8)athelloworld.c:18
18result+=i;
(gdb)next2<-------- 执行两次
Breakpoint2,main(argc=1,argv=0x7fffffffdca8)athelloworld.c:18
18result+=i;
断点继续-continue:
continue命令(可简写为c),它会继续执行程序,直到再次遇到断点处。
单步进入-step:
如果我们想跟踪函数内部的情况,可以使用step命令(可简写为s),它可以单步跟踪到函数内部,但前提是该函数有调试信息并且有源码信息。
单步执行-next:
next命令(可简写为n)用于在程序断住后,继续执行下一条语句,假设已经启动调试,并在第12行停住,如果要继续执行,则使用n执行下一条语句,如果后面跟上数字num,则表示执行该命令num次,就达到继续执行n行的效果了:
上一篇:GDB调试如何进行变量查看
下一篇:Linux驱动开发知识点