我最近开始使用 Eclipse-CDT,并对调试透视图中变量窗口中的“this”和“this@entry”感到好奇。它们都具有相同的内存地址并且看起来相同,但为什么要包含两者呢? 'this@entry' 是否意味着在函数内的某个断点处表示 'this' 的状态? 'this@entry' 下表示的值是否超出范围,可以这么说,并在函数返回时更新 'this'?
team1,2 和 currentMatch 是我正在调试的类的全局变量,断点在该类的成员函数中。
最佳答案
@entry形式是指函数进入时参数的值。这并不总是可用,但有时是可用的——它有一个 DWARF 扩展,并且 GCC 在可能的情况下发出它。
这里有一些信息:
https://sourceware.org/gdb/onlinedocs/gdb/Variables.html
IIRC 在 gdb 的 CLI 中,我们决定采用一种格式,当它与当前值不同时,仅在回溯中显示“@entry”。但是 MI(Eclipse 使用的)与您所说的不同,它似乎总是显示它。
关于c++ - this 和 this@entry 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19386073/