如何使用 gdb 调试 SIGTRAP?

发布于 2024-12-03 07:47:31 字数 108 浏览 0 评论 0原文

我自己的程序使用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

予囚 2024-12-10 07:47:32

我不确定它是否适合您,但尝试使用 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文