Debugging/it: Difference between revisions
(Updating to match new version of source page) |
(Updating to match new version of source page) |
||
Line 25: | Line 25: | ||
Immettere quanto segue nella finestra del terminale: |
Immettere quanto segue nella finestra del terminale: |
||
<pre> |
<pre> |
||
cd FreeCAD/bin |
|||
gdb FreeCAD |
|||
handle SIG33 noprint nostop |
|||
run |
|||
</pre> |
</pre> |
||
Ora FreeCAD viene avviato. Effettuare le operazioni che causano il crash di FreeCAD, quindi immettere 'bt' nella finestra del terminale. Questo genera una lunga lista che descrive esattamente ciò che il programma stava facendo quando è andato in crash. Includere questa lista nel vostro rapporto sul problema. |
Ora FreeCAD viene avviato. Effettuare le operazioni che causano il crash di FreeCAD, quindi immettere 'bt' nella finestra del terminale. Questo genera una lunga lista che descrive esattamente ciò che il programma stava facendo quando è andato in crash. Includere questa lista nel vostro rapporto sul problema. |
Revision as of 20:50, 8 November 2014
Prova preliminare
Prima di provare il debug usare il framework (macro) di test 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:
- -v
- Con la opzione "v" FreeCAD fornisce un output più dettagliato.
- -l
- Con la opzione "l" FreeCAD scrive informazioni aggiuntive in un file di log.
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 autocompilare FreeCAD, oppure ottenere una versione "debug" pre-compilata.
Per Linux
Prerequisiti:
- pacchetto software gdb 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 gdb FreeCAD handle SIG33 noprint nostop run
Ora FreeCAD viene avviato. Effettuare le operazioni che causano il crash di FreeCAD, quindi immettere 'bt' nella finestra del terminale. Questo genera una lunga lista che descrive esattamente ciò che il programma stava facendo quando è andato in crash. Includere questa lista nel vostro rapporto sul problema.
Python debugging
Ecco un esempio di utilizzo di winpdb all'interno di FreeCAD:
- Eseguire winpdb e impostare la password (ad esempio test)
- Creare un file Python con questo contenuto
import rpdb2
rpdb2.start_embedded_debugger("test")
import FreeCAD
import Part
import Draft
print "hello"
print "hello"
import Draft
points=[FreeCAD.Vector(-3.0,-1.0,0.0),FreeCAD.Vector(-2.0,0.0,0.0)]
Draft.makeWire(points,closed=False,face=False,support=None)
- Avviare FreeCAD e caricare il file precedente in FreeCAD.
- Premere F6 per eseguirlo.
- Ora FreeCAD non risponde perché il debugger Python è in attesa
- Passare alla GUI di Windpdb e cliccare su "Attach". Dopo pochi secondi appare una voce "<Input>" su cui si deve fare doppio clic.
- Ora in Winpdb viene visualizzato lo script attualmente in esecuzione.
- Impostare un break nell'ultima riga e premere F5.
- Ora premere F7 per entrare nel codice Python di Draft.makeWire