Ladění FreeBASICu
 

Ladící program je v adresáři bin\win32 nebo bin\dos (soubor GDB.EXE) pro Windows a DOS verze. V Linuxových distribucích je obvykle již obsažen.

(Pozn.: všechny zde zmiňované příkazy mají být zadávány bez uvozovek. Po jejich zadání zkuste stisknout [ENTER].)
(Pozn.: Ladění se v originále nazývá debugging, program pro ladění pak debugger. Odtud i název GDB.)

  • Kompilace zdrojů pomocí volby -g v příkazovém řádku přidá podporu ladění.
  • Nahrejte program v GDB použitím: "gdb myapplicationname.exe"
  • Nastavte argumenty k ladění aplikace pomocí: "set args arg1 arg2 argn". Můžete také spustit GDB a předat argumenty přímo do laděné aplikace: "gdb --args myapp.exe arg1 arg2 arg3".
  • V případě, kdy spustitelný soubor není ve stejném adresáři, kde byl sestaven, zadejte: "dir path/to/my/application/sources".
  • Umístěte breakpoint (zarážk na které se program zastaví) v prvním řádku pomocí: "b main". Chcete-li umístit breakpoint na funkci nazvanou "abc" zadejte: "b ABC" (pozn.: vše velkými písmeny, neb GDB je na velká a malá písmena citlivý, ale užitím "set language pascal" příkazu změní te GDB na case-insensitive mode, tedy na necitlivý vůči velikosti písmen).
  • Zadejte "r" pro spuštění aplikace.
  • Zadejte "n" pro přeskakování volání funkcí. Opakovaným stiskem [ENTER] přeskakujete na další řádky.
  • Zadejte "s" pro krokové volání funkcí. Stejně jako výše používejte [ENTER].
  • Zadejte "c" pro pokračování v realizaci až po další breakpoint.
  • Zadejte "print ABC" pro tisk obsahu proměnné nazvané "abc". GDB podporuje (?)pointer/pointer field dereferencing(?), indexaci a aritmetiku také, takže "print *MYPOINTER" bude také pracovat. (Pozn.: nedeklarované proměnné nebo ty s příponami % & ! # $ tisknout nelze).
  • Zadejte "disp ABC" pro zobrazení obsahu proměnné nazvané "abc".
  • Zadejte "watch ABC" pro zastavení pokaždé, když se proměnná s názvem "abc" změní.
  • Zadejte "r" znovu pro restart aplikace po jejím skončení.
  • Zadejte "q" pro quit (ukončení).
  • Zadejte "help" pro zobrazení seznamu příkazů, existuje totiž ještě spousta dalších.



Překlad: Gmisiycs 15.2.2016