2.1 如何停止程序?
- 使用
ctrl + c
, 从外部停止 - 程序会在打了断点的地方停下来。
一旦 debung 程序停止运行,可以使用 where
来查看当前对应的代码。
2.2 如何继续执行?
2.3 如何查看程序停在哪里?
2.4 如何逐行调试?
首先得发送外界信号(ctrl+c)或者靠断点使程序停止运行。
然后使用next或step命令进行调试。
next 与 step 的区别
在有函数的调用的地方,next 会调用完成这个函数然后执行下一步,step 会进入到该函数的内部。
2.5 如何检查变量?-print
使用 print
(gdb) print x
$1 = 900
(gdb) print s
$3 = 0x8048470 "Hello World!\n"
(gdb)
The output from the print command is always formatted $## = (value). The $## is simply a counter that keeps track of the variables you have examined.
2.6 如何修改变量-set
(gdb) set x = 3
(gdb) print x
$4 = 3
新版本可能需要使用 set var
set var x = 3
2.7 调用函数
call abort()
2.8 退出函数
当查看函数看够了, 想退出当前的函数时,使用 finish
(gdb) finish
Run till exit from #0 fun1 () at test.c:5
main (argc=1, argv=0xbffffaf4) at test.c:17
17 return 0;
Value returned is $1 = 1