Unix 中正在运行的进程什么时候可以收到 SIGTRAP(值 5)信号?

问题描述 投票:0回答:2

我的代码中有一个名为 NSM 的单一进程。它突然收到 SIGTRAP 信号并被杀死。所以只是想知道进程什么时候可以收到 SIGTRAP 信号?

unix process signals
2个回答
2
投票

正如评论中所说,这是一个信号,可以随时触发。 SIGTRAP信号由调试器处理;如果没有调试器,进程终止是很自然的。如果您在项目中使用静态库,那么您没有正确链接它们。如果您的问题中没有更多信息,我建议您检查与库的链接。


0
投票

一些库会在某些严重错误时引发 SIGTRAP。

例如,当调用

g_thread_join()
来加入线程时,会调用 pthread 库中的底层
pthread_join()
。后者检查两个线程是否尝试相互加入或当前线程尝试加入自身。如果发生这种情况,EDEADLK errno 将返回给调用者。发生此类错误时,调用 GLIB 会引发 SIGTRAP 信号。因此,如果调试器附加到正在运行的进程,则可以调试问题。

© www.soinside.com 2019 - 2024. All rights reserved.