我正在尝试调试我的 C 程序GDB
以找出它挂在哪里。
作为新手GDB
,我可以运行它,但不知道如何GDB
停止并告诉我程序挂在哪里。
我试图CTRL+C终止它,但它只显示我
Program received signal SIGINT, Interrupt.
程序挂在那里怎么办GDB
?
好吧,基本的 gdb 用法是:
-g
用标志编译$ gdb yourProg
然后,在 GDB shell 中:gdb) run [arguments]
gdb) where
查看错误发生的位置。list
获取您想要的任何内容的概述更多关于 gdb 的信息,
或者参考这个方便的 GDB 命令备忘单。
要知道在哪里设置断点,只需编译-g
并执行以下操作:
$ gdb a.out //assuming you didn't specify a -o
gdb) run [args]
如果在运行开始后你没有恢复你的(gdb)
控制台,你的程序很可能包含死锁。按ctrl+修复此问题c,然后继续:
gdb) bt //get a back-trace of where things whent wrong
//or
gdb) where
要继续逐步调试,只需使用s
, 例如(请参阅备忘单……我不会在这里列出所有命令)
这应该让您对在哪里寻找问题有所了解
CTRL-C在 gdb中输入后,只需输入bt
or backtrace
,它就会显示程序停止时的位置。