0

我想从崩溃的 C++ Mac 应用程序中获取 BackTrace,但是我是 Mac 新手,不知道如何最好地去做。

我在stackoverflow上发现了一个详细说明其用法的问题:getting the current stack trace on mac os x

但是我的问题是我看不到代码应该放在哪里?

  1. 它在 main.cpp 中吗?
  2. 它是否存在于 try catch 块的 catch 部分?

我可以使用一些完整的代码示例,但找不到它们。

4

1 回答 1

1

另一个问题中提到的代码需要在崩溃后执行。根据发生的情况,如果抛出异常,则可能在 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);
}
于 2009-10-05T15:27:01.747 回答