中国Linux公社论坛's Archiver

limingth 发表于 2005-12-27 11:07

gdb在嵌入式系统中的调试(转载)

转自 复旦 bbs

发信人: weiriver (做人要低调啊!), 信区: Embedded
标  题: gdb在嵌入式系统中的调试
发信站: 日月光华 (2005年12月04日16:07:18 星期天), 站内信件

1、首先你要下在gdb的源代码,然后把它编译并安装成你的平台的xxx-linux-gdb。比如
说arm-linux-gdb的编译放法如下:
1) 下载GDB的源代码,如gdb-5.0
2) 执行如下指令:
cd gdb-5.0
./configure --target=arm-linux
make(生成gdb)
make install(生成arm-linux-gdb,并存入/usr/local/bin/)

2、在gdb源代码里有一个gdbserver目录,在这个目录下运行:
make gdbserver
生成gdbserver。当然,你要把gdbserver的Makefile中的CC设置成你的平台的交叉编译
工具。

3、把gdbserver和待调试的应用程序下到你的板子上;而应用程序编译的时候要加-g选
项,它的源代码要放在pc机上,用(正对你的平台的)xxx-linux-gdb调试时需要。

4、如果你用串口1调试hello的话,你就要现在板子上运行命令:
gdbserver hello /dev/ttyS0

5、然后在pc机上运行命令:
xxx-linux-gdb hello

6、在xxx-linux-gdb里敲入入下命令:
set remotedevice /dev/ttyS0(这里设置串口1)
set remote baud 9600 (这里设置串口波特率)
set debug remote 1(可选)
target remote /dev/ttyS0
操作到这儿,gdb就应该和gdbserver联系上了。

7、 运行其它GDB命令进行调试。

BTW:gdbserver可能不会一下子就能便已成功,你可能要修改一些配置,甚至要修改源
代码。关键在于它里面针对串口的代码可能需要修改(我以前就遇到这样的问题)。

limingth 发表于 2005-12-27 11:09

发信人: weiriver (做人要低调啊!), 信区: Embedded
标  题: Re: gdb在嵌入式系统中的调试
发信站: 日月光华 (2005年12月06日11:00:36 星期二), 站内信件

gdbserver就是一个应用程序,考到目标板的file system里就可以了。
不需要ice的

【 在 blackisle (上善若水) 的大作中提到: 】
: 没怎么明白。
: 你是说直接在目标板上运行gdb-server???
: 而不是host->gdb-server->ICE->target???

页: [1]

Powered by Discuz! Archiver 6.1.0F  © 2001-2007 Comsenz Inc.