[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
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.
[ << ] | [ < ] | [ Up ] | [ > ] | [ >> ] |
This document was generated on February 22, 2025 using texi2html 5.0.