我想从崩溃的C ++ Mac应用程序中获取BackTrace但是我是Mac的新手,并且不确定如何最好地使用它。
我在stackoverflow上发现了一个详细说明其用法的问题:getting the current stack trace on mac os x
但是我的问题是我看不到代码的存在位置?
我可以使用一些完整的代码示例,但我很难找到它们。
答案 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);
}