Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.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++ 检查嵌套的标准库数据_C++_Stl_Gdb_G++ - Fatal编程技术网

C++ 检查嵌套的标准库数据

C++ 检查嵌套的标准库数据,c++,stl,gdb,g++,C++,Stl,Gdb,G++,我在它下面使用了DDD3.3.11和GDB6.5-8.fc6rh。我的编译器是g++4.1.1 我有一个stl映射容器,其中包含一个int(vector)向量作为其关键查找。 键上的数据为MyType* 我使用的是Dan Marinescu编写的.gdbinit文件。它非常有用,直到你嵌套C++标准库容器。 我的问题是,使用.gdbinit文件中的检查技术, 有没有办法检查嵌套的stdlib数据 我遇到的主要问题似乎是当.gdbinit文件试图进行类型转换时 如果我的地图是 map<ve

我在它下面使用了DDD3.3.11和GDB6.5-8.fc6rh。我的编译器是g++4.1.1

我有一个stl映射容器,其中包含一个int(vector)向量作为其关键查找。 键上的数据为
MyType*

我使用的是Dan Marinescu编写的.gdbinit文件。它非常有用,直到你嵌套C++标准库容器。

我的问题是,使用.gdbinit文件中的检查技术, 有没有办法检查嵌套的stdlib数据

我遇到的主要问题似乎是当.gdbinit文件试图进行类型转换时

如果我的地图是

 map<vector<int>, MyType*>
map
然后,在gdb中,我尝试一个pmap调用,比如

pmap myMap vector<int> MyType*
pmap myMap向量MyType*
这与

elem[0].left: No symbol "vector<int>" in current context.
elem[0]。左侧:当前上下文中没有符号“vector”。

在gdb中,我必须使用什么语法将某些数据类型转换为模板类型?

使用较新的gdb,我必须添加单引号、名称空间和分配器

(gdb) pmap myMap 'std::vector<int,std::allocator<int>>' MyType*
elem[0].left: $3 = std::vector of length 1, capacity 1 = {2}
elem[0].right: $4 = (MyType *) 0x7fffffffe060
Map size = 1
(gdb)pmap myMap'std::vector'MyType*
元素[0]。左:$3=std::长度为1的向量,容量为1={2}
元素[0]。右:$4=(MyType*)0x7fffffffe060
地图大小=1