我对eclipse很新,因此对别人来说显而易见的事情对我来说是一个谜,当然我很抱歉。 在Eclipse IDE下为C / C ++开发人员构建项目(版本:Kepler Service Release 1,在Win 7 64bit上构建id:20130919-0819)和MinGW工具链时,调试器变量视图不希望向我展示几件事。它从我在结构中定义结构开始,如下所示:
typedef struct
{
int i1;
int i2;
}ts;
typedef struct
{
int i;
ts s1;
ts s2;
}t_mystruct;
我在调试器的变量视图中得到了这个:
而不是:
我可以做得比较多(感谢谷歌和stackoverflow)与日食给我的所有头痛直到现在,但这一点似乎有点困难,甚至谷歌都不会说这个。所以它是新的,或者说显而易见的,只有像我这样的日食新手可能会遇到麻烦。
第二个问题是为什么有空的空间,我想看到s1结构的成员? 似乎总是倾向于我打开查看的第一个结构,第二个结构总是空白 - 这在任何可能的方式都不是任何方便:( 对于内存视图也是如此 - 如果它是嵌套结构成员,则由于错误/未知地址而无法打开它的内存视图。
我确实认为,调试器应该对这些结构有一些解析问题,但对我来说不幸的是,我不知道先拉出哪个线程。
答案 0 :(得分:2)
只要我不知道为什么要使用另一个发射器,我就可以忍受。
答案 1 :(得分:1)
这不是完整的答案,但有些测试结果可能会有所帮助:
我在Linux(Ubuntu)上使用默认工具链(Linux GCC)在Kepler SR1下尝试了你的例子,它似乎在那里正常工作:expanded variables on Linux
但是在Windows 8上的Kepler SR1下我遇到了与你相同的问题:“无成员”和“空白空间”。由于某种原因,它试图评估错误的表达式((mydat).i2
而不是(mydat).s2.i2
)并从gdb接收相应的答案(“没有名为i2的成员”)。
这是一个在控制台中使用gdb的小测试,具有预期结果:gdb console test(参见最后2个命令)
它看起来像是Windows版本的Eclipse中的UI错误。
答案 2 :(得分:0)
我可以确认Sangesi提供的使用“标准创建过程启动器”代替GDB(DSF)的答案也适用于我。 (我不能投票或评论他的答案,因为我还没有足够的声望点。)
在Windows 7,CDT v8.0.2,Cygwin,gdb v7.6.50上使用Eclipse Indigo验证。