如何在QtCreator中的调试器中显示std :: multimap和std :: multiset的内容?

时间:2014-01-09 12:23:29

标签: c++ qt debugging gdb qt-creator

我正在尝试检查 QtCreator 本地和表达式窗口中std::multimapstd::multiset的内容。

而不是值列表,我会显示实现细节。

奇怪的是std::mapstd::set对应物显示正常:

#include <iostream>
#include <map>
#include <set>
#include <string>

int main()
{
    std::multimap<int, std::string> multimap;
    multimap.insert(std::make_pair(1, "one"));
    multimap.insert(std::make_pair(2, "two"));
    multimap.insert(std::make_pair(3, "three"));

    std::multiset<int> multiset = {1,2,3};

    std::map<int, std::string> map;
    map.insert(std::make_pair(1, "one"));
    map.insert(std::make_pair(2, "two"));
    map.insert(std::make_pair(3, "three"));

    std::set<int> set = {1,2,3};

    return 0;
}

enter image description here

我正在使用:

Qt Creator 3.0.0 
gcc 4.8
GDB 7.6.1
Qt 5.2.0
Ubuntu 13.10

是否支持此功能?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

除了从https://sourceware.org/gdb/wiki/STLSupport安装Python libstdc ++打印机之外,您还应该为Ubuntu 13.10修复它们。

您应该应用此修补程序http://patchwork.ozlabs.org/patch/287368/以使其正常工作。另请参阅此答案https://stackoverflow.com/a/21020798/72178