Debugging/de

Testen kommt zuerst
Bevor Sie sich auf aufwendiges Debuggen einlassen, verwenden Sie zuerst das integrierte Test-Framework, um zu überprüfen, ob die Standard-Tests einwandfrei ablaufen. Wenn nicht, ist vielleicht eine fehlerhafte Installation das Grundproblem.

Befehls-Zeile
Das Debugging von FreeCAD wird von einigen internen Mechanismen unterstützt. Die Kommandozeilen-Version von FreeCAD bietet folgende Optionen für die Debugging-Unterstützung:

Derzeit werden folgende Optionen in FreeCAD 0.15 erkannt:

Generelle Optionen: -v [ --version ]     Zeigt die Programmversion -h [ --help ]        Zeigt die Hilfemeldung -c [ --console ]     Startet im Konsolenmodus --response-file arg  Kann auch mit '@name' spezifiziert werden.

Konfiguration: -l [ --write-log ]      Schreibt eine Log-Datei nach: $HOME/.FreeCAD/FreeCAD.log --log-file arg          Anders als bei --write-log wird hier in eine Datei mit beliebigem Namen geschrieben -u [ --user-cfg ] arg   Benutzerkonfigurationsdatei, um Benutzereinstellungen zu laden/speichern -s [ --system-cfg ] arg Systemkonfigurationsdatei, um Systemeinstellungen zu laden/speichern -t [ --run-test ] arg   Test-Level -M [ --module-path ] arg Zusätzliche Modulpfade -P [ --python-path ] arg Zusätzliche Python-Pfade

Erzeugen eines Backtrace
Wenn Du eine FreeCAD-Version der Anfangsphase der Entwicklungskurve verwendest, kann sie "abstürzen". Du kannst dabei helfen, diese Probleme zu lösen, indem Du einen "Backtrace" an die Entwickler schickst. Um dies zu tun, musst Du ein "Debug build" der Software haben. "Debug build" ist ein Parameter, der zur Compile-Zeit gesetzt wird, also musst Du entweder FreeCAD selbst kompilieren oder Dir eine vorkompilierte "debug"-Version besorgen.

Für Linux
Linux Debugging >

Vorbedingungen:


 * installiertes Softwarepake gdb
 * Debug build von FreeCAD (zur Zeit nur durch Compile der Source)
 * ein FreeCAD-Modell, dass den Absturz verursacht

Vorgehen: Geben Sie Folgendes im Terminalfenster ein: $ 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 startet nun. Führen Sie die Schritte aus, die zum Einfrieren oder Absturz von FreeCAD führen. Geben Sie dann Folgendes im Terminalfenster ein: (gdb) bt Dies erzeugt eine längliche Liste mit den genauen Angaben, was das Programm tat als es abstürzte oder einfror. Fügen Sie dieses Listing Ihrem Fehlerbericht hinzu.

Für MacOSX
MacOSX Debugging > Vorbedingungen:


 * installiertes Softwarepake lldb
 * Debug build von FreeCAD
 * ein FreeCAD Modell, dass den Absturz verursacht

Schritte: Gib das Folgende in Dein Terminal-Fenster ein:

$ 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
Dies ist ein Beispiel für die Benutzung von winpdb innerhalb von FreeCAD:

Here is an example of using winpdb inside FreeCAD:


 * 1) Starten Sie winpdb und setzen Sie ein Passwort (z.B. Test)
 * 2) Erzeugen Sie eine Pythondatei mit folgendem Inhalt:
 * 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