2017-06-23 31 views
2

我有一個非常基本的C++程序: -XCODE產生分段故障,而不是例外

#include <iostream> 
#include <stdexcept> 
int main(int argc, const char * argv[]) 
{ 

    std::cout <<"Welcome .. "<<std::endl; 
    try { 
    throw std::runtime_error(std::string("Crazy exception")); 
    } 
    catch(std::exception& e) { 

    std::cerr << "error: " << e.what() << "\n"; 
    exit(0); 

    } return 0; 

} 

Whenver我跑,而不是例外,我看到一個Segmentation fault: 11 在調試這個程序,我看到EXC_BAD_ACCESS(code=EXC_I386_GPFLT)聲明。 我在XCODE上啓用了異常。有沒有人見過這種基本錯誤?

這真是笑死我了,我應該重新安裝XCODE?如果是,什麼是清潔安裝方式或從APP STORE的東西

重新安裝XCODE直接。同樣的問題!接下來是什麼?重新安裝我相信的整個OSX。有人可以提供一些線索,在休息之前我可以嘗試什麼「可以」嘗試對機器進行無腦的重新格式化?

+0

的[如何捕捉genereal異常,並顯示其得到的是什麼()](可能的複製https://stackoverflow.com/questions/14631011/how-to- catch-a-genereal-exception-and-show-its-derived-what) - 它應該是catch(std :: exception const&e)'? –

+0

謝謝,但如果我忘了std ::關鍵字,它會創建一個編譯錯誤。我的代碼中有std ::關鍵字。我相應地更新了我的問題。 –

回答

1

是的,我執行我的Mac上這個節目,併成功地利用每一個類型的運行時錯誤的<stdexcept>編譯。你正在運行哪個版本的Xcode?它是從Apple商店或其他網站安裝的嗎?

如果您已經從蘋果商店安裝它,請更新版本的Xcode,Xcode的8.3.3,並再次運行代碼。

如果你正在使用它從其他網站,然後有一個機會,它有一個錯誤。我以前也遇到類似的問題。

還有就是從你的Mac計算機上卸載Xcode中的簡單方法。將Finder中的Xcode拖放到應用程序中,並將其放入垃圾箱並清空垃圾箱。

+0

直接從APP STORE重新安裝XCODE。同一問題 –

+0

您正在運行的是哪個版本的Xcode? –

+0

這是8.3.3 –

0

重新安裝MAC OSX!它解決了這個問題。 令人驚訝的是,可能會導致一些操作系統損壞。

希望這會幫助別人在未來