3

我正在尝试使用 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(用-g3and编译-O0
  • gdb 7.5.91
  • GDB (DSF) 创建进程启动器
4

2 回答 2

2

Eclipse 可以,在此处此处查看快照和说明。这篇文章也帮助了我。

于 2013-08-26T21:11:04.147 回答
1

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

原因是,它std::vector<T>只是在内部包装和管理数组,T因此不能显示为数组本身。

于 2013-08-08T18:28:36.693 回答