1

我使用 Google Breakpad 在 Mac 和 Windows 上报告 C++ 应用程序的崩溃。在这两个平台上,Breakpad 的工作原理是为未捕获的异常注册一个处理程序。该处理程序由通常会使进程崩溃的大多数事情触发,例如取消引用空指针。

但是现在我有一个场景,处理程序没有被调用并且进程崩溃到操作系统崩溃报告器。它是 100% 可重现的,但我无法调试它,因为将调试器附加到进程会抢占未捕获的异常处理程序。

如果不是到我的处理程序,哪些技术(除了丰富的 printfs)可以帮助我追踪代码流的去向?我想我想要一些 IDE 设置来让我的调试器(Visual Studio 和/或 Xcode)跳过空指针取消引用并进入 C++ 运行时的处理程序代码。但也欢迎其他技术。

我在这里有我的问题场景的最小再现:https ://bugreports.qt.io/browse/QTBUG-50061

4

0 回答 0