Adicione o arquivo .gdbinit ao seu diretório pessoal. O GDB origina esse arquivo quando é iniciado. Neste arquivo você pode definir macros para o gdb e também executar comandos normais do shell.
#gdb implementation of the linux lsmod
define gdblsmod
set $current = modules.next
set $offset = ((int)&((struct module *)0).list)
printf "Module\tAddress\n"
while($current.next != modules.next)
printf "%s\t%p\n", \
((struct module *) (((void *) ($current)) - $offset ) )->name ,\
((struct module *) (((void *) ($current)) - $offset ) )->module_core
set $current = $current.next
end
end
Esta macro imprime endereços de seções de texto para todos os módulos atualmente carregados. Abra o console do gdb e digite gdblsmod
para usar isso. Você pode colocar lá também comandos gdb como por exemplo:
set serial baud 115200
se você estiver depurando remotamente pela porta serial.