【问题标题】:XCODE produces Segmentation fault as opposed to ExceptionXCODE 产生分段错误而不是异常
【发布时间】:2017-06-23 03:39:53
【问题描述】:

我有一个非常基本的 C++ 程序:-

#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;

}

每当我运行这个程序时,我看到的不是异常,而是Segmentation fault: 11 在调试器上,我在 throw 语句中看到了EXC_BAD_ACCESS(code=EXC_I386_GPFLT)。 我在 XCODE 上启用了异常。有没有人见过这种基本错误?

这真是要了我的命,我应该重新安装 XCODE 吗?如果是的话,干净安装的方法是什么?

直接从 APP STORE 重新安装 XCODE。同样的问题!!接下来是什么?我相信重新安装整个 OSX。在我懒洋洋地重新格式化机器之前,有人可以提供一些“可以”尝试的线索吗?

【问题讨论】:

标签: c++ exception exception-handling segmentation-fault


【解决方案1】:

是的,我已经在我的 mac 上执行了这个程序,它使用&lt;stdexcept&gt; 中的每种运行时错误成功编译。您正在运行哪个版本的 Xcode?它是从 Apple 商店还是其他网站安装的?

如果您是从 Apple 商店安装的,请将 Xcode 版本更新到 Xcode 8.3.3 并再次运行代码。

如果您是从其他网站使用它,那么它有可能存在错误。我之前也遇到过类似的问题。

有一种从 Mac 卸载 Xcode 的简单方法。将 Xcode 从 Finder 中的 Applications 中拖放到 Trash 并清空 Trash。

【讨论】:

  • 直接从APP STORE重新安装XCODE。同样的问题
  • 这是在 8.3.3
  • 通过在 mac 终端输入 gcc --version 检查你的 mac 上的 gcc 版本。把它显示的内容发给我?
【解决方案2】:

重新安装 MAC OSX !它解决了这个问题。 令人惊讶的是,可能存在一些可能导致此问题的操作系统损坏。

希望这对将来的其他人有所帮助

【讨论】:

    猜你喜欢
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-04
    • 2020-01-17
    • 2017-12-27
    • 1970-01-01
    相关资源
    最近更新 更多