【发布时间】:2009-12-01 08:07:53
【问题描述】:
是否可以看到动态分配的数组的内容,如:
int *array = new int[dimension];
我只看到指针的值。
编辑:刚刚找到“显示为数组”选项,但我总是必须手动输入数组的大小。是否有可能自动获得?
【问题讨论】:
标签: c++ debugging eclipse-cdt
是否可以看到动态分配的数组的内容,如:
int *array = new int[dimension];
我只看到指针的值。
编辑:刚刚找到“显示为数组”选项,但我总是必须手动输入数组的大小。是否有可能自动获得?
【问题讨论】:
标签: c++ debugging eclipse-cdt
在 Eclipse 中,为了查看动态分配数组的内容(对于遇到此问题的任何其他人),
并且,在处理指针时,请注意在将鼠标悬停在指针本身(箭头图标)上时单击“显示为数组”,而不是在最初引用的值上(例如在 (x)= counts 的位置)图片)。
否则你会得到一个类型的错误
执行 MI 命令失败:
-data-evaluate-expression [细节]
来自调试器后端的错误消息:
无法访问地址 0x[旧地址*counts] 处的内存
显示在列表下方的对话窗口中(在上面的屏幕截图中以“名称:”开头)。
【讨论】:
int samples[10][dimension];?有没有办法可视化这样的数组?
如果您想避免重复执行“显示为数组”,请打开“表达式”选项卡并添加表达式(*array@dimension)。不知道为什么括号是必要的。没有它们你会得到一个错误。
【讨论】:
在“表达式”选项卡中,如果您按照 cleong 的说明输入 (*array@dimension),那么您也可以动态设置要显示的数组的大小。当您需要另一个表达式来获取它时,这甚至可以工作。
假设您有一个包含数组大小的变量 x,您输入 (*array@x),它将使用 x 的内容作为维度。
"x" 也可以是结构内容或指针取消引用等 - 即
(*array@SomePtrToStruct->x)
工作得很好。
【讨论】:
刚刚找到“显示为数组”选项,但我总是要手动输入数组的大小。是否有可能自动获得?
这很好。我会坚持下去。在 C 或 C++ 的一般情况下,自动获取数组是不可能的,尽管在某些微不足道的情况下肯定可以做到(但可能还没有——功能需要在它们存在之前实现,套用 Raymond Chen 的话)。
【讨论】: