在 GDB 中按 CTRL+C 终止程序
我的程序通过在命令窗口中点击 CTRL+C 确定停止执行。到目前为止,我在这个停止阶段遇到了严重错误,所以我想用 gdb 进行调试。
问题是,gdb 将 CTRL+C 重新定义为自己的中断,并在被命中时暂停执行。我该如何处理 CTRL+C 关闭我的程序并且 gdb 可以捕获堆栈跟踪?
My program is determined to stop its execution by hitting CTRL+C in command window. By now, I have a critical error right in this stopping phase, so i want to debug with gdb.
Problem is, gdb redefines CTRL+C as its own interrupt and pauses the execution when hitted. How can I handle it that CTRL+C powers my programm off and gdb can catch the stack trace?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在
(gdb)
提示符下,键入signal SIGINT
。这将向正在调试的程序发送(令人惊讶的)SIGINT
。或者,
handle SIGINT nostop print pass
将使 GDB 将信号直接传递到下级(正在调试的)进程。From the
(gdb)
prompt, typesignal SIGINT
. This will send (surprize)SIGINT
to the program being debugged.Alternatively,
handle SIGINT nostop print pass
will make GDB pass the signal straight to the inferior (being debugged) process.