3.1 GDB Hints
Since debugging an AVR program with gdb requires gdb to connect to a
remote target (either simulavr or some other debugging tool, such as
avarice), a series of commands must be issued every time gdb is started.
The easiest way around this is to put the commands into a
‘.gdbinit’ file in the project directory. The following example is
from a ‘.gdbinit’ which I use for many projects.
|
## Print out structures in a sane way
echo (gdb) set print pretty
set print pretty
## Use this for debugging the remote protocol. (Don't use unless
## debugging simulavr or avr-gdb)
#echo (gdb) set debug remote 1\n
#set debug remote 1
## If you don't want specify the program to debug when invoking gdb,
## you can tell gdb to read it in here. The file should be an elf file
## compiled with debugging information (-g for C files and -gstabs for
## asm files).
#echo (gdb) file myprog.elf\n
#file myprog.elf
## Connect to the remote target via a TCP socket on host:port.
echo (gdb) target remote localhost:1212\n
target remote localhost:1212
## If you are using simulavr as the remote target, this will upload
## the program into flash memory for you.
echo (gdb) load\n
load
## Set a break point at the beginning of main().
echo (gdb) break main\n
break main
## Run the program up to the first break point. Gdb's `run` command
## does not work when using a remote target, must use continue.
echo (gdb) continue\n
continue
|
|
As you can see, I echo
every command so I can see what gdb has
done when it runs the commands in the ‘.gdbinit’ file.
This document was generated by eweddington on November, 7 2008 using texi2html 1.78.