Difference between revisions of "GDB"

From ArmadeusWiki
Jump to: navigation, search
m (Debugging on target from Host through Ethernet)
m (Debugging directly on target)
Line 37: Line 37:
 
==Debugging directly on target==
 
==Debugging directly on target==
 
You have to build gdb for the target and have a working NFS link between your target and your host.<br>
 
You have to build gdb for the target and have a working NFS link between your target and your host.<br>
On target launch GDB from your NFS mount like you do it usually:
+
On target launch GDB from your NFS mount:
 +
<pre class="apf">
 
  # /mnt/host/gdb your_prog
 
  # /mnt/host/gdb your_prog
 +
</pre>
 
If you need argument passing:
 
If you need argument passing:
 +
<pre class="apf">
 
  # /mnt/host/gdb --args your_prog your_args
 
  # /mnt/host/gdb --args your_prog your_args
 +
</pre>
 
To debug a Core dump:
 
To debug a Core dump:
  # /mnt/host/gdb your_prog -c your_core
+
<pre class="apf">
 +
  # /mnt/host/gdb your_prog -c your_core_file
 +
</pre>
  
 
==Links==
 
==Links==

Revision as of 17:56, 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

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
 (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:

 # /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_file

Links

Other languages:

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