微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么 GDB 会阻止信号

如何解决为什么 GDB 会阻止信号

我使用 gdb 在 linux 中调试多线程程序。特别是,线程设置使用实时事件的计时器。使用这些实时信号通知定时器回调以获得中断。当我使用 gdb 启动我的程序时,无法通知那些计时器回调并且无法接收实时事件信号。

我应该命令gdb终端,例如“处理SIG34 pass”等(信号标签可能会根据哪个定时器使用哪个信号进行中断而改变)。到这里一切都好。

但我试图理解的一点是,如果我不命令“处理 SIG34 通过”,那么回调通知将不起作用。 GDB shell 也不会从这些信号中获得任何中断。在那种情况下,什么会消耗这些信号。在这种情况下,是什么抓住了这些信号?为什么我必须说 GDB“好吧,不要打扰那些信号保持冷静”?!为什么?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。