我正在为应用程序编写一个插件,有时会抛出 SIGSEGV。然而,应用程序捕获信号 SIGSEGV。换句话说,该插件是一个动态库。该错误发生在我的插件和动态库中。但应用程序处理 sSIGSEGV 并正常退出。因此,对我来说调试并获取所有堆栈帧的回溯是相当困难的。任何想法?
目前我使用 gdb 作为调试工具。
GDB will catch SIGSEGV
在应用程序执行之前。
您在对洛根答案的评论中所描述的内容毫无意义。
我怀疑真正发生的事情是应用程序创建了一个新进程,并且只得到SIGSEGV
在另一个进程中,而不是您附加 GDB 的进程中。
如果我的猜测是正确的,以下命令可能会有用:
(gdb) catch fork
(gdb) catch vfork
(gdb) set follow-fork-mode child
您可能还想编辑和扩展您的问题:
- 你怎么知道那里is a
SIGSEGV
首先?
- 发布您的互动日志
GDB
也可能被证明是有用的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)