linux应用调试技术之GDB和GDBServer

 

1、调试原理

  GDB调试是应用程序在开发板上运行,然后在PC机上对开发板上得应用程序进行调试,PC机运行GDB,开发板上运行GDBServer。在应用程序调试的时候,pc机上的gdb向开发板上的GDBServer发出命令,而开发板上的gdbserver就会向应用程序发出信号,使应用程序停下来或者完成其他一些工作。

 

2、安装GDB和GDBServer(gdb-7.4.tar.bz2 )

  2.1、GDB  

    1、下载: http://ftp.gnu.org/gnu/gdb/ 

    2、解压:tar xvf gdb-7.4.tar.bz2

               3、./configure --target=arm-linux --program-prefix=arm-linux --prefix=/home/polaris/peter/arm-linux-gdb

               4、sudo apt-get install texinfo

               5、 修改gdb/remote.c

                       //==================================
                       如果gdb提示:GDB7.6 Remote 'g' packet reply is too long 
                      修改gdb/remote.c文件,屏蔽process_g_packet函数中的下列两行:

                       if (buf_len > 2 * rsa->sizeof_g_packet)
                       error (_(“Remote ‘g’ packet reply is too long: %s”), rs->buf);

                       在其后添加:

                       if (buf_len > 2 * rsa->sizeof_g_packet) {
                               rsa->sizeof_g_packet = buf_len ;
                       for (i = 0; i < gdbarch_num_regs (gdbarch); i++)
                       {
                            if (rsa->regs[i].pnum == -1)
                             continue;
                            if (rsa->regs[i].offset >= rsa->sizeof_g_packet)
                            rsa->regs[i].in_g_packet = 0;
                            else
                            rsa->regs[i].in_g_packet = 1;
                       }
                       }

                  6、make && make install

  2.2、GDBServer

    1、cd gdb/gdbserver/

    2、配置:./configure --target=arm-linux-gnueabihf --host=arm-linux-gnueabihf

    3、编译:make CC=arm-linux-gnueabihf-gcc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值