2013-10-15 38 views
9

我最近開始使用Eclipse-CDT,並且在調試透視圖的變量窗口中對'this'和'this @ entry'很好奇。他們都有相同的內存地址,看起來完全相同,但爲什麼包含這兩個呢? 'this @ entry'意味着在函數內的某個斷點處表示'this'的狀態嗎?在'this @ entry'下表示的值是否超出範圍,可以這麼說,並且在函數返回時更新'this'?這個和這個@入口的區別是什麼?

They both have the same memory address but...

team1,2和currentMatch是全局變量來我調試的類,並且在斷點是在類的成員函數。

回答

12

@entry表單是指輸入函數時參數的值。這並不總是可用的,但有時它是 - 它有一個DWARF擴展名,GCC在可能的情況下發出這個擴展名。

有一些信息:

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

IIRC在gdb的CLI我們決定的格式,只顯示在回溯「@entry」,當它從當前值是不同的。但是MI(Eclipse所使用的)與我們所說的不同,它似乎始終顯示它。