Debugging - Individuare gli errori

From FreeCAD Documentation
Revision as of 20:26, 31 October 2014 by Renatorivo (talk | contribs) (Created page with "== Python debugging == Ecco un esempio di utilizzo di winpdb all'interno di FreeCAD:")

Prima prova

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 a risolvere questi problemi, fornendo agli sviluppatori 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:

  1. Run winpdb and set the password (e.g. test)
  2. Create a Python file with this content
 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)
  1. Start FreeCAD and load the above file into FreeCAD
  2. Press F6 to execute it
  3. Now FreeCAD will become unresponsive because the Python debugger is waiting
  4. Switch to the Windpdb GUI and click on "Attach". After a few seconds an item "<Input>" appears where you have to double-click
  5. Now the currently executed script appears in Winpdb.
  6. Set a break at the last line and press F5
  7. Now press F7 to step into the Python code of Draft.makeWire