Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 检查Xcode中的STL容器_C++_Xcode_Debugging_Macos_Stl - Fatal编程技术网

C++ 检查Xcode中的STL容器

C++ 检查Xcode中的STL容器,c++,xcode,debugging,macos,stl,C++,Xcode,Debugging,Macos,Stl,从谷歌搜索来看,Xcode(我的例子是3.1)至少应该给我一个STL容器的合理调试视图,或者至少是向量 然而,每当我在调试器中查看向量时,我只会看到M_impl,其中有M_start和M_finish成员(以及一些其他成员)——但中间什么都没有!(顺便说一句,这是一个调试版本) 我是不是错过了一个场景或者什么 我还了解到,有一些宏可以进一步增强调试查看器,以检查更复杂的容器,但却找不到任何宏 我还希望能够查看std::wstring,而不必访问内存查看器。它显示std::string fine。

从谷歌搜索来看,Xcode(我的例子是3.1)至少应该给我一个STL容器的合理调试视图,或者至少是向量

然而,每当我在调试器中查看向量时,我只会看到M_impl,其中有M_start和M_finish成员(以及一些其他成员)——但中间什么都没有!(顺便说一句,这是一个调试版本)

我是不是错过了一个场景或者什么

我还了解到,有一些宏可以进一步增强调试查看器,以检查更复杂的容器,但却找不到任何宏

我还希望能够查看std::wstring,而不必访问内存查看器。它显示std::string fine。我可以做些什么来显示std::wstring吗


我意识到这是一个有点复杂的问题,但它实际上是同一主题的一部分。

您可以为不同的变量类型创建,以便它们显示得更好:-)。

查看容器项的能力可能取决于模板类型的复杂性。对于诸如int、bool等普通对象,甚至是诸如

template <class T> struct S { T m_t; }
模板结构S{T m_T;}
在调试器变量视图中查看向量项通常没有问题。我说“正常”是因为似乎偶尔会出现一些bug,这些bug会导致某些东西(特别是在调试时)的行为不符合我的预期。其中之一就是变量视图中的垃圾或完全无用的信息。通常,对目标进行干净的重建(有时甚至是更剧烈地重新启动XCode,然后进行干净的重建)可以修复问题


至于其他容器类型,很可能很难有效地查看这些信息。例如,地图通常实现为红黑树。调试器必须事先知道这一点,以便正确遍历树并向您显示所有键和值。这可能是从XCODE或GDB中得到的很多东西,尤其是因为前者比C++更关注Objto-C和C C(因此,命名空间往往会破坏代码的完整性和重要性)。

< P>试着在Projt>编辑方案中使用GDB调试器…考虑将编译器转换为LVVM GCC 4.2,在项目生成设置(在Buffic选项下)>编译器为C/C++ + ObjuleC)。 在XCode 4中,我发现我需要这些设置来查看V3f的std::vector,其中V3f是一种模板化的浮点向量类型


请注意,我认为您不能将ARC(自动引用计数)与LLVM GCC 4.2一起使用。

是的,我意识到映射等都是非常重要的,并且肯定需要实现逻辑(尽管我可以想象一个使用公共API来获取信息的系统)。我知道其他IDE已经管理了它。不过我想我至少应该看看vectors,因为VisualStudio至少从2008年就开始这样做了,所以我不认为它期望太高