我在哪里使用Mac上的BackTrace调用

时间:2009-10-05 14:33:10

标签: c++ debugging macos backtrace

我想从崩溃的C ++ Mac应用程序中获取BackTrace但是我是Mac的新手,并且不确定如何最好地使用它。

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

但是我的问题是我看不到代码的存在位置?

  1. 它是否在main.cpp中?
  2. 它是否生活在捕获部分 试试catch?
  3. 我可以使用一些完整的代码示例,但我很难找到它们。

1 个答案:

答案 0 :(得分:1)

另一个问题中提到的代码需要转到崩溃后执行的位置。根据发生的情况,如果异常被抛出,可能在catch块中,或者如果程序由于例如seg故障或总线错误而崩溃,则在信号处理程序中。

以下是捕捉信号的示例。它会进入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);
}