Debugging/ro

Testează mai întâi
Înainte de a trece prin durerea de depanare utilizați Test framework pentru a verifica dacă testele standard funcționează corect. Dacă acestea nu se execută complet, este posibilă o instalare defectă.

Linie de Commandă
Depanarea debugging în FreeCAD este susținută de câteva mecanisme interne. Versiunea liniei de comandă a FreeCAD oferă câteva opțiuni pentru suportul de depanare.

These are the currently recognized options in FreeCAD 0.15:

Generic options: -v [ --version ]     Prints version string -h [ --help ]        Prints help message -c [ --console ]     Starts in console mode --response-file arg  Can be specified with '@name', too

Configuration: -l [ --write-log ]      Writes a log file to: $HOME/.FreeCAD/FreeCAD.log --log-file arg          Unlike to --write-log this allows to log to an                            arbitrary file -u [ --user-cfg ] arg   User config file to load/save user settings -s [ --system-cfg ] arg Systen config file to load/save system settings -t [ --run-test ] arg   Test level -M [ --module-path ] arg Additional module paths -P [ --python-path ] arg Additional python paths

Generating a Backtrace
If you are running a version of FreeCAD from the bleeding edge of the development curve, it may "crash". You can help solve such problems by providing the developers with a "backtrace". To do this, you need to be running a "debug build" of the software. "Debug build" is a parameter that is set at compile time, so you'll either need to compile FreeCAD yourself, or obtain a pre-compiled "debug" version.

For Linux
Linux Debugging > Prerequisites:


 * software package gdb installed
 * a debug build of FreeCAD (at this time only available by building from source)
 * a FreeCAD model that causes a 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
For a more modern approach to debugging Python, at least on Windows, see this | post in the Forum.

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