Difference between revisions of "GDB"
m (→Compile your program with debug symbols) |
(→Debugging on target from Host through Ethernet) |
||
Line 18: | Line 18: | ||
==Debugging on target from Host through Ethernet== | ==Debugging on target from Host through Ethernet== | ||
* On the target launch your program like that: | * On the target launch your program like that: | ||
+ | <pre class="apf"> | ||
# gdbserver 192.168.0.2:2345 program [args] | # 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 | + | </pre> |
+ | ''192.168.0.2'' is the IP address of your Host and ''2345'' the port number to use (examples). | ||
− | * On your | + | * On your Host launch: |
− | [ | + | <pre class="host"> |
+ | []$ arm-linux-gdb program_name | ||
(gdb) set solib-absolute-prefix ./buildroot/build_armv4t/staging_dir/ | (gdb) set solib-absolute-prefix ./buildroot/build_armv4t/staging_dir/ | ||
− | (gdb) target remote 192.168.0. | + | (gdb) target remote 192.168.0.10:2345 |
− | 192.168.0. | + | </pre> |
+ | ''192.168.0.10'' is the address of your target | ||
− | only ''continue (c)'' can be used to start program | + | only ''continue (c)'' can be used to start the program, because it is already running when you launch GDB on your host. |
'''Core dump analysis doesn't seem to work in this use case !!''' | '''Core dump analysis doesn't seem to work in this use case !!''' |
Revision as of 17:43, 18 March 2009
On this page you will find all you need to debug your userspace applications running on your Armadeus board.
First of all, be sure to have installed the Toolchain. During Buildroot's Cross Compiler configuration be sure to have choosen following options:
Toolchain ---> Build gdb server for the Target Toolchain ---> Build gdb for the Host
and optionally:
Toolchain ---> Build gdb debugger for the Target
Contents
Compile your program with debug symbols
Use -g option of gdb:
$ make shell_env $ . armadeus_env.sh $ export PATH=$PATH:$ARMADEUS_TOOLCHAIN_PATH $ arm-linux-gcc -g -o hello hello.c
Debugging on target from 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_name (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
only continue (c) can be used to start the program, because it is already running when you launch GDB on your host.
Core dump analysis doesn't seem to work in this use case !!
Debugging directly on target
You have to build gdb for the target and have a working NFS link between your target and your host.
On target launch GDB from your NFS mount like you do it usually:
# /mnt/host/gdb your_prog
If you need argument passing:
# /mnt/host/gdb --args your_prog your_args
To debug a Core dump:
# /mnt/host/gdb your_prog -c your_core
Links
- http://sources.redhat.com/gdb/current/onlinedocs/gdb_5.html
- http://www.kegel.com/linux/gdbserver.html
- http://www.linux-france.org/article/memo/node119.html
- KGDB (for kernel debugging)
Other languages: | |
---|---|
English • Français |