Czy Mogę ustawić punkt przerwania, gdy zmienna otrzymuje określoną wartość in.NET?

Używam Visual Studio 2010 i Wiem, że ta funkcja jest dostępna w C++.

Muszę debugować jakiś kod, który zmienia zmienną na kilka wartości. Chcę debugować kod w konkretnym przypadku, gdy zmienna dostaje określoną wartość. Wiem, że mogę dodać if(var == value), ale czy jest na to jakiś elegancki sposób?

Kolejne pytanie, Czy Mogę ustawić punkt przerwania, gdy zmienna jest zmieniana w ogóle?

Author: Peter Mortensen, 2011-09-20

6 answers

Jest z pewnością możliwe ustawienie warunku takiego jak zmienna otrzymująca określoną wartość. Jest to znane jako warunek punktu przerwania. Aby go utworzyć, wykonaj następujące czynności.

  • Ustaw punkt przerwania w punkcie zmiany zmiennej
  • Kliknij prawym przyciskiem myszy punkt przerwania i wybierz "warunek"
  • wpisz warunkowe jak "theNewValue = = 42"

Teraz punkt przerwania zostanie osiągnięty tylko wtedy, gdy twój warunek zostanie obliczony na true.

Drugi element, o który prosiłeś, przerwanie, gdy wartość zmiennej zmienia się z dowolnego powodu, jest znany jako punkt przerwania danych. Są one dostępne tylko dla kodu C++. To nie jest opcja w C#, VB.NET lub jakikolwiek inny język zarządzany.

 77
Author: JaredPar,
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
2014-05-15 16:36:32

Tak długo, jak używasz edycji Visual Studio innej niż Express, możesz to osiągnąć w C#, używając warunku punktu przerwania .

W oknie dialogowym warunek punktu przerwania wprowadź poprawne wyrażenie w polu Warunek, na przykład myLocalVariable > 1

I

...Wybierz has changed jeśli chcesz złamać, gdy wartość wyrażenia ulegnie zmianie.

Aby przejść do opcji została zmieniona , Kliknij prawym przyciskiem myszy twój punkt przerwania w oknie punkty przerwania i wybierz warunek ..., a następnie sprawdź zrzut ekranu poniżej.

Zmieniono opcję dla warunków punktów przerwania

 4
Author: Richard Everett,
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-09-20 16:13:18

Dodaj punkt przerwania za pomocą F9-kliknij go prawym przyciskiem myszy i wybierz "Condition..." - teraz możesz dodać warunek logiczny, a punkt przerwania zostanie trafiony tylko wtedy, gdy warunek zostanie oceniony na true.

 3
Author: BrokenGlass,
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-09-20 16:02:03

To zależy od zakresu Twojego punktu przerwania. Jeśli zmienna nie jest lokalna lub statyczna, nie będziesz w stanie tego zrobić.

Aby ustawić stan punktu przerwania, kliknij go prawym przyciskiem myszy i powinieneś uzyskać ten ekran:

Tutaj wpisz opis obrazka

Wybierz Warunek ...

 3
Author: Pedro Costa,
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
2014-05-15 16:39:03

Możesz użyć warunkowych punktów przerwania. Wiem, że twoje pytanie dotyczyło VS2010, ale pamiętaj, że od VS2012 musisz przełączyć się na tryb zarządzanej zgodności, aby użyć warunkowych punktów przerwania w Visual Basic. Dlaczego i jak jest tu opisane:

Przełączanie-na-zarządzany-tryb-zgodności-w-visual-studio-2013

 2
Author: thewhiteambit,
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
2015-09-23 18:59:34

Możesz zrobić obie te rzeczy.

  1. Ustaw punkt przerwania w VS. kliknij prawym przyciskiem myszy czerwoną kropkę na marginesie i wybierz Dodaj warunek. Tam możesz powiedzieć var==value i wybrać "is True".
  2. prawdopodobnie możesz to osiągnąć za pomocą opcji "zmienił się" w powyższym oknie dialogowym.
 0
Author: i_am_jorf,
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-09-20 16:03:30