gpt4 book ai didi

c++ - 如何使用 SIGSEGV 的信号处理程序调试程序

转载 作者:IT王子 更新时间:2023-10-29 00:18:18 29 4
gpt4 key购买 nike

我正在为应用程序编写插件,偶尔会抛出一个 SIGSEGV。但是,应用程序捕获信号 SIGSEGV。换句话说,插件是一个动态库。错误发生在我的插件和动态库中。但应用程序处理 sSIGSEGV 并正常退出。因此,我很难调试并获取所有堆栈帧的回溯。任何想法?

目前我使用 gdb 作为调试工具。

最佳答案

GDB 在应用程序之前捕获 SIGSEGV

您在对 Logan 的回答的评论中描述的内容毫无意义。

我怀疑真正发生的事情是应用程序创建了一个新进程,并且只在另一个进程中获取 SIGSEGV,而不是您将 GDB 附加到的进程。

如果我的猜测是正确的,下面的命令可能会有用:

(gdb) catch fork
(gdb) catch vfork
(gdb) set follow-fork-mode child

您可能还想编辑和扩展您的问题:

  • 你怎么知道 SIGSEGV 开头?
  • 发布您与 GDB 的交互日志也可能有用。

关于c++ - 如何使用 SIGSEGV 的信号处理程序调试程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3414860/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com