我正在尝试调试我的C程序,GDB以找出它挂起的位置.
作为一个新手GDB,我能够运行它,但不知道如何GDB停止并告诉我程序挂起的位置.
我试图CTRL+C终止它,但它只显示我
Program received signal SIGINT, Interrupt.
Run Code Online (Sandbox Code Playgroud)
程序挂起后我该怎么办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]
Run Code Online (Sandbox Code Playgroud)
如果你(gdb)在运行开始后没有得到你的控制台东西,你的程序可能会包含一个死锁.通过按ctrl+ 修复此问题c,然后执行以下操作:
gdb) bt //get a back-trace of where things whent wrong
//or
gdb) where
Run Code Online (Sandbox Code Playgroud)
要继续逐步调试,请使用s,例如(参考备忘单......我不打算在此列出所有命令)
这应该会让你知道在哪里寻找问题