User Tools

Site Tools


docs:guide-developer:gdb

GNU Debugger

Compiling Tools

in menuconfig enable gdb

Advanced configuration options (for developers) -> Toolchain Options ->  Build gdb

and gdbserver

Development -> gdbserver

Add debugging to a package

Add CFLAGS to the package Makefile and recompile it.

TARGET_CFLAGS += -ggdb3

Alternatively recompile the package with CONFIG_DEBUG set

make package/busybox/{clean,compile} V=s CONFIG_DEBUG=y

Or you can enable debug info in menuconfig

Global build settings > Compile packages with debugging info

Starting GNU Debugger

Start gdbserver on target (router)

gdbserver :9000 /bin/ping example.org

Start gdb on host (in compiling tree)

./scripts/remote-gdb 192.168.1.1:9000 ./build_dir/target-*/busybox-*/busybox

now you have a gdb shell. Set breakpoints, start program, backtrace etc.

(gdb) b source-file.c:123
(gdb) c
(gdb) bt

If you want to restart the program, you'll need to set the remote path and arguments

(gdb) set remote exec-file /usr/bin/blah
(gdb) set args -v -x -merry-fishing
(gdb) run
docs/guide-developer/gdb.txt · Last modified: 2018/08/16 11:06 by karlp