Depuración
Qué es la depuración
La depuración es un proceso durante el cual puede detectar y corregir los errores presentes en su código.
Cualquier programa .NET puede ejecutarse en dos modos diferentes.
- Modo de lanzamiento - típicamente utilizado en entornos de producción. Al usarlo, .NET habilita varias optimizaciones del compilador y de tiempo de ejecución que mejoran la velocidad con la que se ejecuta su código y reducen su huella de memoria.
- Modo de depuración - principalmente utilizado en entornos de desarrollo y pruebas. Todas las optimizaciones están deshabilitadas y puede adjuntar depuradores .NET a su código.
Cuando se trabaja con bibliotecas y aplicaciones .NET, la depuración implica lo siguiente:
- Ejecutar su código en modo de depuración
- Adjuntar un depurador .NET a su código
- Establecer puntos de interrupción en el código para indicar si el flujo de ejecución debe pausarse
- Seguir el flujo de ejecución del código con pausas planificadas en los puntos de interrupción
Definir depuradores .NET
Los depuradores .NET son programas que utilizan APIs de tiempo de ejecución. Estas APIs, a su vez, permiten controlar el flujo de ejecución de los procesos .NET. En otras palabras, pueden pausar la ejecución en puntos de interrupción dados y almacenar varios estados (incluyendo los valores que las variables individuales contienen durante estos estados).
Construir algoritmos en modo de depuración
Como hemos discutido anteriormente, depurar un cBot o un indicador implica construir esta extensión en modo de depuración. Por defecto, cuando hace clic en el botón Construir en la interfaz de usuario de cTrader, su extensión se ejecuta en modo de lanzamiento para habilitar las optimizaciones de código.
Para construir su cBot o indicador en modo de depuración, necesita usar la CLI de .NET o IDEs externos como Visual Studio. En esta documentación, mostramos el proceso de depuración tal como ocurre en Visual Studio. Sin embargo, este proceso también se puede replicar en otros IDEs con cambios menores.
Instale la última versión de Visual Studio en su máquina y realice las siguientes acciones:
-
Abra su indicador o cBot en Visual Studio seleccionando la opción Editar en Visual Studio en el menú desplegable Editar en... en la parte superior de la ventana del editor de código.
-
En el menú sobre el editor de código de Visual Studio, seleccione Depurar.

- Construya su cBot o indicador en modo de depuración.
Depurar un cBot o indicador
Ahora que sabe cómo construir un cBot o indicador en modo de depuración, nos centraremos en cómo depurarlo realmente.
-
Cambie los derechos de acceso de su indicador o cBot a
FullAccess. -
Adjunte un depurador al proceso en ejecución de su indicador o cBot. Puede hacerlo llamando al método
System.Diagnostics.Debugger.Launch().
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 9 | |
Nota
El método System.Diagnostics.Debugger.Launch() debe ser llamado en el método OnStart() (para un cBot) o el método Initialize() (para un indicador).
- Ejecute una nueva instancia de su cBot o indicador. Si ya hay una instancia en ejecución, selecciónela en la interfaz de usuario. Debería ser redirigido a Visual Studio con un mensaje para seleccionar un depurador. Hágalo y haga clic en Aceptar.

Una vez que comience la depuración, puede establecer puntos de interrupción, (entrar en) líneas de código y ver la pila de llamadas y los valores de las variables.
Para una guía completa sobre cómo depurar en Visual Studio, consulte la documentación de depuración de Visual Studio.
Usar la directiva de preprocesador DEBUG
También puede usar la directiva de preprocesador DEBUG en el código de su cBot o indicador para controlar el flujo de ejecución.
La directiva #if DEBUG es útil cuando desea ejecutar solo un bloque o una línea de código en modo de depuración.
1 2 3 4 5 6 7 8 9 | |
En el ejemplo anterior, la línea de código "Not Debugging" no se compilará si construye su cBot en modo de depuración.
Información adicional sobre las directivas de procesador de C# está disponible en esta documentación.