【问题标题】:C++ program works on command line but fails on XcodeC++ 程序在命令行上工作,但在 Xcode 上失败
【发布时间】:2014-08-18 13:45:11
【问题描述】:

我有一个广泛使用 libxml2 的 C++ 静态库。我使用 Google Test 对其进行测试,这意味着我构建了一个命令行可执行文件,其中调用了单元测试。命令行应用程序完美运行,所有输出都符合预期。

我通过复制源文件将库转移到 Xcode 中的 iOS 项目。我构建它并从扩展名为 .mm 的文件中调用 C++ 源文件。我已将 Xcode 的 C++ 语言方言设置为 c++11,将 C++ 标准库设置为 LLVM

为了构建命令行,我传递了这些开关:-Wno-attributes -g -Wall -std=c++11 -stdlib=libc++ -Wunused -D_GLIBCXX_USE_NANOSLEEP -m64

我的问题是,一旦我调用 iOS 应用程序,它就会静默崩溃。一些穴居人在整个代码中使用 NSLog 语句进行调试表明某些变量可能为空。问题是完全相同的输入会使应用程序在 Xcode 上崩溃,而不是在控制台上。

调试此问题的最佳方法是什么?

【问题讨论】:

  • 最新版本。
  • 正如我所说,它是 iOS 7。基础 SDK 为 7.1。
  • 注意未初始化的变量。添加 NULL 检查。插入大量断点。
  • 但为什么会有不同的行为?

标签: c++ ios xcode c++11 clang


【解决方案1】:

尝试从 xcode 激活所有内存管理检查。从 Project > Scheme > Edit Scheme... 单击左侧列表中的 Run 项。然后点击诊断。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-21
    • 2012-10-15
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多