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.