Отладка
Что такое отладка
Отладка — это процесс, в ходе которого вы можете обнаружить и исправить ошибки, присутствующие в вашем коде.
Любая программа .NET может работать в двух разных режимах.
- Режим выпуска — обычно используется в производственных средах. При его использовании .NET обеспечивает различные оптимизации компилятора и JIT-компиляции, которые повышают скорость выполнения вашего кода и уменьшают его объем в памяти.
- Режим отладки — в основном используется в средах разработки и тестирования. Все оптимизации отключены, и вы можете подключить отладчики .NET к своему коду.
При работе с библиотеками и приложениями .NET отладка включает в себя следующее:
- Запуск вашего кода в режиме отладки
- Подключение отладчика .NET к вашему коду
- Установка точек останова в коде, чтобы указать, должен ли поток выполнения приостановиться
- Отслеживание потока выполнения кода с запланированными паузами в точках останова
Определение отладчиков .NET
Отладчики .NET — это программы, которые используют API среды выполнения. Эти API, в свою очередь, позволяют управлять потоком выполнения процессов .NET. Другими словами, они могут приостанавливать выполнение в заданных точках останова и сохранять различные состояния (включая значения, которые содержат отдельные переменные в этих состояниях).
Сборка алгоритмов в режиме отладки
Как мы обсуждали выше, отладка сиБота или индикатора подразумевает сборку этого расширения в режиме отладки. По умолчанию, когда вы нажимаете кнопку Build в интерфейсе cTrader, ваше расширение запускается в режиме релиза для включения оптимизации кода.
Чтобы собрать свой сиБот или индикатор в режиме отладки, вам нужно использовать либо .NET CLI, либо внешние IDE, такие как Visual Studio. В этой документации мы показываем процесс отладки так, как он происходит в Visual Studio. Однако этот процесс также может быть воспроизведен в других IDE с незначительными изменениями.
Установите последнюю версию Visual Studio на свой компьютер и выполните следующие действия:
-
Откройте свой индикатор или сиБот в Visual Studio, выбрав опцию Edit in Visual Studio в выпадающем меню Edit in... в верхней части окна редактора кода.
-
В меню над редактором кода Visual Studio выберите Debug.

- Соберите свой сиБот или индикатор в режиме отладки.
Отладка сиБота или индикатора
Теперь, когда вы знаете, как собрать сиБот или индикатор в режиме отладки, мы сосредоточимся на том, как его фактически отлаживать.
-
Измените права доступа вашего индикатора или сиБота на
FullAccess. -
Подключите отладчик к запущенному процессу вашего индикатора или сиБота. Вы можете сделать это, вызвав метод
System.Diagnostics.Debugger.Launch().
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 9 | |
Примечание
Метод System.Diagnostics.Debugger.Launch() должен быть вызван в методе OnStart() (для сиБота) или в методе Initialize() (для индикатора).
- Запустите новый экземпляр вашего сиБота или индикатора. Если экземпляр уже запущен, выберите его в интерфейсе. Вы должны быть перенаправлены в Visual Studio с запросом на выбор отладчика. Сделайте это и нажмите OK.

После начала отладки вы можете устанавливать точки останова, (пошагово) проходить строки кода и просматривать стек вызовов и значения переменных.
Полное руководство по отладке в Visual Studio см. в документации по отладке Visual Studio.
Использование директивы препроцессора DEBUG
Вы также можете использовать директиву препроцессора DEBUG в коде вашего сиБота или индикатора для управления потоком выполнения.
Директива #if DEBUG полезна, когда вы хотите запустить только блок или строку кода в режиме отладки.
1 2 3 4 5 6 7 8 9 | |
В приведенном выше примере строка кода "Not Debugging" не будет скомпилирована, если вы соберете свой сиБот в режиме отладки.
Дополнительная информация о директивах препроцессора C# доступна в этой документации.