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?
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.
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.
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.
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:
Wybierz Warunek ...
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
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.
- 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". - prawdopodobnie możesz to osiągnąć za pomocą opcji "zmienił się" w powyższym oknie dialogowym.
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