Debugging/ro

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

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.

Acestea sunt opțiunile recunoscute curent în 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 System 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

Generarea unei Backtrace
Dacă rulați o versiune experimentală de FreeCAD care este încă în curs de dezvoltare, aceasta poate "îngheța". Vă puteți ajuta să rezolvați astfel de probleme furnizând dezvoltatorilor o "backtrace". Pentru a face acest lucru, trebuie să executați o "Debug build" a software-ului. "Debug build" este un parametru care este setat în timpul compilării, deci va trebui fie să compilați FreeCAD dvs înșivă, fie să obțineți o versiune "debug" precompilată.

For Linux
Linux Debugging > Prerequisites:


 * varianta software de package gdb instalat
 * o depanare a variantei compilate a FreeCAD (în acest moment disponibilă prin building from source)
 * un model FreeCAD care a cauzat crash-ul

Pași: Introduceți următoarelor în fereastra terminalului dvs:

GNUdebugger will output some initializing information. The (gdb) shows GNUDebugger is running in the terminal, now input:

FreeCAD va porni. Efectuați pașii care determină ca FreeCAD să se prăbușească sau să înghețe, apoi introduceți în fereastra terminalului:

Aceasta va genera o listă lungă a exact ceea ce a făcut programul atunci când sa prăbușit sau a înghețat. Includeți acest lucru cu raportul problemei dvs.

Print the values of the local variables also. This can be combined with a number to limit the number of frames shown.

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:

LLDB will output some initializing information. The (lldb) shows the debugger is running in the terminal, now input:

FreeCAD va porni. Efectuați pașii care determină ca FreeCAD să se prăbușească sau să înghețe, apoi introduceți în fereastra terminalului:

Aceasta va genera o listă lungă a exact ceea ce a făcut programul atunci când sa prăbușit sau a înghețat. Includeți acest lucru cu raportul problemei dvs.

Python Debugging
Pentru o abordare mai modernă a depanării Python, cel puțin în Windows, a se vedea asta | post in the Forum.

winpdb
winpdb Debugging > Here is an example of using Winpdb inside FreeCAD:

Avem nevoie de depanatorul Python:  Winpdb . Dacă nu aveți instalat, instalați-l sub Ubuntu / Debian cu:

Acum permiteți configurarea programului de depanare.


 * 1) Start Winpdb.
 * 2) Set the debugger password to "test": Go to menu File->''Password" and set the password.

Acum vom rula pas cu pas un script de testare Python în FreeCAD.


 * 1) Rulați winpdb și definiți password (e.g. test)
 * 2) Creați un fișier Python cu acest conținut


 * 1) Dați Start la FreeCAD și încărcați fișierul de mai sus în FreeCAD
 * 2) Apăsați F6 ptru al-l executa
 * 3) Acum FreeCAD se va bloca (nu va răspunde) deoarece debuggerul Python este în așteptare
 * 4) Comutați pe Windpdb GUI și click on "Attach". După câteva secunde un articol "" apare acolo unde ați făcut dublu clic
 * 5) Acum Scriptul aflat în execuție curentă apare în Winpdb.
 * 6) Definiți o pauză la ultima linie și apăsați F5
 * 7) Acum apăsați F7 pentru a intra în codul  Python al Draft.makeWire

Visual Studio Code (VS Code)
VS Code Debugging > Prerequisites:


 * ptvsd package need to be installedpypi page

Visual Studio Code documentation for remote debugging

Steps: import ptvsd print("Waiting for debugger attach") ptvsd.enable_attach(address=('localhost', 5678), redirect_output=True) ptvsd.wait_for_attach "configurations": [ {           "name": "Python: Attacher", "type": "python", "request": "attach", "port": 5678, "host": "localhost", "pathMappings": [ {                   "localRoot": "${workspaceFolder}", "remoteRoot": "." }           ]        },
 * Add following code at the beginning of your script
 * 1) 5678 is the default attach port in the VS Code debug configurations
 * Add a debug configuration in Visual Studio Code . It should looks like this :


 * In VS Code add a breakpoint anywhere you want.
 * Launch the script in FreeCAD. FreeCAD freeze waiting for attachment.
 * In VS Code start debugging used created configuration. You should see variables in debugger area.