Jak ustawić warunkowe punkty przerwania w Visual Studio?

Czy istnieje łatwy sposób na ustawienie warunkowych punktów przerwania w Visual Studio?

Jeśli chcę trafić punkt przerwania tylko wtedy, gdy wartość zmiennej staje się czymś, jak Mogę to zrobić?

Author: Peter Mortensen, 2011-07-13

12 answers

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

 144
Author: Jeff,
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-07-12 20:10:05

Podczas korzystania z Express edition Możesz spróbować tego:

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

If statement upewnia się, że w release build breakepoint nie będzie obecny.

 42
Author: panako,
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
2013-11-19 14:11:51

Visual Studio oferuje wiele opcji dla warunkowych punktów przerwania:

Aby ustawić którąś z nich

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

Opcje te są następujące:

  • możesz ustawić warunek oparty na wyrażeniu kodu, które podasz (wybierz warunek z menu podręcznego). Na przykład można podać, że foo = = 8 lub inny ekspresja.
  • możesz wyzwalać punkty przerwania po ich trafieniu określoną liczbę razy. (wybierz liczba trafień z menu podręcznego). Jest to zabawna opcja do gry, ponieważ w rzeczywistości nie ograniczasz się do złamania pewnej liczby trafień, ale masz również opcje dla kilku innych scenariuszy. Zostawiam ci zbadanie możliwości.
  • możesz ustawić filtry NA ID procesu, ID wątku i nazwie maszyny (wybierz filtr z wyskakującego okienka menu)
 30
Author: C Johnson,
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-07-12 20:23:43

Po prostu inny sposób, (lub jeśli używasz express) Dodaj warunek w kodzie:

if(yourCondition)
{
    System.Diagnostics.Debugger.Break();
}
 14
Author: Ignacio Soler Garcia,
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-28 11:46:58
  1. Ustaw punkt przerwania na linii
  2. prawy klik na czerwonej kuli
  3. Wybierz conditioal breakpoint
  4. warunek Konfiguracji
 9
Author: Tigran,
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-07-12 20:10:25
  1. Ustaw jak zwykle punkt przerwania.
  2. Kliknij prawym przyciskiem myszy znacznik punktu przerwania
  3. Kliknij " Warunek..."
  4. Napisz warunek, możesz używać nazw zmiennych
  5. Wybierz "is True "lub"Has Changed"
 5
Author: Casey,
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-07-12 20:13:42

Utwórz punkt przerwania jak zwykle, kliknij prawym przyciskiem myszy czerwoną kropkę i wybierz "warunek".

 5
Author: Brandon Moretz,
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-25 18:53:49

Pisanie stanu faktycznego może być trudną częścią, więc mam tendencję do

  1. Ustaw zwykły punkt przerwania
  2. Uruchom kod aż punkt przerwania zostanie osiągnięty po raz pierwszy
  3. Użyj okna Immediate (Debug > Windows > Immediate), aby przetestować wyrażenie .
  4. Kliknij prawym przyciskiem myszy punkt przerwania, kliknij warunek i wklej w swoim wyrażenie .

Zalety korzystania z bezpośredniego okna

  • mA intellisense
  • możesz być pewien, że zmienne w wyrażeniu są w zakresie, gdy wyrażenie jest oceniane
  • możesz być pewien, że Twoje wyrażenie zwróci true lub false

Ten przykład łamie się, gdy kod odnosi się do tabeli o nazwie "Setting"

table.GetTableName().Contains("Setting")
 5
Author: Andy Joiner,
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-05-12 21:30:00
  1. Ustaw jak zwykle punkt przerwania
  2. Kliknij prawym przyciskiem myszy punkt przerwania i wybierz warunek
  3. zobaczysz okno dialogowe z napisem "warunek punktu przerwania"
  4. Umieść warunek w polu np. "i= = 5"

Punkt przerwania zostanie trafiony tylko wtedy, gdy będę miał 5.

 4
Author: user423119,
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-07-12 20:11:44

On Visual Studio 6.0

Alt+F9 !!!

 3
Author: Vorac,
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-03-11 12:18:26

Ustaw breakpoint jak zwykle, kliknij prawym przyciskiem myszy punkt przerwania i wybierz opcję condion i ustaw swój stan.

 1
Author: FIre Panda,
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-07-12 20:12:23

Utwórz punkt przerwania funkcji warunkowej

1)w oknie punktów przerwania kliknij przycisk Nowy, aby utworzyć nowy punkt przerwania.

2) na karcie Function wpisz Reverse for Function. Wpisz 1 dla linii, wpisz 1 dla znaku, a następnie Ustaw język na Basic.

3) Kliknij warunek i upewnij się, że pole wyboru warunek jest zaznaczone. Typ instr.Długość > 0 dla warunku upewnij się, że opcja jest true jest zaznaczona, a następnie kliknij OK.

4) w nowym oknie dialogowym Breakpoint, kliknij OK.

5)w menu debugowania kliknij Start.

 0
Author: JAiro,
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-07-12 20:11:00