2013-10-15 19 views
9

Niedawno zacząłem używać Eclipse-CDT i byłem ciekawy "tego" i "tego @ wpisu" w oknie zmiennych w perspektywie debugowania. Oba mają ten sam adres pamięci i wyglądają identycznie, ale dlaczego obejmują oba? Czy "ten @ wpis" ma reprezentować stan "tego" w pewnym punkcie przerwania w funkcji? Czy wartości reprezentowane w "tym @ wpisie" wykraczają poza zakres, że tak powiem, i aktualizują "to", gdy funkcja zwraca?różnica między tym a tym elementem @?

They both have the same memory address but...

team1,2 i currentMatch są zmienne globalne do klasy jestem debugowania, a wartości graniczne są w funkcję składową tej klasy.

Odpowiedz

12

Forma @entry odnosi się do wartości parametru, gdy funkcja została wprowadzona. Nie zawsze jest to dostępne, ale czasami jest - istnieje dla niego rozszerzenie DWARF, a GCC emituje je, gdy jest to możliwe.

Istnieje kilka informacji tutaj:

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

IIRC w CLI GDB jest zdecydowaliśmy się na formacie, który tylko pokazuje „@entry” w śladów czynności, gdy różni się od bieżącej wartości. Ale MI (to, czego używa Eclipse) jest inne i z tego, co mówisz, wydaje się, że zawsze to pokazuje.

Powiązane problemy