Debugging/ro: Difference between revisions
No edit summary |
(Updating to match new version of source page) |
||
Line 88: | Line 88: | ||
'''Pentru o abordare mai modernă a depanării Python, cel puțin în Windows, a se vedea asta [https://forum.freecadweb.org/viewtopic.php?f=22&t=28901&hilit=2017| post in the Forum].''' |
'''Pentru o abordare mai modernă a depanării Python, cel puțin în Windows, a se vedea asta [https://forum.freecadweb.org/viewtopic.php?f=22&t=28901&hilit=2017| post in the Forum].''' |
||
<div class="mw-translate-fuzzy"> |
|||
⚫ | |||
</div> |
|||
We need the python debugger: ''Winpdb''. If you do not have it installed, on Ubuntu/Debian install it with: |
|||
{{Code|code= |
|||
⚫ | |||
sudo apt-get install winpdb |
|||
}} |
|||
Now lets setup the debugger. |
|||
# Start ''Winpdb''. |
|||
# Set the debugger password to "test": Go to menu ''File''->''Password" and set the password. |
|||
Now we will run a test python script in FreeCAD step by step. |
|||
# Rulați winpdb și definiți password (e.g. test) |
# Rulați winpdb și definiți password (e.g. test) |
Revision as of 22:47, 23 December 2018
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.
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 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
Generarea unei Backtrace
Dacă rulați o versiune de FreeCAD de la muchia încă sângerândă a vârfului de lance a curbei de dezvoltare a produsului, acesta poate să "se prăbușească". 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:
- software package gdb instalat
- o depanare build of 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:
$ 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 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:
(gdb) bt
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.
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 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:
(lldb) bt
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.
Aici este un exemplu de utilizare a winpdb în interiorul FreeCAD:
We need the python debugger: Winpdb. If you do not have it installed, on Ubuntu/Debian install it with:
sudo apt-get install winpdb
Now lets setup the debugger.
- Start Winpdb.
- Set the debugger password to "test": Go to menu File->Password" and set the password.
Now we will run a test python script in FreeCAD step by step.
- Rulați winpdb și definiți password (e.g. test)
- Creați un fișier Python cu acest conținut
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)
- Dați Start la FreeCAD și încărcați fișierul de mai sus în FreeCAD
- Apăsați F6 ptru al-l executa
- Acum FreeCAD se va bloca (nu va răspunde) deoarece debuggerul Python este în așteptare
- Comutați pe Windpdb GUI și click on "Attach". După câteva secunde un articol "<Input>" apare acolo unde ați făcut dublu clic
- Acum Scriptul aflat în execuție curentă apare în Winpdb.
- Definiți o pauză la ultima linie și apăsați F5
- Acum apăsați F7 pentru a intra în codul Python al Draft.makeWire