Tips & tricks: GDB reload firmware
Rust is a fantastic language to work with. I particularly love cargo watch -x 'build --target thumbv7em-none-eabihf'
that automatically rebuilds the firmware for me whenever I save a change in my favorite editor (neovim 🥰).
However a rather annoying thing is that I have to exit and relaunch GDB to reload the elf of that firmware. That was until I got fed up with this and looked for a solution that for sure existed.
I now have this snippet in addition to the usual rust gdb script :
# defines the reload command
define reload
# reload symbols
python gdb.execute("file " + gdb.current_progspace().filename)
# clear cache
directory
# flash
load
# start
monitor reset halt
stepi
end
# defines a short hand to the reset command
define reset
monitor reset halt
end
reload
I can now simply enter reload
in gdb to reload the elf file in gdb as well as reflashing the target memory with this freshly loaded firmware.
Comments