2009-10-05 71 views
0

我想從崩潰的C++ Mac應用程序中獲得BackTrace,但是我對Mac很陌生,不知道如何去做。我在哪裏可以在Mac上使用BackTrace調用

我發現,它的細節上使用計算器一個問題:getting the current stack trace on mac os x

但是我的問題是,我沒有看到,其中的代碼是爲了生活?

  1. 它是否在main.cpp?
  2. 它住在 try catch塊的catch部分嗎?

我可以做一些完整的代碼示例,但我無法找到他們。

回答

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); 
} 
+0

其在總線錯誤而應用處於閒置狀態。那麼有人可以提供一個添加到信號處理程序的例子嗎? – 2009-10-05 15:31:15

相關問題