- w engine/example w pliku
CMakeLists.txtw linii ~20 zaczynającej się odSET(CMAKE_CXX_FLAGSzamień końcówkę linii... -nostdinc++"na... -nostdinc++ -g" - zrób to samo ale w silniku (
engine/src) około linii 44 - ponownie skompiluj silnik i swoją funkcję klienta
- z konsoli zainstaluj narzędzie gdb:
sudo apt-get install gdb - ze skryptu uruchamiającego silnik
run.shskopiuj linię zaczynającą się odexporti wpisz w aktywnym oknie konsoli - ze skryptu uruchamiającego skopiuj swoje argumenty (całość tekstu po
./GameEngine) - pozostając w folderze silnika, w konsoli odpal gdb:
gdb GameEngine - następnie wpisz
run <twoje_argumenty>(np.run --fpLibPath=../example/libclientA.so --fpFcnName=updatePlayer --clientsPrint - jeżeli wszystkie kroki zostały wykonane poprawnie to przy wystąpieniu błędu dostaniesz informację o dokładnym miejscu w kodzie, w którym ten błąd wystąpił
- Przed uruchomieniem procesu (
run ...) można wpisać np.break client.cpp:95 - gdb za pierwszym razem może zadać pytanie typu
No source file named client.cpp. Make breakpoint pending on future shared library? (y or [n]), należy na nie odpowiedźy - dostaniesz informację zwrotną np.
Breakpoint 1 (client.cpp:95) pending, gdzie1to jego numer - wtedy można już uruchomić proces (patrz wyżej pkt. 8)
- w miejscu dojścia do breakpointu wykonywany proces się zatrzyma, wtedy można użyć innych komend do np sprawdzenia wartości różnych zmiennych itd (patrz niżej -
Więcej komend) - aby wznowić uruchamianie programu można np. wpisać
continue - jeżeli breakpoint nie jest już potrzebny to można go usunąć poprzez
delete <numer_breakpointa>npdelete 1