【问题标题】:Eclipse CDT Kepler does not allow "Display as array..."Eclipse CDT Kepler 不允许“显示为数组...”
【发布时间】:2013-08-08 18:09:45
【问题描述】:

我正在尝试使用 Eclipse CDT 调试 C++ 程序:

#include <vector>
using namespace std;

int main() {
  vector<int> test (4,100);
  return 0;
}

如果我放置一个断点进行调试,并为我的向量变量单击“显示为数组...”,我会收到以下错误:

(*((test)+0)@4) Error: Multiple errors reported.\ Failed to execute MI command: -var-create - * (*((test)+0)@4) Error message from debugger back end: No symbol "operator+" in current context.\ Unable to create variable object

调试时如何查看数组的值?

我正在使用:

  • Eclipse 4.3(开普勒)
  • Ubuntu 13 64 位
  • gcc 4.7.3(用-g3-O0编译)
  • gdb 7.5.91
  • GDB (DSF) 创建进程启动器

【问题讨论】:

    标签: c++ gdb eclipse-cdt


    【解决方案1】:

    Eclipse 可以,查看快照和说明herehereThis 的帖子也帮助了我。

    【讨论】:

      【解决方案2】:

      更深入地了解std::vector 变量的结构,然后寻找s.th。命名为 _M_start 或类似名称(可能取决于实现)。
      将此转换为您知道并希望看到的最终类型数组。

      原因是,std::vector&lt;T&gt; 只是在内部包装和管理T 的数组,因此不能显示为数组本身。

      【讨论】:

      • 这可行,但它并不漂亮。 eclipse 不能在内部做一些事情来解决这个问题并以一种更加用户友好的方式显示信息吗?
      • @NealKruis 作为功能请求发送或participate
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-14
      • 1970-01-01
      • 2014-03-19
      • 2013-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多