remote gdb

来源:互联网 发布:集群软件 编辑:程序博客网 时间:2024/05/21 07:02

Most of embedded devices have poor resources, such as memory, disk, and lack of some debug libraries.

So we use remote gdb, rather than directly gdb on device


1. download gdb source code:

      http://ftp.gnu.org/gnu/gdb/

2. untar source code:
      'tar xvf gdb-7.3.tar.bz2'

3. build
      1) build host gdb (gdb client)
          a) 'cd gdb-7.3/'
          b) './configure --prefix=/home/duan/arm-linux-gdb --target=arm-linux'
          c) 'make'
                 => arm-linux-gdb
          d) 'make install'
     2) build target gdb (gdb server)
          a) 'cd gdb/gdbserver/'
          b) './configure --prefix=/home/duan/arm-linux-gdb --target=arm-linux --host=arm-linux CC=/home/duan/arm-davinci-linux-gcc'
               Note: set your own compile chain as CC value
          c) 'make'
               => arm-linux-gdbserver
          d) 'make install'

4. debug
     1) environment
           test program: hello
           host ip: 192.168.1.100
           target ip: 192.168.1.200
     2) mount nfs dirctory to target board
           'mount -t nfs -o nolock 192.168.1.100:/home/duan/nfs /mnt/nfs'
     3) copy 'hello' executable program and arm-linux-gdbserver to nfs directory
     4) run program on target board
           'cd /mnt/nfs'
           './arm-linux-gdbserver 192.168.1.100:1234 hello'
     5) gdb on host
           /home/duanbb/arm-linux-gdb/bin/arm-linux-gdb hello
           (gdb) target remote 192.168.1.200:1234
           (gdb) b main
           (gdb) c
            Continuing.
          Note: because program run on target, so can not use 'r' to run program, use 'c' to continue program
              other commands are same as local gdb, such as 'l', 'p' and so on

    

原创粉丝点击