2

我对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 结构的成员?它似乎总是有利于我打开查看的第一个结构,而第二个总是空白 - 这在任何可能的方式上都不方便:(内存视图也是如此 - 如果它是一个嵌套结构成员可以'由于错误/未知地址,不为其打开内存视图。

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

链接到完整的项目代码。

4

3 回答 3

2

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

在此处输入图像描述

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

于 2013-10-28T10:54:32.997 回答
1

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

我在 Linux (Ubuntu) 上使用默认工具链 (Linux GCC) 在 Kepler SR1 下尝试了你的示例,它似乎在那里工作正常:Linux 上的扩展变量

但是在 Windows 8 上的 Kepler SR1 下,我遇到了与您相同的问题:“无成员”和“空白空间”。由于某种原因,它试图评估错误的表达式((mydat).i2而不是(mydat).s2.i2)并从 gdb 接收相应的答案(“没有名为 i2 的成员”)。

这是在控制台中使用 gdb 进行的小测试,预期结果:gdb 控制台测试(请参阅最后 2 个命令)

它看起来像 Windows 版本的 Eclipse 中的 UI 错误之类的。

于 2013-10-21T08:57:21.037 回答
0

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

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

于 2014-02-13T09:37:24.737 回答