使用 Eclipse Debugger 调试 Eclipse CDT 时的奇怪行为

Strange behavior when debugging Eclipse CDT with Eclipse Debugger

调试 Eclipse CDT 代码时,我发现了一个奇怪的行为。我试着用屏幕截图来解释它。我相信不了解 CDT 的人仍然可以给我这个问题的答案,因为我认为它通常与使用 Eclipse 的(调试)Java 代码有关。

您在突出显示的行中看到的 IIndexFile file 将包含一个值错误的字段,我试图了解该值的来源。

输入前getFile():

getFile() 中创建了一个新的 PDOMFile。调用带有两个参数的构造函数:

在离开构造函数之前不久,我们可以在右侧看到 location 为空。不足为奇,因为它尚未设置。

下一张图片显示了让我有点吃惊的第一件事。当为 PDOMFILE 离开构造函数时,我实际上希望调试器告诉我 return 值。相反,它显示 No explicit return value。可能是因为它是构造函数,也可能是因为 if 语句。

现在突出显示的行显示配音者已从通话 getFile() 返回,但尚未完成对 file 的分配。我们可以看到 location 字段仍然为空。

这就是我不明白的地方。为什么 location 现在来自文件集?

调试器调用 toString() 以获取显示在 "Variables" 视图底部窗格中的字符串。 PDOMFile.toString() 调用 getLocation(),它在第一次调用时设置 location