c++ - 如何使用 XCode 6.1 C++ Debug模式检查所有局部变量

标签 c++ xcode macos cmake lldb

我正在使用 XCode 6.1 调试我的 C++ 代码,我发现一些局部变量没有显示在调试区域中,即使我使用“所有变量”设置也是如此。

我想知道如何将这些变量添加到调试列表中?

或者如何在 LLDB 上打印出那些缺失的变量?我尝试使用 po test,但它说:

error: use of undeclared identifier 'test'

我是否会更好地切换到适用于 C++ 的 Eclipse IDE?

顺便说一句,我正在使用 CMake 生成 XCode 项目,所以也许我在 Debug模式下遗漏了什么? 我记得如果使用 gcc,我需要 -g 选项,当我使用 CLang 时是否需要它?

最佳答案

从代码完成和突出显示的角度来看,Xcode 在编写 C++ 代码方面表现相当出色,在我看来仅次于 Visual Studio,但通过 Apple lldb 进行调试将非常失败。模板将是最糟糕的,您经常会收到有关无法具体化目标的错误或与调试器相关的其他陈旧的、令人恼火的错误,这些错误与调试器对您的要求感到困惑或无法找到函数有关。

不幸的是,几个版本都是这样,似乎 c++ 仅次于 objective-c,而且它可能也会落后于 swift;它可能不会被修复。

你可能不会在 eclipse 上玩得更好,你会在代码完成、分析、静态分析等方面牺牲很多。

最好的建议是确保您处于 Debug模式,这样事情就不会被优化掉。如果您想检查一个表达式,尤其是涉及模板的表达式,请将其放在局部变量中,优化器将在发布版本中完成其工作,因此不会出现性能问题。现在是 21 世纪,但不幸的是,有时您只需要使用 std::cerr :(

关于c++ - 如何使用 XCode 6.1 C++ Debug模式检查所有局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27715763/

相关文章:

c++ - 为什么用g++编译时会出现符号引用错误?

c++ - 如何制作一个宏来在for循环中生成代码?

c# - 在 xamarin 上新创建的存档没有出现在 xcode 上? (分布构建)

ios - 如何在代码中获取自动布局中使用的标准间距值?

swift - 多个目标共享的单个-swift.h

c - Xcode 和传递命令行参数

macos - OS X上的mariadb docker容器:无法创建数据库目录

c++ - 基于 Java openGL 和 GTK 的应用程序搞砸了 C++ openGL?

c++ - Objective-C 和 C++ 之间的转换比较

macos - 无法在 macOS High Sierra 上构建和安装 Valgrind