【问题标题】:Inspecting contents of std::vector in Eclipse CDT debugger在 Eclipse CDT 调试器中检查 std::vector 的内容
【发布时间】:2014-04-10 08:42:19
【问题描述】:

我正在使用带有 CDT 插件的 Eclipse 在 C++ 中进行开发。我也在使用 std 库创建向量,但在调试时遇到问题:Eclipse 不允许我查看向量的内容。

有什么办法可以正常调试吗?

【问题讨论】:

  • std::vector 中出现错误的可能性确实很小,与您使用错误的可能性相比。你真的确定你需要这个吗?如果这样做,则需要安装 C++ 标准库的调试版本,并链接到该版本……不过,不知道如何在 Eclipse 中执行此操作。在从事专业 C++ 维护的 14 年中,我从未调试过标准库。 (不过,在 Boost 中发现了两个错误,在 IBM AIX 调试器中发现了一个错误,所以永远不要说永远。;-))
  • 无论您遇到什么问题,如果有的话,它们在标准库中的可能性微乎其微。问题可能在于您如何使用这些类,或者您尝试在容器中存储什么。
  • 我可能会错误地解释自己。我不想检查类向量是如何制作的,我想看看向量中的内容(我的类)。
  • 没有简单的方法来检查 std::vector,这就是我问这个的原因。

标签: c++ eclipse std


【解决方案1】:

在 Eclipse 中调试 STL 容器并不是很简单。请查看this question 以及解释原因的答案。对我来说不用摆弄GDB最简单的方法是this answer,可以总结如下:

在变量视图中展开你的向量,你应该会找到一个嵌套变量_M_start。右键单击,选择“显示为数组...”并输入所需的范围。然后元素应显示在_M_start 下嵌套。

【讨论】:

  • 这是一个完整的答案吗?如果链接断开,它仍然有效吗?
  • 这就是为什么我总结了我在第二段中链接到的答案。
  • 它确实有效,但是哇,我希望 Eclipse CDT 可以在未来解决这个问题并让它变得简单。
  • 使用“显示为数组”需要您记下要查看的元素数量。如果您写下的内容超过了向量实际包含的内容,则无需说明会发生什么。 :D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-24
  • 2012-05-07
  • 2011-04-26
相关资源
最近更新 更多