环境:
目标板:ARM Cortex A9
交叉编译的环境:ubuntu
所需安装包:
1、ncurses-5.9.tar.gz(下载网址:http://linux.softpedia.com/get/Programming/Libraries/Ncurses-6097.shtml#download)
2、gdb-7.8.1.tar.gz(下载网址:http://ftp.gnu.org/gnu/gdb/ )
前言:
利用GDB进行远程调试,首先需要明确一下几点:
1、调试用的GDB必须是交叉编译产生的GDB;
2、调试的程序必须是交叉编译且带 “-g” 选项的可执行程序。
3、在宿主机和目标开发板上调试的必须是同一个可执行程序。
4、基于 3 ,我们必须要建立一个宿主机和开发板的NFS共享目录,以实现调试调试同一可执行程序。
5、目标开发板的gdbserver和宿主机用的GDB版本必须相同,最好是同一源文件编译同时产生的。
6、在开发板上必须开通远程调试所需要的端口,否则远程调试机无法通过端口远程连接到开发板上。
移植过程:
一、编译运行在PC端的gdbclient程序arm-linux-gdb
1) 解压
tar -xzvf gdb-7.8.1.tar.gz
2) 创建目标安装文件夹
cd gdb-7.8.1
mkdir _install
3) 配置
./configure --target=arm-none-linux-gnueabi --prefix=${PWD}/_install --disable-werror
*************修改源代码**************************
如果不修改,gdb执行l列出源代码时会出错!
(gdb) l
Remote 'g' packet reply is too long: 00000000ccade1be0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0ace1be00000000c0770d4010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000