15

我最近开始使用 Eclipse-CDT,并对调试透视图中变量窗口中的“this”和“this@entry”感到好奇。它们都具有相同的内存地址并且看起来相同,但是为什么要同时包含它们呢?'this@entry' 是否意味着在函数内的某个断点处表示 'this' 的状态?'this@entry' 下表示的值是否超出范围,可以这么说,并在函数返回时更新'this'?

它们都具有相同的内存地址,但是...

team1,2 和 currentMatch 是我正在调试的类的全局变量,断点位于该类的成员函数中。

4

1 回答 1

20

@entry 形式是指输入函数时参数的值。这并不总是可用的,但有时它是可用的——它有一个 DWARF 扩展,并且 GCC 会在可能的情况下发出它。

这里有一些信息:

https://sourceware.org/gdb/onlinedocs/gdb/Variables.html

IIRC 在 gdb 的 CLI 中,我们决定了一种格式,当它与当前值不同时,它只在回溯中显示“@entry”。但是 MI(Eclipse 使用的)与您所说的不同,它似乎总是显示出来。

于 2013-10-15T18:39:32.093 回答