Debugging
The debugger is in the bin\win32 or bin\dos directories (the GDB.EXE file), for the Windows and DOS versions respectively. It usually comes already installed in most Linux distros.
(Note: all commands should be typed without quotes and then [return] must be pressed.)
- Compile the source code for your program in debug mode
- use the -g command-line option to add debugging support, e.g. fbc -g myapp.bas.
- Load your compiled program in GDB
- For example, in Windows/DOS: gdb myapp.exe
- Note: under windows if the GDB command prompt seems not to work well (like backspace not working), try set TERM=#win32con before launching GDB.
- Set any arguments you want to send to your application
- For example: set args arg1 arg2 argn.
- You can also run GDB and pass the arguments directly to the application been debugged: gdb --args myapp.exe arg1 arg2 arg3.
- Ensure GDB can see your program's source code directory
- If the executable isn't in the same directory of the source files where it was compiled, type: dir path/to/my/application/sources.
- Set a breakpoint in your program
- Place a breakpoint in the first line using: b main.
- To place a breakpoint in a function called func use: b FUNC.
- Note: fbc exports variable/function names to UPPERCASE. GDB is case sensitive by default, but you can use the set language pascal command to change GDB to case-insensitive mode.
- Use GDB shortcuts to run your code or to step through it
- Type r to start running the application.
- Type n to step to the next line, stepping over function calls.
- Keep pressing [return] to step forward to the next line.
- Type s to step into function calls.
- As above, keep pressing [return] to step through.
- Type c to continue execution until the next breakpoint.
- Use GDB shortcuts to inspect variables
- Use print VAR_NAME to show the contents of the variable called var_name.
- GDB supports pointer/pointer field dereferencing, indexing and arithmetics too, so print *MYPOINTER will also work.
- (note: undeclared variables or the ones with suffixes like % & ! # $ can't be printed).
- Use disp VAR_NAME to display the contents of a variable called var_name.
- Use watch VAR_NAME to stop each time a variable called var_name is changed.
- Additional commands:
- Use r again to restart the application when it finishes.
- Type q to quit.
- Type help to see a list of commands, there are many others.
Back to Table of Contents