使用GDB调试嵌入式Linux设备

来源:互联网 发布:理智与情感 知乎 编辑:程序博客网 时间:2022/08/17 11:58

步骤:

。熟悉在普通电脑上用GDB调试的基本方式。参见:http://www.ibm.com/developerworks/linux/library/l-gdb/

。下载《gdbquick reference》,2张纸,打印出来放在手边备用。

。让嵌入式系统支持gdbserver.(在openwrt上,即在makemenuconfig时选择编译gdbserver

。进行调试

 

对于第四点,下面以mipscpu上的openwrt为平台进行举例

     

  1. 电脑IP地址为192.168.1.115, 设备IP地址为192.168.1.1,互相能进行IP通信

     

  2. 通过交叉编译工具,把如下代码编译成设备上的支持GDB的可执行文件test.bin

#include <stdio.h>

int main(int argc, char *argv[])

{

int i=0; i=1;

printf(“%d”, i++);

i++;

printf(“%d, %d”, j++, i++);

}

 

编译命令举例:

 

$(OPENWRT_DIR)/staging_dir/toolchain-mips_gcc4.1.2/bin/mips-linux-uclibc-gcc-g -Wall -I. -I $(PWD)/../../Include/ -I$(OPENWRT_DIR)/build_dir/linux-msp71xx/linux-2.6.20.21/ -o test.bintest.c

 

 

  1. 将编译出来的test.bin拷贝到嵌入式设备上跑的linux的/usr/目录下

  2. 在设备上执行如下语句启动GDBSERVER

    gdbserver host:2345 /usr/test.bin

  3. 在电脑上执行如下命令:

    /openwrt/staging_dir/toolchain-mips_gcc4.1.2/bin/mips-linux-uclibc-gdbtest.bin

  4. 在电脑上进入GDB的界面了,执行如下命令给main函数加一个断点:

    break main

  5. 在电脑上的GDB界面执行如下命令,建立于设备上的gdbserver的连接:

    target remote 192.168.1.1:2345

  6. 在电脑上的GDB界面执行如下命令开始跑程序:

    continue

  7. 此时便进入调试了,使用见前面提到的<gdb quick reference>
  8. 执行如下命令终止GDB调试:

    quit

 

 

原创粉丝点击