Xcode:GDB 和信号处理程序

标签 xcode gdb signals

我在 Objective-C 应用程序中使用信号处理程序来捕获 fatal error ,如 SIGSEGV , SIGBUS之类的。

当发出这样的信号时,我正在编写一个日志文件,其中包含有关错误的回溯和详细信息(我知道我可能会遇到可重入问题,但这不是重点)。

这样,我可以在下次启动时知道应用程序崩溃了,我可以询问用户是否要填写错误报告。

当我手动启动应用程序时,它工作正常。

但是当我从 Xcode(使用 GDB)运行它时,不会调用信号处理程序。

我试着用 signal 设置它们或 sigaction ,但没有区别。

我也查过 info signals这些信号设置为 pass ,这意味着它们应该传递给应用程序。

这没什么大不了的,因为我只是在调试我的应用程序时遇到了这个问题,但是它也能与 GDB 一起工作会非常好。

有没有人遇到并解决过这样的问题?

最佳答案

您可能想尝试在 gdb 中将这些信号设置为 nostop,因此它由您的应用程序管理。

关于Xcode:GDB 和信号处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7451157/

相关文章:

ios - 如何在Objective-c的Xcode中使UIImage工作

iphone - 管理两个特定于设备的应用程序

Objective-C 语法检查器

python - 将 python -c 传递给 gdb 中运行的程序

c++ - emacs 从 Shell 切换到 gdb 或 pdb 模式

xcode - 如何在每次使用类时快速运行一个方法

c - 文件指针为 0x0 但所有 NULL 检查失败

linux - 一个进程如何知道它已经收到一个信号

c++ - SIGINT 正常关闭

python - 如何在 Python 中添加处理程序和信号?