Debug
Cos'è il debug
Il debug è un processo durante il quale è possibile rilevare e correggere gli errori presenti nel codice.
Qualsiasi programma .NET può essere eseguito in due modalità diverse.
- Modalità Release - generalmente utilizzata negli ambienti di produzione. Quando la si utilizza, .NET abilita varie ottimizzazioni del compilatore e just-in-time che migliorano la velocità con cui il codice viene eseguito e riducono il suo ingombro di memoria.
- Modalità Debug - utilizzata principalmente negli ambienti di sviluppo e test. Tutte le ottimizzazioni sono disabilitate ed è possibile collegare i debugger .NET al codice.
Quando si lavora con librerie e applicazioni .NET, il debug comporta quanto segue:
- Eseguire il codice in modalità debug
- Collegare un debugger .NET al codice
- Impostare i breakpoint del codice per indicare se il flusso di esecuzione deve essere messo in pausa
- Seguire il flusso di esecuzione del codice con pause pianificate ai breakpoint
Definire i debugger .NET
I debugger .NET sono programmi che utilizzano le API di runtime. Queste API, a loro volta, consentono di controllare il flusso di esecuzione dei processi .NET. In altre parole, possono mettere in pausa l'esecuzione in determinati breakpoint e memorizzare vari stati (inclusi i valori che le singole variabili contengono durante questi stati).
Compilare gli algo in modalità debug
Come abbiamo discusso sopra, il debug di un cBot o di un indicatore comporta la compilazione di questa estensione in modalità debug. Per impostazione predefinita, quando si fa clic sul pulsante Build nell'interfaccia utente di cTrader, l'estensione viene eseguita in modalità release per abilitare le ottimizzazioni del codice.
Per compilare il cBot o l'indicatore in modalità debug, è necessario utilizzare la .NET CLI o IDE esterni come Visual Studio. In questa documentazione, mostriamo il processo di debug come avviene in Visual Studio. Tuttavia, questo processo può essere replicato anche in altri IDE con modifiche minori.
Installa la versione più recente di Visual Studio sul tuo computer ed esegui le seguenti azioni:
-
Apri l'indicatore o il cBot in Visual Studio selezionando l'opzione Edit in Visual Studio nel menu a discesa Edit in... nella parte superiore della finestra dell'editor di codice.
-
Nel menu sopra l'editor di codice di Visual Studio, seleziona Debug.

- Compila il cBot o l'indicatore in modalità debug.
Eseguire il debug di un cBot o di un indicatore
Ora che sai come compilare un cBot o un indicatore in modalità debug, ci concentreremo su come eseguirne effettivamente il debug.
-
Modifica i diritti di accesso dell'indicatore o del cBot in
FullAccess. -
Collega un debugger al processo in esecuzione dell'indicatore o del cBot. Puoi farlo chiamando il metodo
System.Diagnostics.Debugger.Launch().
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 7 8 9 | |
Nota
Il metodo System.Diagnostics.Debugger.Launch() deve essere chiamato nel metodo OnStart() (per un cBot) o nel metodo Initialize() (per un indicatore).
- Esegui una nuova istanza del cBot o dell'indicatore. Se un'istanza è già in esecuzione, selezionala nell'interfaccia utente. Dovresti essere reindirizzato a Visual Studio con una richiesta di selezionare un debugger. Fallo e fai clic su OK.

Una volta avviato il debug, puoi impostare i breakpoint, (entrare) nelle righe di codice e visualizzare lo stack di chiamate e i valori delle variabili.
Per una guida completa su come eseguire il debug in Visual Studio, consulta la documentazione sul debug di Visual Studio.
Utilizzare la direttiva del preprocessore DEBUG
Puoi anche utilizzare la direttiva del preprocessore DEBUG nel codice del cBot o dell'indicatore per controllare il flusso di esecuzione.
La direttiva #if DEBUG è utile quando si desidera eseguire solo un blocco o una riga di codice in modalità debug.
1 2 3 4 5 6 7 8 9 | |
Nell'esempio sopra, la riga di codice "Not Debugging" non verrà compilata se compili il cBot in modalità debug.
Ulteriori informazioni sulle direttive del processore C# sono disponibili in questa documentazione.