Debugowanie
Czym jest debugowanie
Debugowanie to proces, podczas którego możesz wykrywać i naprawiać błędy obecne w kodzie.
Każdy program .NET może działać w dwóch różnych trybach.
- Tryb wydania – zwykle używany w środowiskach produkcyjnych. Podczas korzystania z niego .NET włącza różne optymalizacje kompilatora i just-in-time, które poprawiają szybkość wykonywania kodu i zmniejszają jego zużycie pamięci.
- Tryb debugowania – używany głównie w środowiskach programistycznych i testowych. Wszystkie optymalizacje są wyłączone i możesz dołączyć debugery .NET do swojego kodu.
Podczas pracy z bibliotekami i aplikacjami .NET debugowanie obejmuje następujące elementy:
- Uruchamianie kodu w trybie debugowania
- Dołączanie debugera .NET do kodu
- Ustawianie punktów przerwania kodu w celu wskazania, czy przepływ wykonania powinien zostać wstrzymany
- Śledzenie przepływu wykonania kodu z zaplanowanymi przerwami w punktach przerwania
Definiowanie debugerów .NET
Debugery .NET to programy, które wykorzystują interfejsy API środowiska uruchomieniowego. Te interfejsy API z kolei umożliwiają kontrolowanie przepływu wykonywania procesów .NET. Innymi słowy, mogą wstrzymać wykonywanie w danych punktach przerwania i przechowywać różne stany (w tym wartości, które poszczególne zmienne przechowują podczas tych stanów).
Buduj algorytmy w trybie debugowania
Jak omówiliśmy powyżej, debugowanie cBota lub wskaźnika wiąże się z zbudowaniem tego rozszerzenia w trybie debugowania. Domyślnie, gdy klikniesz przycisk Build w interfejsie użytkownika cTrader, Twoje rozszerzenie działa w trybie wydania, aby umożliwić optymalizację kodu.
Aby zbudować swojego cBota lub wskaźnik w trybie debugowania, musisz użyć interfejsu wiersza poleceń .NET CLI lub zewnętrznych środowisk IDE, takich jak Visual Studio. W tej dokumentacji pokazujemy proces debugowania w taki sposób, w jaki występuje w Visual Studio. Jednak proces ten można również odtworzyć w innych środowiskach IDE z niewielkimi zmianami.
Zainstaluj najnowszą wersję Visual Studio na swoim komputerze i wykonaj następujące czynności:
-
Otwórz swój wskaźnik lub cBota w Visual Studio, wybierając opcję Edit in Visual Studio z menu rozwijanego Edit in... u góry okna edytora kodu.
-
W menu nad edytorem kodu Visual Studio wybierz Debug.

- Zbuduj swojego cBota lub wskaźnik w trybie debugowania.
Debuguj cBota lub wskaźnik
Teraz, gdy wiesz, jak zbudować cBota lub wskaźnik w trybie debugowania, skupimy się na tym, jak faktycznie go debugować.
-
Zmień prawa dostępu swojego wskaźnika lub cBota na
FullAccess. -
Dołącz debuger do uruchomionego procesu swojego wskaźnika lub cBota. Możesz to zrobić, wywołując metodę
System.Diagnostics.Debugger.Launch().
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 9 | |
Uwaga
Metoda System.Diagnostics.Debugger.Launch() musi zostać wywołana w metodzie OnStart() (dla cBota) lub w metodzie Initialize() (dla wskaźnika).
- Uruchom nową instancję swojego cBota lub wskaźnika. Jeśli instancja jest już uruchomiona, wybierz ją w interfejsie użytkownika. Powinieneś zostać przekierowany do Visual Studio z monitem o wybranie debugera. Zrób to i kliknij OK.

Po rozpoczęciu debugowania możesz ustawić punkty przerwania, (wejść do) linii kodu i zobaczyć stos wywołań oraz wartości zmiennych.
Aby uzyskać kompletny przewodnik dotyczący debugowania w Visual Studio, sprawdź dokumentację debugowania Visual Studio.
Użyj dyrektywy preprocesora DEBUG
Możesz również użyć dyrektywy preprocesora DEBUG w kodzie swojego cBota lub wskaźnika, aby kontrolować przepływ wykonywania.
Dyrektywa #if DEBUG jest przydatna, gdy chcesz uruchomić tylko blok lub linię kodu w trybie debugowania.
1 2 3 4 5 6 7 8 9 | |
W powyższym przykładzie linia kodu „Not Debugging" nie zostanie skompilowana, jeśli zbudujesz swojego cBota w trybie debugowania.
Dodatkowe informacje na temat dyrektyw preprocesora C# są dostępne w tej dokumentacji.