Difference between revisions of "GDB"

From ArmadeusWiki
Jump to: navigation, search
(Debugging a program running on your APF, from your Host, through Ethernet)
Line 32: Line 32:
 
''192.168.0.10'' is the address of your target
 
''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.
+
{{Note|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 !!'''
+
{{Note|Core dump analysis doesn't seem to work in this use case !!}}
  
 
==Debugging directly on your APF (may require more memory)==
 
==Debugging directly on your APF (may require more memory)==

Revision as of 18:17, 27 October 2009

On this page you will find all you need to debug your userspace applications running on your Armadeus board.

Note Note: First of all, be sure to have installed the Toolchain on your Host.


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 Note: Only continue / c can be used to start the program, because it is already running when you launch GDB on your host.


Note Note: Core dump analysis doesn't seem to work in this use case !!


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

Other languages:

English Flag.svg English  •  French Flag.svg Français