punkty przerwania danych w Javie / eclipse

Podczas tworzenia C++ Z VS masz tę niesamowitą funkcję punktów przerwania danych, które wyzwalają się, gdy dane pod określonym adresem w pamięci ulegną zmianie.

Czy istnieje podobna funkcja podczas tworzenia Javy w eclipse?

Dzięki!

Edit: o funkcji "suspend when value changes": mam wrażenie, że wykonanie musi nadal dotrzeć do linii, w której znajduje się punkt przerwania. chodzi o to, że chcę, aby uruchomił się w dowolnym miejscu, jak tylko zmieni się wartość.

Author: clamp, 2010-11-03

6 answers

Możesz ustawić punkt obserwacyjny na polu: Umieść kursor w linii, w której pole jest deklarowane i wybierz menu Run -> Toggle Watchpoint
możesz też ustawić punkt przerwania, klikając dwukrotnie na lewym marginesie tej linii.

Możesz zmienić właściwości punktu obserwacyjnego jak suspend on field access lub suspend on field modification Po dodaniu go. Kliknij prawym przyciskiem myszy punkt obserwacyjny na lewym marginesie i wybierz Breakpoint Properties...

Wyszukaj w pomocy punkt obserwacyjny, aby uzyskać więcej informacji:

Punkt obserwacyjny jest specjalnym punkt przerwania, który zatrzymuje wykonywanie aplikacji za każdym razem, gdy zmienia się wartość danego wyrażenia, bez określania miejsca, w którym może wystąpić. ...

 59
Author: Carlos Heuberger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-03 10:59:01

Użycie widoku zmiennej:

  • Kliknij prawym przyciskiem myszy pole i wybierz "Przełącz punkt obserwacyjny", a następnie
  • Kliknij prawym przyciskiem myszy ponownie tę samą instancję i wybierz " punkty przerwania instancji...", który pozwala ograniczyć określony punkt przerwania do danej instancji.

Zauważ, że wydajność prawdopodobnie nie jest tak dobra jak w przypadku hardware breakpoint pamięci (Jak na przykład w VC++).

 6
Author: Francois Misiak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-04 17:30:25

Pod właściwościami punktu przerwania masz możliwość warunkowego ustawienia go i zaznaczenia przycisku radiowego "Zawieś, gdy zmieni się wartość".

 3
Author: Neil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-03 10:30:04

Kliknij prawym przyciskiem myszy na punkcie przerwania i wybierz Breakpoint properties.

Na ekranie otwarcia wybierz: Conditional -> Suspend when value changes

 3
Author: Sean Patrick Floyd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-03 10:30:10

Najbliższą rzeczą będzie edycja właściwości punktu przerwania. Możesz dodać warunki, aby sprawdzić różne wartości. Innym sposobem może być dodanie punktu przerwania do metody setter.

Możesz ustawić właściwości punktu przerwania, klikając prawym przyciskiem myszy już ustawiony punkt przerwania w widoku punktu przerwania.

 1
Author: stacker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-03 10:29:06

Z tego co wiem, w Eclipse nie ma takiej ogólnej funkcji. Można jednak podać pewne warunki dla istniejącego punktu przerwania:

Dodaj punkt przerwania gdzieś w kodzie. Następnie w widoku" punkt przerwania " kliknij go prawym przyciskiem myszy, a następnie wybierz "Właściwości punktu przerwania". W panelu można dodać warunek, który musi zostać zweryfikowany, aby aplikacja zatrzymała się na tym punkcie przerwania(na przykład if (foo > 0)).

To nie jest dokładnie to, czego chcesz, ale nie sądzę, że Eclipse zapewnia takie cecha.

 1
Author: romaintaz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-03 10:30:14