开发环境:
Ubuntu:Ubuntu-16-64bit
交叉编译工具:4.5.1
GDB版本:GDB-7.12
目标平台:全志A33
一、下载GDB,安装
目前最新的GDB版本为12,因为我们目标平台是32位早期的,因此选择了7.12版本,下载地址为:https://ftp.gnu.org/gnu/gdb/
1、解压、配置、安装
将下载的 gdb-7.12.tar.gz,放到Ubuntu相应的目录~/hudahua/tools$
解压
tar xzf gdb-7.12.tar.gz
解压后,进入gdb-7.12目录,配置GDB
~/hudahua/tools/gdb-7.12$
./configure配置选项:
–target 编译目标平台为ARM linux
–prefix路径:当前路径下___install目录
./configure --target=arm-linux --prefix=$pwd/__install
gdb-7.12$
配置完成,修改gdb/remote.c文件,然后编译
vi gdb/remote.c
//注释掉两行
/*if (buf_len > 2 * rsa->sizeof_g_packet)
error (_("Remote 'g' packet reply is too long: %s"), rs->buf);
*/
//add
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;
}
}
//add finish
编译
make
安装
sudo make install
2、编译安装过程中需要安装的库文件
sudo apt-get install texinfo
二、编译安装 GDB server
1、配置
进入gdb/gdbserver/目录,该目录为gdbserver的目录,同样,配置时需要指定为arm linux
cd gdb/gdbserver/
./configure --target=arm-linux --host=arm-linux
2、编译
make
编译时,缺少库
安装lzop库
sudo apt-get install lzop
三、制作测试程序,测试gdb
:~/hudahua/test$
1、编写一个demo
vi test.c
#include <stdio.h>
int main(void)
{
int i;
for (i=0; i<5; i++) {
printf("Hello World:%d\n", i);
}
printf("test first!\n");
printf("test second!\n");
printf("Good bye!\n");
return 0;
}
2、编译测试程序、编译需要加选项g选项
arm-linux-gcc -g test.c -o test
3、将test程序,和gdbserver文件拷贝到开发板中
cp -f test ../share/
cp -f ../tools/gdb-7.12/gdb/gdbserver/gdbserver ../share/
开发板,NFS挂载Ubuntu,将test程序,和gdbserver文件拷贝到根目录
cp -f /mnt/test /
cp -f /mnt/gdbserver /
四、GDB的使用
1、首先在开发中运行gdbserver
其中192.168.0.118为 Ubuntu 的 IP 地址
board#
./gdbserver 192.168.0.118:6666 /test
2、Ubuntu执行arm-linux-gdb test 请求
远程 gdb 调试
Ubuntu$
arm-linux-gdb test
即可得到如下界面,进入GDB调试命令界面
在GDB输入命令窗口,(输入target remote 开发板IP地址+开发板刚刚输入的端口号)
3、输入开发板的IP地址和设置的端口号
Ubuntu$
target remote 192.168.0.231:6666
Ubuntu$
可以在开发板,终端,看到打印输出了“Remote debugging from host ,表明GDB远程调试连接到了Ubuntu,连接成功。
五、GDB命令的使用
1、打断点,b
2、显示断点,info b
3、调试运行,c
board# ———————————————————-Ubuntu$
4、退出,q
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/163861.html