Nic*_*ter 6 c++ debugging xcode
我有一个在调试时不会显示 C++ std::strings 的 Xcode 项目。这非常令人沮丧,因为我不得不在 LLDB 控制台窗口中一次打印语句或输出一个字符,这既耗时又难以阅读。
使用同一个项目的每个其他人都有同样的问题,而其他项目没有看到这个问题,所以我认为这是某种项目设置。我正在调试并且没有打开优化,所以我已经消除了这个问题。我还比较了工作项目和有这个问题的项目之间的项目设置,它们在各个方面看起来都相同。
这是我得到的输出示例,*_M_p
在这个示例中是正确的,字符串的第一个字符是问号:
如果我一次检查一个字符的字符串,这就是我在调试控制台中得到的结果:
我听说从 LLVM 切换回 GDB 可能会解决问题,但 GDB 给我调试某些数据类型带来了其他问题,所以在这种情况下我只会遇到新问题。
我的同事找到了解决此问题的方法:关闭方案设置中的 Guard Malloc 选项。
现在 std::strings 应该显示出来。我们不知道为什么会出现这种情况,这可能是 Xcode 中的一个错误,但我认为它不久前就会被发现。此外,这已经在多个项目上进行了测试,启用 Guard Malloc 总是会导致 std::strings 无法在调试器中正确显示。