Jak ustawić warunkowe punkty przerwania w programie Visual Studio?


133

Czy istnieje łatwy sposób ustawiania warunkowych punktów przerwania w programie Visual Studio?

Jeśli chcę osiągnąć punkt przerwania tylko wtedy, gdy wartość zmiennej stanie się czymś, jak mogę to zrobić?


11
Należy pamiętać, że wersja Express nie ma tej funkcji.
— Alexei Levenkov

1
Używam Express 2015 i ma możliwość warunkowych punktów przerwania
— mark.monteiro

1
Wydanie społecznościowe z 2017 roku zawiera również warunkowe punkty przerwania
— PentiumPro200,

Odpowiedzi:


174

Ustaw punkt przerwania jak zwykle. Kliknij prawym przyciskiem myszy. Kliknij Warunek.


1
W VS 2015 musisz najechać kursorem na punkt przerwania i kliknąć ikonę koła zębatego, aby ustawić warunki
— mark.monteiro

Masz na myśli, że kliknij prawym przyciskiem myszy, ustaw warunek, uzyskaj błąd „Warunek dla punktu przerwania nie powiódł się”… prawda?
— Toby Caulk

1
Odpowiedź powinna również zawierać składnię instrukcji warunkowych lub łącze informacyjne.
— Andrew

50

Podczas korzystania z wersji Express możesz spróbować tego:

#if DEBUG
    if( fooVariable == true )
        System.Diagnostics.Debugger.Break();
#endif

instrukcja if zapewnia, że ​​w wydaniu nie będzie punktu przerwania kompilacji.


3
Ma to dużą zaletę w zakresie wydajności / oszczędności czasu. Iterowałem przez wszystkie potencjalne „id” int w moim programie (tylko około 3,5 miliona), co zajmuje tylko kilka sekund. Próbowałem użyć warunkowego punktu przerwania, ale ponieważ nie znajdował się on w gałęzi warunkowej, spowolnił on szybkość wykonywania do punktu, w którym po kilku minutach po prostu zamykałem sesję debugowania. Użycie skompilowanego punktu przerwania sprawiło, że był on natychmiastowy.
— Kanapka ze

35

Program Visual Studio udostępnia wiele opcji warunkowych punktów przerwania:

Aby ustawić dowolne z tych ty

  1. Ustaw punkt przerwania.
  2. Kliknij prawym przyciskiem myszy punkt przerwania iw menu podręcznym wybierz opcję, która Ci odpowiada.

Te opcje są następujące:

  • Możesz ustawić warunek na podstawie dostarczonego wyrażenia kodu (wybierz Warunek z menu podręcznego). Na przykład możesz określić to foo == 8lub inne wyrażenie.
  • Możesz wyzwolić punkty przerwania, gdy zostaną trafione określoną liczbę razy. (wybierz Licznik trafień z menu podręcznego). Jest to fajna opcja do zabawy, ponieważ w rzeczywistości nie jesteś ograniczony do łamania określonej liczby trafień, ale masz również opcje dla kilku innych scenariuszy. Zostawię ci zbadanie możliwości.
  • Możesz ustawić filtry dla identyfikatora procesu, identyfikatora wątku i nazwy komputera (wybierz Filtr z menu podręcznego)

16

Po prostu inny sposób na zrobienie tego (lub jeśli używasz ekspresu) dodaj warunek w kodzie:

if(yourCondition)
{
    System.Diagnostics.Debugger.Break();
}

9
  1. Ustaw punkt przerwania na linii
  2. Prawe kliknięcie na czerwoną piłkę
  3. Wybierz warunkowy punkt przerwania
  4. Warunek konfiguracji

8

Pisanie aktualnego stanu może być trudną częścią, więc zwykle to robię

  1. Ustaw zwykły punkt przerwania .
  2. Uruchom kod, aż punkt przerwania zostanie trafiony po raz pierwszy.
  3. Użyj okna bezpośredniego (Debugowanie> Windows> Natychmiastowe), aby przetestować wyrażenie .
  4. Kliknij prawym przyciskiem myszy punkt przerwania, kliknij opcję Warunek i wklej w wyrażeniu .

Zalety korzystania z okna bezpośredniego:

  • Posiada technologię IntelliSense .
  • Możesz mieć pewność, że zmienne w wyrażeniu znajdują się w zakresie, gdy wyrażenie jest oceniane.
  • Możesz być pewien, że twoje wyrażenie zwróci prawdę lub fałsz .

Ten przykład nie działa, gdy kod odwołuje się do tabeli o nazwie „Ustawienie”:

table.GetTableName().Contains("Setting")

5

Utwórz punkt przerwania w normalny sposób, kliknij prawym przyciskiem myszy czerwoną kropkę i wybierz „warunek”.


4
  1. Ustaw punkt przerwania jak zwykle
  2. Kliknij prawym przyciskiem myszy punkt przerwania i wybierz Warunek
  3. Zobaczysz okno dialogowe z napisem „Stan punktu przerwania”
  4. Umieść warunek w polu, np. „I == 5”

Punkt przerwania zostanie trafiony tylko wtedy, gdy i wynosi 5.


4
  1. Ustaw punkt przerwania jak zwykle.
  2. Kliknij prawym przyciskiem myszy znacznik punktu przerwania
  3. Kliknij „Warunek ...”
  4. Napisz warunek, możesz użyć nazw zmiennych
  5. Wybierz „Prawda” lub „Zmieniła się”

4

W programie Visual Studio 6.0

Alt+ F9!!!


1
-1) To nie działa w VS 2012 2) To pytanie ma już wiele innych (lepszych) odpowiedzi i 3) kogo obchodzi VS 6.0 (wydany w 1998)? 4) Nawet jeśli komuś zależy na VS 6, pytanie jest oznaczone tagiem .Net, który nie miał wsparcia do następnej wersji VS (Visual Studio .Net)
— Tim Medora

7
Cóż, inne odpowiedzi nie działają w VS 6.0. Więc wysłałem rozwiązanie.
— Vorac,

1

Ustaw breakpointjak zwykle, kliknij prawym przyciskiem myszy punkt przerwania i wybierz condionopcję i ustaw swój warunek.


1

Utwórz punkt przerwania funkcji warunkowej:

  1. W oknie Punkty przerwania kliknij Nowy, aby utworzyć nowy punkt przerwania.

  2. Na karcie Funkcja wpisz Odwróć dla funkcji. Wpisz 1 dla wiersza, wpisz 1 dla znaku, a następnie ustaw Język na Podstawowy.

  3. Kliknij opcję Warunek i upewnij się, że pole wyboru Warunek jest zaznaczone. W instr.length > 0polu Warunek wpisz warunek, upewnij się, że jest zaznaczona opcja jest prawdziwa, a następnie kliknij przycisk OK.

  4. W oknie dialogowym Nowy punkt przerwania kliknij OK.

  5. W menu Debug kliknij Start.


0

Jeśli pochodzisz z Google, ta odpowiedź może być tym, czego szukasz.

  1. Kliknij opcję Debuguj> Nowy punkt przerwania> Punkt przerwania funkcji wprowadź opis obrazu tutaj

  2. tam wybierz warunkowy punkt przerwania.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.