我正在使用ddd 3.3.11和gdb 6.5-8.fc6rh。我的编译器是g ++ 4.1.1。
我有一个stl map容器,其中包含int(vector)向量的键。
密钥的数据为MyType*
。
我正在使用Dan Marinescu编写的.gdbinit文件。它很好用,直到你嵌套C ++标准库容器。
我的问题是,使用.gdbinit文件中的示例检查技术, 有没有办法检查嵌套的stdlib数据?
我遇到的主要问题似乎是.gdbinit文件试图进行类型转换。
如果我的地图属于
类型 map<vector<int>, MyType*>
然后,在gdb中,我尝试一个pmap调用,如
pmap myMap vector<int> MyType*
失败
elem[0].left: No symbol "vector<int>" in current context.
gdb中有什么语法我必须使用它来将一些数据类型化为模板化类型?
答案 0 :(得分:4)
使用更新的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