2013-10-15 9 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がこれを発行します。我々はそれが現在の値と異なる場合のみ、バックトレースで「@entry」を示してフォーマットを決定し、GDBのCLIで

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

IIRC:

ここにいくつかの情報があります。しかし、MI(Eclipseは何を使用しているか)は異なっており、あなたが言うこととは常にそれを示すようです。

関連する問題