步骤:
一。熟悉在普通电脑上用 GDB调试的基本方式。参见: http://www.ibm.com/developerworks/linux/library/l-gdb/
二。下载《 gdb quick reference》, 2张纸,打印出来放在手边备用。
三。让嵌入式系统支持 gdbserver. (在 openwrt上,即在 make menuconfig时选择编译 gdbserver)
四。进行调试
对于第四 点,下面以mips cpu 上的openwrt 为平台进行举例
- 电脑IP地址为192.168.1.115, 设备IP地址为192.168.1.1,互相能进行IP通信
-
通过交叉编译工具,把如下代码编译成设备上的支持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.bin test.c
-
将编译出来的test.bin 拷贝到嵌入式设备上跑的linux 的/usr/ 目录下
-
在设备上执行如下语句启动GDBSERVER
gdbserver host:2345 /usr/test.bin
-
在电脑上执行如下命令:
/openwrt/staging_dir/toolchain-mips_gcc4.1.2/bin/mips-linux-uclibc-gdb test.bin
-
在电脑上进入GDB 的界面了,执行如下命令给main 函数加一个断点:
break main
-
在电脑上的GDB 界面执行如下命令,建立于设备上的gdbserver 的连接:
target remote 192.168.1.1:2345
-
在电脑上的GDB 界面执行如下命令开始跑程序:
continue
- 此时便进入调试了,使用见前面提到的<gdb quick reference>
-
执行如下命令终止GDB 调试:
quit