如何在Eclipse中查看std :: map的内容?

时间:2016-04-28 09:48:54

标签: c++ debugging eclipse-cdt watch

我试图使用Eclipse CDT查看std :: map上的内容,但我似乎看到的是一个(n无限?)红黑树节点树。

  1. 实际数据在哪里?
  2. 为什么CDT没有提供一些漂亮的地图内容视图?

2 个答案:

答案 0 :(得分:1)

我现在不确定Eclipse CDT默认支持的程度,但最近版本的GDB可以向您展示STL容器的人性化可视化,包括std::map。您需要GCC版本7或更高版本然后您可以说print the_map_name它会显示如下内容:

std::map with 2 elements = {[1] = 2, [2] = 4}

有关详细信息,请参阅此处:https://stackoverflow.com/a/15329434/4323

有关在Eclipse中使其工作的一些提示:How to enable gdb pretty printing for C++ STL objects in Eclipse CDT?

答案 1 :(得分:0)

当您有一个地图迭代器迭代器时,只需在Eclipse的Expressions对话框中输入以下其中一项:

iter->first
iter->second

将iter放在监视窗口中时,不会显示第一和第二个……可能是Eclipse中的错误。 (对不起,请稍后答复)