如何使用 gdb 调试 SIGTRAP?
我自己的程序使用SIGTRAP信号。我想使用 gdb 来调试我的程序。 但是,当在我的程序中引发 SIGTRAP 时,gdb 无法进入我的陷阱处理程序。
如何单步执行我的陷阱处理程序?
My own program uses SIGTRAP signal. I want to use gdb to debug my program.
However, when the SIGTRAP is raised in my program, gdb cannot go into my trap handler.
How to single step into my trap handler?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不确定它是否适合您,但尝试使用 sigaction 关闭信号处理程序(在信号处理程序内),然后再次引发 SIGTRAP。
这应该向操作系统发出信号,操作系统将调用调试器(希望如此)。
之后再次使用 sigaction 来注册您自己的处理程序。
I am not sure if it will work for you, but try to use
sigaction
to turn off your signal handler (within your signal handler), and than raise SIGTRAP again.That should raise the signal to the OS, which will call the debugger (hopefully).
afterwards use
sigaction
again to register you own handler.