Debugging/it

Prova preliminare
Prima di provare il debug usare la La struttura di Test (test framework - macro) per verificare se i test standard funzionano correttamente. Se non funzionano, è possibile che l'installazione sia danneggiata.

Riga di comando
Il debug di FreeCAD è supportato da alcuni meccanismi interni. La versione a riga di comando di FreeCAD fornisce delle opzioni di supporto del debug:

Queste sono le opzioni attualmente riconosciute in FreeCAD 0.15:

Opzioni generiche: -v [ --version ]     Stampa una stringa della versione -h [ --help ]        Stampa un messaggio di aiuto -c [ --console ]     Avvia in modalità console --response-file arg  Può anche essere specificato con '@name'

Configurazione: -l [ --write-log ]      Scrive un file di log file in: $HOME/.FreeCAD/FreeCAD.log --log-file arg          A differenza di --write-log permette di scrivere il file di log in un file arbitrario -u [ --user-cfg ] arg   File per caricare/salvare le impostazioni dell'utente -s [ --system-cfg ] arg File per caricare/salvare le impostazioni di sistema -t [ --run-test ] arg   Livello di Test -M [ --module-path ] arg Percorsi di moduli aggiuntivi -P [ --python-path ] arg Percorsi aggiuntivi di python

Generare un Backtrace
Se si esegue una versione sperimentale di FreeCAD ancora in fase sviluppo, essa potrebbe "bloccarsi". Si può aiutare gli sviluppatori a risolvere questi problemi fornendo loro un "backtrace". Per fare questo, è necessario eseguire un "debug build" del software. "Debug build" è un parametro che viene impostato al momento della compilazione, perciò bisogna auto-compilare FreeCAD, oppure ottenere una versione "debug" precompilata.

Per Linux
Linux Debugging > Prerequisiti:


 * pacchetto software gdb installato
 * un debug build di FreeCAD (in questo momento disponibili solo per la compilazione da sorgenti)
 * un modello di FreeCAD che causa un crash

Passaggi:

Immettere quanto segue nella finestra del terminale: $ cd FreeCAD/bin $ gdb FreeCAD GNUdebugger will output some initializing information. The (gdb) shows GNUDebugger is running in the terminal, now input: (gdb) handle SIG33 noprint nostop (gdb) run Ora FreeCAD viene avviato. Effettuare le operazioni che causano il crash o il blocco di FreeCAD, quindi immettere 'bt' nella finestra del terminale. (gdb) bt

Questo genera una lunga lista che descrive esattamente ciò che il programma stava facendo quando è andato in crash o in blocco. Includere questa lista nel vostro rapporto sul problema.

Per MacOSX
MacOSX Debugging > Prerequisiti:


 * pacchetto software lldb installato
 * un debug build di FreeCAD
 * un modello di FreeCAD che causa un crash

Passaggi:

Immettere quanto segue nella finestra del terminale:

$ cd FreeCAD/bin $ lldb FreeCAD LLDB produrrà alcune informazioni di inizializzazione. Il (lldb) mostra che il debugger è in esecuzione nel terminale, ora dare: (lldb) run

Ora FreeCAD viene avviato. Effettuare le operazioni che causano il crash o il blocco di FreeCAD, quindi immettere 'bt' nella finestra del terminale. (lldb) bt

Questo genera una lunga lista che descrive esattamente ciò che il programma stava facendo quando è andato in crash o in blocco. Includere questa lista nel vostro rapporto sul problema.

Eliminare errori Python
Per un approccio più moderno al debug di Python, almeno su Windows, vedere questo | post nel Forum.

Ecco un esempio di utilizzo di winpdb all'interno di FreeCAD:

We need the python debugger: Winpdb. If you do not have it installed, on Ubuntu/Debian install it with:

Now lets setup the debugger.


 * 1) Start Winpdb.
 * 2) Set the debugger password to "test": Go to menu File->''Password" and set the password.

Now we will run a test python script in FreeCAD step by step.


 * 1) Eseguire winpdb e impostare la password (ad esempio test)
 * 2) Creare un file Python con questo contenuto
 * 1) Avviare FreeCAD e caricare il file precedente in FreeCAD.
 * 2) Premere F6 per eseguirlo.
 * 3) Ora FreeCAD non risponde perché il debugger Python è in attesa
 * 4) Passare alla GUI di Windpdb e cliccare su "Attach". Dopo pochi secondi appare una voce "" su cui si deve fare doppio clic.
 * 5) Ora in Winpdb viene visualizzato lo script attualmente in esecuzione.
 * 6) Impostare un break nell'ultima riga e premere F5.
 * 7) Ora premere F7 per entrare nel codice Python di Draft.makeWire