Difference between revisions of "GDB"
From ArmadeusWiki
(→Debugging a program running on your APF, from your Host, through Ethernet) |
(→Debugging a program running on your APF, from your Host, through Ethernet) |
||
Line 33: | Line 33: | ||
{{Note|Only ''continue / c'' can be used to start the program, because it is already running when you launch GDB on your host.}} | {{Note|Only ''continue / c'' can be used to start the program, because it is already running when you launch GDB on your host.}} | ||
+ | |||
+ | <pre class="host"> | ||
+ | (gdb) break main | ||
+ | (gdb) continue | ||
+ | ... | ||
+ | (gdb) next | ||
+ | ... | ||
+ | </pre> | ||
{{Note|Core dump analysis doesn't seem to work in this use case !!}} | {{Note|Core dump analysis doesn't seem to work in this use case !!}} |
Revision as of 17:18, 27 October 2009
On this page you will find all you need to debug your userspace applications running on your Armadeus board.
Note: First of all, be sure to have installed the Toolchain on your Host. |
Contents
Compile your program with debug symbols
- Use -g option of gcc:
$ make shell_env $ . armadeus_env.sh $ export PATH=$PATH:$ARMADEUS_TOOLCHAIN_PATH $ arm-linux-gcc -g -o hello hello.c
- If you have a Makefile for your project, you probably have a CFLAGS variable, so add it -g. Ex:
CFLAGS=-W -Wall -g
Debugging a program running on your APF, from your Host, through Ethernet
- On the target launch your program like that:
# gdbserver 192.168.0.2:2345 program [args]
192.168.0.2 is the IP address of your Host and 2345 the port number to use (examples).
- On your Host launch:
[]$ arm-linux-gdb program (gdb) set solib-absolute-prefix ./buildroot/build_armv4t/staging_dir/ (gdb) target remote 192.168.0.10:2345
192.168.0.10 is the address of your target
Note: Only continue / c can be used to start the program, because it is already running when you launch GDB on your host. |
(gdb) break main (gdb) continue ... (gdb) next ...
Debugging directly on your APF (may require more memory)
- You have to build gdb for the target:
$ make menuconfig
Toolchain ---> *** Gdb Options *** [*] Build gdb debugger for the Target
$ make
Then you can either reflash your rootfs, or copy $ARMADEUS_ROOTFS_DIR/bin/gdb to your board, to a SD or to a NFS export.
- After installation, launch gdb on your APF:
# gdb your_prog
If you need argument passing:
# gdb --args your_prog your_args
To debug a Core dump:
# gdb your_prog -c your_core_file
Links
- Debugging with GDB manual
- http://www.kegel.com/linux/gdbserver.html
- Déboguage avec gdb
- DDD (GDB graphical front end)
- KGDB (for kernel debugging)
Other languages: | |
---|---|
English • Français |