【问题标题】:Eclipse (kepler) doesn't show structure membersEclipse(开普勒)不显示结构成员
【发布时间】:2013-10-20 20:50:09
【问题描述】:

我对 eclipse 很陌生,因此在其他人看来显而易见的事情对我来说是一个谜,当然我很抱歉。 在面向 C/C++ 开发人员的 Eclipse IDE(版本:Kepler Service Release 1,Build id:20130919-0819 on Win 7 64bit)和 MinGW 工具链下构建项目时,调试器变量视图不想向我展示几件事。它从我在结构中定义结构开始,如下所示:

typedef     struct
{
    int i1;
    int i2;
}ts;


typedef struct
{
    int i;
    ts  s1;
    ts  s2;
}t_mystruct;

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

代替:

到目前为止,我可以做相对多的事情(感谢 google 和 stackoverflow),但到目前为止,eclipse 给我带来的所有麻烦,但这个似乎有点困难,甚至 google 也不会对此多说。所以要么是新的,要么是显而易见的,只有像我这样的日食新手才会有麻烦。


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

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

Link to the full project code.

【问题讨论】:

    标签: c eclipse debugging nested structure


    【解决方案1】:

    感谢我的同事,我发现使用“标准创建进程启动器”而不是 GDB (DSF) 让我有机会进行一次很好的无错误(可能几乎)调试会话。

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

    【讨论】:

      【解决方案2】:

      这不是完整的答案,但一些测试结果希望对您有所帮助:

      我在 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 错误。

      【讨论】:

      • 谢谢,亚历克斯!看来我应该访问 eclipse bug tracker。
      【解决方案3】:

      我可以确认 Sangesi 提供的答案,即使用“标准创建流程启动器”而不是 GDB (DSF) 也适用于我。 (我无法投票或评论他的回答,因为我还没有足够的声望点。)

      在 Windows 7、CDT v8.0.2、Cygwin、gdb v7.6.50 上使用 Eclipse Indigo 验证。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-01
        • 2020-09-02
        • 1970-01-01
        • 2018-03-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多