一、
就目前而言,嵌入式 Linux系统中,主要有三种远程调试方法,分别适用于不同场合的调试工作:用ROM Monitor调试目标机程序、用KGDB调试系统内核和用gdbserver调试用户空间程序。这三种调试方法的区别主要在于,目标机远程调试stub 的存在形式的不同,而其设计思路和实现方法则是大致相同的。
而我们最常用的是调试应用程序。就是采用gdb+gdbserver的方式进行调试。在很多情况下,用户需要对一个应用程序进行反复调试,特别是复杂的程序。采用GDB方法调试,由于嵌入式系统资源有限性,一般不能直接在目标系统上进行调试,通常采用gdb+gdbserver的方式进行调试。Gdbserver在目标系统中运行,gdb则在宿主机上运行。
要进行GDB调试,目标系统必须包括gdbserver程序,宿主机也必须安装gdb程序。很多人只知道用gdb来调试进程,却不知道gdbServer的存在,从名称上也能猜出来,gdbServer是gdb的一个服务端,那gdb必然就是相对应的那个客户端了。这二则之间是TCP连接,gdb发送命令给gdbServer,gdbServer收到命令后会控制进程进行相对应的操作,然后把操作结果反馈给gdb。
二、安装gdb、gdbServer
1、首先从http://ftp.gnu.org/gnu/gdb/上找到系统需要的那个gdb安装包,注意版本号要一样。
2、在linux上用gdb -v来查看gdb的版本,如:
这里的gdb版本是7.6.1-64.e17,因此在网站上找到gdb-7.6.1.tar.gz该包下载。
3、解压:tar zxf gdb-7.6.1.tar.gz
4、在linux系统下,不需要设置/configure –target=arm-linux,只需要执行./configure即可,自动会生成Makefile文件,随后make,直到编译完成。
5、执行cd gdb-7.6.1/gdb/gdbserver,在gdbServer这个目录下有一个gdbServer的可执行文件,只需要把该文件拷贝到目标机子的/usr/bin目录下即可。
toolchain下载地址:
http://gnutoolchains.com/download/