我想从崩溃的 C++ Mac 应用程序中获取 BackTrace,但是我是 Mac 新手,不知道如何最好地去做。
我在stackoverflow上发现了一个详细说明其用法的问题:getting the current stack trace on mac os x
但是我的问题是我看不到代码应该放在哪里?
- 它在 main.cpp 中吗?
- 它是否存在于 try catch 块的 catch 部分?
我可以使用一些完整的代码示例,但找不到它们。
我想从崩溃的 C++ Mac 应用程序中获取 BackTrace,但是我是 Mac 新手,不知道如何最好地去做。
我在stackoverflow上发现了一个详细说明其用法的问题:getting the current stack trace on mac os x
但是我的问题是我看不到代码应该放在哪里?
我可以使用一些完整的代码示例,但找不到它们。
另一个问题中提到的代码需要在崩溃后执行。根据发生的情况,如果抛出异常,则可能在 catch 块中,或者如果程序由于例如段错误或总线错误而崩溃,则可能在信号处理程序中。
这是捕获信号的示例。它将进入 main()。
static void CatchSignal(int num) {
// code to execute when signal is caught
}
void InstallSignalHandler(const int which[15]) {
for (int i = 1; i < 15; i++)
if (which[i] != 0 && which[i] != SIGABRT)
signal(which[i],CatchSignal);
}