Eclipse(kepler)不显示结构成员

时间:2013-10-20 20:50:10

标签: c eclipse debugging nested structure

我对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;

我在调试器的变量视图中得到了这个:

enter image description here

而不是:

enter image description here

我可以做得比较多(感谢谷歌和stackoverflow)与日食给我的所有头痛直到现在,但这一点似乎有点困难,甚至谷歌都不会说这个。所以它是新的,或者说显而易见的,只有像我这样的日食新手可能会遇到麻烦。


第二个问题是为什么有空的空间,我想看到s1结构的成员? 似乎总是倾向于我打开查看的第一个结构,第二个结构总是空白 - 这在任何可能的方式都不是任何方便:( 对于内存视图也是如此 - 如果它是嵌套结构成员,则由于错误/未知地址而无法打开它的内存视图。

我确实认为,调试器应该对这些结构有一些解析问题,但对我来说不幸的是,我不知道先拉出哪个线程。

Link to the full project code.

3 个答案:

答案 0 :(得分:2)

感谢我的同事,我发现,使用"标准创建流程启动器"而不是GDB(DSF)让我有机会拥有一个不错的bug(可能几乎)调试会话。

enter image description here

只要我不知道为什么要使用另一个发射器,我就可以忍受。

答案 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验证。