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
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
docs/guide-developer/gdb.txt · Last modified: 2018/08/16 11:06 by karlp