Debugging/fr

Premiers tests
Avant de passer à la douloureuse phase de débogage, utilisez le Test framework, pour vérifier, si les tests standards fonctionnent correctement. Si ce n'est pas le cas, c'est peut-être dû a une installation défectueuse.

Ligne de commande
Le débogage de FreeCAD est supporté par quelques mécanismes internes. La version en ligne de commande de FreeCAD fournit des options d'aide au débogage :

Ce sont les options actuellement reconnues par FreeCAD 0.15:

Options Génériques: -v [ --version ]     Affiche la version sous la forme d'une chaîne -h [ --help ]        Affiche un message d'aide -c [ --console ]     Démarre en mode console --response-file arg  Peut aussi être spécifié avec '@name'

Configuration: -l [ --write-log ]      Ecrit un fichier journal dans: $HOME/.FreeCAD/FreeCAD.log --log-file arg          Contrairement à --write-log cela permet de se connecter à un                           fichier arbitraire -u [ --user-cfg ] arg   Fichier de configuration utilisateur pour charger/enregistrer les paramètres utilisateur -s [ --system-cfg ] arg fichier de configuration pour charger/enregistrer les paramètres du système -t [ --run-test ] arg   Niveau de test -M [ --module-path ] arg Chemin de module supplémentaire -P [ --python-path ] arg Autres chemins python

Générer un Backtrace
Si vous exécutez une version de FreeCAD à partir de l'extrémité saillante de la courbe de développement, il se peut qu'il se "bloque". Vous pouvez aider à résoudre ces problèmes en fournissant aux développeurs une "backtrace". Pour ce faire, vous devez exécuter une "version de débogage" du logiciel. "Debug build" est un paramètre qui est défini au moment de la compilation, donc vous devrez soit compiler vous-même FreeCAD, soit obtenir une version "debug" précompilée.

For Linux
Linux Debugging > Prerequisites:


 * logiciel gdb installé
 * une version de débogage de FreeCAD (à ce moment seulement disponible par building from source)
 * un modèle FreeCAD qui provoque un crash

Steps: Enter the following in your terminal window: $ 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 FreeCAD will now start up. Perform the steps that cause FreeCAD to crash or freeze, then enter in the terminal window: (gdb) bt This will generate a lengthy listing of exactly what the program was doing when it crashed or froze. Include this with your problem report.

For MacOSX
MacOSX Debugging > Prerequisites:


 * software package lldb installed
 * a debug build of FreeCAD
 * a FreeCAD model that causes a crash

Steps: Enter the following in your terminal window:

$ cd FreeCAD/bin $ lldb FreeCAD LLDB will output some initializing information. The (lldb) shows the debugger is running in the terminal, now input: (lldb) run

FreeCAD will now start up. Perform the steps that cause FreeCAD to crash or freeze, then enter in the terminal window: (lldb) bt This will generate a lengthy listing of exactly what the program was doing when it crashed or froze. Include this with your problem report.

Python Debugging
Here is an example of using winpdb inside FreeCAD:


 * 1) Run winpdb and set the password (e.g. test)
 * 2) Create a Python file with this content
 * 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 "" 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