2. 交叉调试GDB的介绍和使用 2.1 GDB是什么?
GDB(GNU symbolic debugger) 简单的说是UNIX和LINUX下的一个调试工具。2.2 GDB的主要特性
像所有的调试器一样,GDB可以让你调试一个程序,包括让程序在你希望的地方停下,此时你可以查看变量,寄存器,内存及堆栈。更进一步你可以修改变量及内存值。GDB是一个功能很强大的调试器,它可以调试多种语言。在此我们仅涉及C和C++的调试,而不包括其它语言。还有一点要说明的是,GDB是一个调试器,而不像VC一样是一集成环境。你可以使用一些前端工具如XXGDB,DDD等。他们都有图形化界面,因此用更方便,但它们仅是GDB的一层外壳。因此,你仍应熟悉GDB命令。事实上,当你使用这些图形化界面时间较长时,你才会发现熟悉GDB命令的重要性。
2.3 GDB的安装
1)下载源码:
2)先做一些准备工作:
a)Sudo mkdir –p /usr/local/arm-gdb
b)Sudo chown –R cjok /usr/local/arm-gdb
c)cd Download
3)然后开始编译arm-linux-gdb
a)解压gdb包:
tar zxvf gdb-7.2.tar.gz
b) 配置configure文件:
cd gdb-7.2/
./configure --target=arm-linux --prefix=/usr/local/arm-gdb
c)编译和安装
make
sudo make install
d)cd到/usr/local/arm-gdb/目录下会看到
cd /usr/local/arm-gdb
ls
e)然后把arm-linux-gdb所在的路径添加到PATH环境变量中:
sudo vim /etc/profile
在文件为加入export PATH=$PATH:/usr/local/arm-gdb/bin
source /etc/profile
查看一下:
4)编译gdbserver
a)配置configure文件
cd gdb-7.2/gdb/gdbserver/
./configure --target=arm-linux --host=arm-linux
b)编译
make CC=arm-linux-gcc
c)把刚刚生成的gdbserver拷贝到NFS共享目录下,因为gdbserver最终是在目标机上运行:
sudo cp gdbserver /nfsboot/