Debugging/pl: Difference between revisions

From FreeCAD Documentation
No edit summary
No edit summary
 
(43 intermediate revisions by 3 users not shown)
Line 2: Line 2:


{{Docnav/pl
{{Docnav/pl
|[[Bug_Triage/pl|Usuwanie błędów]]
|[[Tracker/pl|Tracker]]
|[[Testing/pl|Środowisko pracy Test]]
|[[Testing/pl|Środowisko pracy Test]]
}}
}}
Line 8: Line 8:
{{TOCright}}
{{TOCright}}


<span id="Test_First"></span>
==Najpierw przetestuj==
==Najpierw przetestuj==


Zanim przejdziesz przez ból debugowania użyj [[Testing/pl|środowiska pracy Test]] aby sprawdzić czy standardowe testy działają poprawnie. Jeśli testy nie są kompletne, prawdopodobnie instalacja jest uszkodzona.
Zanim przejdziesz przez ból debugowania użyj [[Testing/pl|środowiska pracy Test]] aby sprawdzić czy standardowe testy działają poprawnie. Jeśli testy nie są kompletne, prawdopodobnie instalacja jest uszkodzona.


<span id="Command_Line"></span>
==Wiersz poleceń==
==Wiersz poleceń==


Line 28: Line 30:
Konfiguracja:
Konfiguracja:
-l [ --write-log ] Zapisuje plik dziennika do:
-l [ --write-log ] Zapisuje plik dziennika do:
$HOME/.FreeCAD/FreeCAD.log (Linux)
$HOME/.local/share/FreeCAD.log (Linux)
$HOME/Library/Preferencje/FreeCAD/FreeCAD.log (macOS)
$HOME/Library/Application\ Support/FreeCAD/FreeCAD.log (macOS)
%APPDATA%FreeCAD/FreeCAD.log (Windows)
%APPDATA%FreeCAD/FreeCAD.log (Windows)
--log-file arg W przeciwieństwie do --write-log pozwala na logowanie do
--log-file arg W przeciwieństwie do --write-log pozwala na logowanie do
Line 42: Line 44:
--single-instance Pozwala na uruchomienie pojedynczej instancji aplikacji
--single-instance Pozwala na uruchomienie pojedynczej instancji aplikacji


<span id="Generating_a_Backtrace"></span>
==Generowanie śladu wstecznego==
==Generowanie śladu wstecznego==


Jeżeli używasz wersji FreeCAD z ostatniej fazy rozwoju, może ona ulec awarii. Możesz pomóc w rozwiązaniu takich problemów poprzez dostarczenie deweloperom ''śladów wstecz''. Aby to zrobić, musisz mieć uruchomiony ''debug build'' oprogramowania. ''Debug build'' jest parametrem, który jest ustawiany w czasie kompilacji, więc albo będziesz musiał skompilować FreeCAD samodzielnie, albo zdobyć prekompilowaną wersję ''debug''.
Jeżeli używasz wersji FreeCAD z ostatniej fazy rozwoju, może ona ulec awarii. Możesz pomóc w rozwiązaniu takich problemów poprzez dostarczenie deweloperom ''śladów wstecz''. Aby to zrobić, musisz mieć uruchomiony ''debug build'' oprogramowania. ''Debug build'' jest parametrem, który jest ustawiany w czasie kompilacji, więc albo będziesz musiał skompilować FreeCAD samodzielnie, albo zdobyć prekompilowaną wersję ''debug''.


<span id="For_Linux"></span>
===Dla systemu Linux===
===Dla systemu Linux===


Line 96: Line 100:
</div></div> <!-- END OF COLLAPSIBLE DIV -->
</div></div> <!-- END OF COLLAPSIBLE DIV -->


<span id="For_macOS"></span>
===Dla systemu macOS===
===Dla systemu macOS===


Line 134: Line 139:
</div></div> <!-- END OF COLLAPSIBLE DIV -->
</div></div> <!-- END OF COLLAPSIBLE DIV -->


<span id="List_Libraries_Loaded_by_FreeCAD"></span>
==Lista bibliotek załadowanych przez FreeCAD==
==Lista bibliotek załadowanych przez FreeCAD==


Line 150: Line 156:
{{incode|lsof -p process_id &#124; grep Coin}}
{{incode|lsof -p process_id &#124; grep Coin}}


<span id="Python_Debugging"></span>
==Debugowanie w Python==
==Debugowanie w Python==


Line 201: Line 208:
# Przełącz się do GUI Windpdb i kliknij na "Dołącz". Po kilku sekundach pojawi się element "<Input>", na którym należy dwukrotnie kliknąć,
# Przełącz się do GUI Windpdb i kliknij na "Dołącz". Po kilku sekundach pojawi się element "<Input>", na którym należy dwukrotnie kliknąć,
# Teraz w Winpdb pojawi się aktualnie wykonywany skrypt,
# Teraz w Winpdb pojawi się aktualnie wykonywany skrypt,
# Ustaw przerwanie w ostatniej linii i naciśnij klawisz {{KEY|F5}},
# Ustaw punkt przerwanie w ostatniej linii i naciśnij klawisz {{KEY|F5}},
# Teraz naciśnij klawisz {{KEY|F7}}, aby wejść do kodu Python Draft.makeWire.
# Teraz naciśnij klawisz {{KEY|F7}}, aby wejść do kodu Python Draft.makeWire.


</div></div> <!-- END OF COLLAPSIBLE DIV -->
</div></div> <!-- END OF COLLAPSIBLE DIV -->


<span id="Visual_Studio_Code_(VS_Code)"></span>
===Kod Visual Studio ''(VS Code)''===
===Kod Visual Studio ''(VS Code)''===


Line 216: Line 224:
Wymagania wstępne:
Wymagania wstępne:


* Pakiet '''ptvsd''' musi być zainstalowany w Python 3 poza środowiskiem programu FreeCAD, a następnie moduł musi być skopiowany do folderu biblioteki Pythona programu FreeCAD.
* wymagana jest instalacja pakietu '''ptvsd'''


{{Code|code=
{{Code|code=
# In a cmd window that has a path to you local Python 3:
pip install ptvsd
pip install ptvsd
# Then if your Python is installed in C:\Users\<userid>\AppData\Local\Programs\Python\Python37
# and your FreeCAD is installed in C:\freecad\bin
xcopy "C:\Users\<userid>\AppData\Local\Programs\Python\Python37\Lib\site-packages\ptvsd" "C:\freecad\bin\Lib\site-packages\ptvsd"
}}
}}


Line 237: Line 249:
}}
}}


* Add a debug configuration in Visual Studio Code {{MenuCommand|Debug → Add Configurations…}}. It should looks like this :
* Dodaj konfigurację debugowania w Visual Studio Code {{MenuCommand|Debug → Add Configurations...}}.
* Powinna ona wyglądać następująco:


<!--NOT CHANGE THE <pre> </pre> BALISE CAUSE THE PIPE OR SPACE IN MACRO CODE CUT THE MACRO-->
<!--NOT CHANGE THE <pre> </pre> BALISE CAUSE THE PIPE OR SPACE IN MACRO CODE CUT THE MACRO-->
Line 257: Line 270:
</pre>
</pre>


* In VS Code add a breakpoint anywhere you want.
* W VS Code dodaj punkt przerwania gdziekolwiek chcesz.
* Launch the script in FreeCAD. FreeCAD freeze waiting for attachment.
* Uruchom skrypt w programie FreeCAD. FreeCAD zatrzymuje się w oczekiwaniu na załącznik.
* W VS Code rozpocznij debugowanie używając stworzonej konfiguracji. Powinieneś zobaczyć zmienne w obszarze debuggera.
* In VS Code start debugging using created configuration. You should see variables in debugger area.
* When setting breakpoints, VS Code will complain about not finding the .py file opened in the VS Code editor.
* Podczas ustawiania punktów przerwania VS Code będzie zgłaszał, że nie znalazł pliku .py otwartego w edytorze VS Code.
** Change "remoteRoot": "." to "remoteRoot": "<directory of file>"
** Zmień "remoteRoot": "." na "remoteRoot": "<katalog pliku>"
** For example, if the Python file resides in ''/home/FC_myscripts/myscript.py''
** Na przykład, jeśli plik Python rezyduje w ''/home/FC_myscripts/myscript.py''
** Change to: "remoteRoot": "/home/FC_myscripts"
** Zmień na: "remoteRoot": "/home/FC_myscripts"
** Jeśli tylko debugujesz makrodefinicje FreeCAD z folderu makr FreeCAD, a ten folder to "C:/Users/<userid>/AppData/Roaming/FreeCAD/Macro", to użyj:
* If your macro can't find ptvsd despite having installed it somewhere precede 'import ptvsd' with
*** "localRoot": "C:/Users/<userid>/AppData/Roaming/FreeCAD/Macro",
*** "remoteRoot": "C:/Users/<userid>/AppData/Roaming/FreeCAD/Macro".
* Jeśli twoja makrodefinicja nie może znaleźć ptvsd, mimo że gdzieś go zainstalowało, poprzedź ''import ptvsd'' znakiem

{{Code|code=
{{Code|code=
from sys import path
from sys import path
sys.path.append('/path/to/site-packages')
sys.path.append('/path/to/site-packages')
}}
}}
where the path is to the directory where ptvsd got installed
* On the left bottom edge of VSCode you can choose the Python executable - it's best to make this the version packaged with FreeCAD.
In the Mac package it is /Applications/FreeCAD.App/Contents/Resources/bin/python


Gdzie ścieżka wskazuje katalog, w którym ptvsd został zainstalowany.
You can locate it on your system by typing
* W lewej dolnej krawędzi VSCode możesz wybrać plik wykonywalny Python - najlepiej, aby była to wersja spakowana z programem FreeCAD.
W pakiecie dla Maca jest to /Applications/FreeCAD.App/Contents/Resources/bin/python.

Można go zlokalizować w systemie wpisując:

{{Code|code=
{{Code|code=
import sys
import sys
print(sys.executable)
print(sys.executable)
}}
}}

w konsoli Python programu FreeCAD.
w konsoli Python programu FreeCAD.

</div></div> <!-- END OF COLLAPSIBLE DIV -->
</div></div> <!-- END OF COLLAPSIBLE DIV -->


<span id="With_LiClipse_and_AppImage"></span>
===Z LiClipse i AppImage===

<!-- START OF COLLAPSIBLE DIV --><div class="toccolours mw-collapsible mw-collapsed" style="width:800px;">

Debugowanie LiClipse →

<div class="mw-collapsible-content">

* Wyodrębnij AppImage.

{{Code|code=
> ./your location/FreeCAD_xxx.AppImage --appimage-extract
> cd squashfs-root/
}}

* Lokalizacja sqashfs-root jest miejscem, do którego później zostanie podłączony debugger.

* Upewnij się, że możesz rozpocząć sesję FreeCAD z lokalizacji squashfs-root.

{{Code|code=
squashfs-root> ./usr/bin/freecadcmd
}}

* Powinna uruchomić się sesja wiersza poleceń programu FreeCAD.

* Zainstaluj [https://www.liclipse.com/ LiClipse].
** Dostarczany jest z pydevem i posiada instalatory dla wszystkich platform.
** W przypadku linuksa wystarczy rozpakować ''(do dowolnej lokalizacji)'' i uruchomić.

* Skonfiguruj liclipse do debugowania.
** Kliknij prawym przyciskiem myszy na ikonę pydev ''(prawy górny róg)'' i wybierz "Dostosuj".
*** Aktywuj opcję "PyDev Debug" ''(poprzez zaznaczenie pola wyboru, może być też konieczne przejście do zakładki "Action Set Availability" i aktywowanie jej)''.
*** W menu pydev można teraz wybrać opcję "Uruchom serwer debugowania".
** Użyj menu okno → otwórz perspektywę → inne → debug.
*** Kliknij prawym przyciskiem myszy ikonę debugowania ''(prawy górny róg)'' i wybierz polecenie Dostosuj.
*** Zaznaczenie opcji "Debuguj" spowoduje pojawienie się na pasku narzędzi narzędzi narzędzi nawigacyjnych do debugowania.
** Otwórz preferencje przez okno menu → preferencje.
*** W PyDev/Interpreters dodaj "nowy interpreter przez przeglądanie".
*** Dodany interpreter powinien być umieszczony w: {{incode|Twoja lokalizacja/squashfs-root/usr/bin/python}}.
*** Jeśli używasz tego tylko z FC, możesz dodać także foldery AddOn workbench, lub zrobić to później w projekcie pydev.

* Znajdź ścieżkę do {{incode|pydevd.py}} w swojej instalacji w liclipse.
** Coś w stylu: {{incode|Twoja lokalizacja/liclipse/plugins/org.python.pydev.xx/pysrc}}.
* Utwórz zwykły projekt pydev w liclipse.
** Zaimportuj zewnętrzne źródła, na przykład makro, które chcesz debugować, lub zewnętrzne środowisko pracy.
** W makrodefinicji ''(lub pliku .py)'' dodaj linie kodu:

: {{Code|code=
import sys; sys.path.append("path ending with /pysrc")
import pydevd; pydevd.settrace()
}}

:* W tym miejscu zostanie zatrzymane wykonywanie makrodefinicji.

* Uruchom serwer debugowania Liclipse ''(menu pydev)''.

* Uruchom program FreeCAD.

{{Code|code=
squashfs-root> ./usr/bin/freecad
}}

* Uruchom makrodefinicję ''(lub jakikolwiek inny plik z wyzwalaczem {{incode|pydevd.settrace()}})'' w programie FreeCAD, tak jak robisz to normalnie.

* Udanego debugowania.

* Użycie LiClipse do zdalnego debugowania oraz opisane tutaj czynności związane z liclipse powinny działać na każdej platformie. Części związane z AppImage są przeznaczone tylko dla systemu linux.

</div></div> <!-- END OF COLLAPSIBLE DIV -->

<span id="Pyzo"></span>
===Pyzo===

Zapoznaj się z treścią strony [[Pyzo/pl|artykuł o Pyzo]].

<span id="Debugging_OpenCasCade"></span>
==Debugowanie OpenCasCade==
==Debugowanie OpenCasCade==


Line 287: Line 385:


{{Docnav/pl
{{Docnav/pl
|[[Bug_Triage/pl|Usuwanie błędów]]
|[[Tracker/pl|Tracker]]
|[[Testing/pl|Środowisko pracy Test]]
|[[Testing/pl|Środowisko pracy Test]]
}}
}}

Latest revision as of 05:26, 22 November 2023

Najpierw przetestuj

Zanim przejdziesz przez ból debugowania użyj środowiska pracy Test aby sprawdzić czy standardowe testy działają poprawnie. Jeśli testy nie są kompletne, prawdopodobnie instalacja jest uszkodzona.

Wiersz poleceń

Debugowanie w programie FreeCAD jest wspierane przez kilka wewnętrznych mechanizmów. Wersja programu FreeCAD z wierszem poleceń dostarcza kilka opcji do obsługi debugowania.

Są to obecnie rozpoznawane opcje w programie FreeCAD w wersji 0.19:

Opcje ogólne:

 -v [ --version ]     Drukuje ciąg znaków wersji.
 -h [ --help ]        Drukuje komunikat pomocy
 -c [ --console ]     Uruchamia się w trybie konsolowym
 --response-file arg  Można też podać z '@name'
 --dump-config        Zrzuca konfigurację
 --get-config arg     Wypisuje wartość żądanego klucza konfiguracyjnego

Konfiguracja:

 -l [ --write-log ]        Zapisuje plik dziennika do:
                           $HOME/.local/share/FreeCAD.log (Linux)
                           $HOME/Library/Application\ Support/FreeCAD/FreeCAD.log (macOS)
                           %APPDATA%FreeCAD/FreeCAD.log (Windows)
 --log-file arg            W przeciwieństwie do --write-log pozwala na logowanie do
                           dowolnego pliku. 
 -u [ --user-cfg ] arg     Plik konfiguracyjny użytkownika do ładowania / zapisywania
                           ustawień użytkownika
 -s [ --system-cfg ] arg   Plik konfiguracyjny systemu do załadowania / zapisu
                           ustawień systemowych
 -t [ --run-test ] arg     Przypadek testowy - lub 0 dla wszystkich
 -M [ --module-path ] arg  Ścieżki do dodatkowych modułów
 -P [ --python-path ] arg  Dodatkowe ścieżki dostępu do Pythona
 --single-instance         Pozwala na uruchomienie pojedynczej instancji aplikacji

Generowanie śladu wstecznego

Jeżeli używasz wersji FreeCAD z ostatniej fazy rozwoju, może ona ulec awarii. Możesz pomóc w rozwiązaniu takich problemów poprzez dostarczenie deweloperom śladów wstecz. Aby to zrobić, musisz mieć uruchomiony debug build oprogramowania. Debug build jest parametrem, który jest ustawiany w czasie kompilacji, więc albo będziesz musiał skompilować FreeCAD samodzielnie, albo zdobyć prekompilowaną wersję debug.

Dla systemu Linux

Debugowanie w systemie Linux →

Wymagania wstępne:

  • zainstalowany pakiet oprogramowania gdb
  • debug build FreeCAD (w tym momencie dostępny tylko przez kompilację ze źródeł)
  • model FreeCAD, który powoduje awarię

Postępowanie: W oknie terminala wprowadź następujące dane:

Znajdź binaria FreeCAD w swoim systemie:

$ whereis freecad
freecad: /usr/local/freecad <--- for example

$ cd /usr/local/freecad/bin
$ gdb FreeCAD

GNUdebugger wyśle kilka informacji inicjalizujących. Polecenie (gdb) pokazuje, że GNUDebugger jest uruchomiony w terminalu, teraz wprowadź dane:

(gdb) handle SIG33 noprint nostop
(gdb) run

FreeCAD zostanie teraz uruchomiony. Wykonaj czynności, które powodują awarię lub zawieszenie programu FreeCAD, a następnie wpisz w oknie terminala:

(gdb) bt

Spowoduje to wygenerowanie długiej listy tego, co dokładnie robił program, kiedy się zawiesił lub przestał działać. Dołącz to do swojego raportu o problemie.

(gdb) bt full

Wypisuje również wartości zmiennych lokalnych. Może to być połączone z liczbą, aby ograniczyć ilość wyświetlanych klatek.

Dla systemu macOS

Debugowanie w systemie macOS →

Wymagania wstępne:

  • zainstalowany pakiet oprogramowania lldb
  • debug build FreeCAD
  • model FreeCAD, który powoduje awarię

Postępowanie: W oknie terminala wprowadź następujące dane:

$ cd FreeCAD/bin
$ lldb FreeCAD

LLDB wyśle kilka informacji inicjalizujących. Polecenie (lldb) pokazuje, że GNUDebugger jest uruchomiony w terminalu, teraz wprowadź dane:

(lldb) run

FreeCAD zostanie teraz uruchomiony. Wykonaj czynności, które powodują awarię lub zawieszenie programu FreeCAD, a następnie wpisz w oknie terminala:

(lldb) bt

Spowoduje to wygenerowanie długiej listy tego, co dokładnie robił program, kiedy się zawiesił lub przestał działać. Dołącz to do swojego raportu o problemie.

Lista bibliotek załadowanych przez FreeCAD

(Dotyczy systemów Linux i macOS)

Czasami pomocne staje się określenie, jakie biblioteki ładuje FreeCAD, szczególnie jeśli ładowane są biblioteki o tej samej nazwie, ale w różnych wersjach (kolizja wersji). Aby zobaczyć, które biblioteki są ładowane przez FreeCAD podczas awarii, powinieneś otworzyć terminal i uruchomić go w debugerze. W drugim oknie terminala znajdź id procesu dla FreeCAD:

ps -A | grep FreeCAD

Użyj uzyskanego identyfikatora i podaj go do lsof:

lsof -p process_id

Wyświetli to długą listę załadowanych zasobów. Tak więc, na przykład, jeśli próbujesz się upewnić, że więcej niż jedna wersja biblioteki Coin3d jest załadowana, przewiń listę lub poszukaj bezpośrednio Coin na liście:

lsof -p process_id | grep Coin

Debugowanie w Python

Aby uzyskać bardziej nowoczesne podejście do debugowania w środowisku Python, zobacz te posty:

winpdb

Debugowanie w winpdb →

Oto przykład użycia Winpdb wewnątrz FreeCAD:

Potrzebujemy debuggera Python Winpdb. Jeśli nie masz go zainstalowanego, na Ubuntu/Debianie zainstaluj go za pomocą:

sudo apt-get install winpdb

Teraz skonfigurujmy debugger.

  1. Uruchom Winpdb.
  2. Ustaw hasło debuggera na "test": Przejdź do menu Plik → Hasło i ustaw hasło.

Teraz krok po kroku uruchomimy testowy skrypt Python w programie FreeCAD.

  1. Uruchomić winpdb i ustawić hasło (np. test)
  2. Utwórz plik Python z tą zawartością
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)
  1. Uruchom program FreeCAD i załaduj powyższy plik do programu FreeCAD,
  2. Naciśnij klawisz F6 aby go wykonać,
  3. Teraz FreeCAD przestanie reagować, ponieważ debugger Pythona czeka,
  4. Przełącz się do GUI Windpdb i kliknij na "Dołącz". Po kilku sekundach pojawi się element "<Input>", na którym należy dwukrotnie kliknąć,
  5. Teraz w Winpdb pojawi się aktualnie wykonywany skrypt,
  6. Ustaw punkt przerwanie w ostatniej linii i naciśnij klawisz F5,
  7. Teraz naciśnij klawisz F7, aby wejść do kodu Python Draft.makeWire.

Kod Visual Studio (VS Code)

Debugowanie kodu VS →

Wymagania wstępne:

  • Pakiet ptvsd musi być zainstalowany w Python 3 poza środowiskiem programu FreeCAD, a następnie moduł musi być skopiowany do folderu biblioteki Pythona programu FreeCAD.
# In a cmd window that has a path to you local Python 3:
pip install ptvsd
# Then if your Python is installed in C:\Users\<userid>\AppData\Local\Programs\Python\Python37
# and your FreeCAD is installed in C:\freecad\bin
xcopy "C:\Users\<userid>\AppData\Local\Programs\Python\Python37\Lib\site-packages\ptvsd" "C:\freecad\bin\Lib\site-packages\ptvsd"

strona pypi

Dokumentacja Visual Studio Code do zdalnego debugowania

Postępowanie:

  • Dodaj następujący kod na początku swojego skryptu
import ptvsd
print("Waiting for debugger attach")
# 5678 is the default attach port in the VS Code debug configurations
ptvsd.enable_attach(address=('localhost', 5678), redirect_output=True)
ptvsd.wait_for_attach()
  • Dodaj konfigurację debugowania w Visual Studio Code Debug → Add Configurations....
  • Powinna ona wyglądać następująco:
    "configurations": [
        {
            "name": "Python: Attacher",
            "type": "python",
            "request": "attach",
            "port": 5678,
            "host": "localhost",
            "pathMappings": [
                {
                    "localRoot": "${workspaceFolder}",
                    "remoteRoot": "."
                }
            ]
        },
  • W VS Code dodaj punkt przerwania gdziekolwiek chcesz.
  • Uruchom skrypt w programie FreeCAD. FreeCAD zatrzymuje się w oczekiwaniu na załącznik.
  • W VS Code rozpocznij debugowanie używając stworzonej konfiguracji. Powinieneś zobaczyć zmienne w obszarze debuggera.
  • Podczas ustawiania punktów przerwania VS Code będzie zgłaszał, że nie znalazł pliku .py otwartego w edytorze VS Code.
    • Zmień "remoteRoot": "." na "remoteRoot": "<katalog pliku>"
    • Na przykład, jeśli plik Python rezyduje w /home/FC_myscripts/myscript.py
    • Zmień na: "remoteRoot": "/home/FC_myscripts"
    • Jeśli tylko debugujesz makrodefinicje FreeCAD z folderu makr FreeCAD, a ten folder to "C:/Users/<userid>/AppData/Roaming/FreeCAD/Macro", to użyj:
      • "localRoot": "C:/Users/<userid>/AppData/Roaming/FreeCAD/Macro",
      • "remoteRoot": "C:/Users/<userid>/AppData/Roaming/FreeCAD/Macro".
  • Jeśli twoja makrodefinicja nie może znaleźć ptvsd, mimo że gdzieś go zainstalowało, poprzedź import ptvsd znakiem
from sys import path
sys.path.append('/path/to/site-packages')

Gdzie ścieżka wskazuje katalog, w którym ptvsd został zainstalowany.

  • W lewej dolnej krawędzi VSCode możesz wybrać plik wykonywalny Python - najlepiej, aby była to wersja spakowana z programem FreeCAD.

W pakiecie dla Maca jest to /Applications/FreeCAD.App/Contents/Resources/bin/python.

Można go zlokalizować w systemie wpisując:

import sys
print(sys.executable)

w konsoli Python programu FreeCAD.

Z LiClipse i AppImage

Debugowanie LiClipse →

  • Wyodrębnij AppImage.
> ./your location/FreeCAD_xxx.AppImage --appimage-extract
> cd squashfs-root/
  • Lokalizacja sqashfs-root jest miejscem, do którego później zostanie podłączony debugger.
  • Upewnij się, że możesz rozpocząć sesję FreeCAD z lokalizacji squashfs-root.
squashfs-root> ./usr/bin/freecadcmd
  • Powinna uruchomić się sesja wiersza poleceń programu FreeCAD.
  • Zainstaluj LiClipse.
    • Dostarczany jest z pydevem i posiada instalatory dla wszystkich platform.
    • W przypadku linuksa wystarczy rozpakować (do dowolnej lokalizacji) i uruchomić.
  • Skonfiguruj liclipse do debugowania.
    • Kliknij prawym przyciskiem myszy na ikonę pydev (prawy górny róg) i wybierz "Dostosuj".
      • Aktywuj opcję "PyDev Debug" (poprzez zaznaczenie pola wyboru, może być też konieczne przejście do zakładki "Action Set Availability" i aktywowanie jej).
      • W menu pydev można teraz wybrać opcję "Uruchom serwer debugowania".
    • Użyj menu okno → otwórz perspektywę → inne → debug.
      • Kliknij prawym przyciskiem myszy ikonę debugowania (prawy górny róg) i wybierz polecenie Dostosuj.
      • Zaznaczenie opcji "Debuguj" spowoduje pojawienie się na pasku narzędzi narzędzi narzędzi nawigacyjnych do debugowania.
    • Otwórz preferencje przez okno menu → preferencje.
      • W PyDev/Interpreters dodaj "nowy interpreter przez przeglądanie".
      • Dodany interpreter powinien być umieszczony w: Twoja lokalizacja/squashfs-root/usr/bin/python.
      • Jeśli używasz tego tylko z FC, możesz dodać także foldery AddOn workbench, lub zrobić to później w projekcie pydev.
  • Znajdź ścieżkę do pydevd.py w swojej instalacji w liclipse.
    • Coś w stylu: Twoja lokalizacja/liclipse/plugins/org.python.pydev.xx/pysrc.
  • Utwórz zwykły projekt pydev w liclipse.
    • Zaimportuj zewnętrzne źródła, na przykład makro, które chcesz debugować, lub zewnętrzne środowisko pracy.
    • W makrodefinicji (lub pliku .py) dodaj linie kodu:
import sys; sys.path.append("path ending with /pysrc")
import pydevd; pydevd.settrace()
  • W tym miejscu zostanie zatrzymane wykonywanie makrodefinicji.
  • Uruchom serwer debugowania Liclipse (menu pydev).
  • Uruchom program FreeCAD.
squashfs-root> ./usr/bin/freecad
  • Uruchom makrodefinicję (lub jakikolwiek inny plik z wyzwalaczem pydevd.settrace()) w programie FreeCAD, tak jak robisz to normalnie.
  • Udanego debugowania.
  • Użycie LiClipse do zdalnego debugowania oraz opisane tutaj czynności związane z liclipse powinny działać na każdej platformie. Części związane z AppImage są przeznaczone tylko dla systemu linux.

Pyzo

Zapoznaj się z treścią strony artykuł o Pyzo.

Debugowanie OpenCasCade

Dla programistów chcących zagłębić się w kernel OpenCasCade, użytkownik @abdullah stworzył wątek orientacyjny omawiający jak tego dokonać.