[学习备忘录]编译gdb及gdbserver

调试的重要大家都知道,不多说。本文简单写一下编译gdb的步骤,当然还有gdbserver,本文不强调“交叉”、“交叉编译”等等关键字,这些技术没什么的,很普通。同时也不解释./configure之类的命令。

 

1、下载gdb

下载地址为http://www.gnu.org/software/gdb/,而真正的下载页面为http://ftp.gnu.org/gnu/gdb/,我下载的是7.2版本的。

 

2、解压

$ tar jxvf gdb-7.2.tar.ba2

 

3、配置

$ ./configure --target=arm-linux --prefix=/xxx/xxx/xxx --program-prefix=arm-linux-

解释一下,--target=arm-linux表示生成的gdb调试的目标是在arm核心Linux系统中运行的程序,--prefix指定gdb安装的路径,注意是绝对路径,默认安装在/usr/local/bin中的,如果采用默认路径,注意权限。--program-prefix指定这个gdb的前缀,这里加arm-linux-,以表明它是调试arm+Linux的程序。

 

3、编译、安装

$ make

$ make install(这里需要注意权限问题)

 

这样就搞完了,可以用whereis arm-linux-gdb或arm-linux-gdb -v查看,也可使用file命令。注意,如果已经安装了交叉编译器,可能查看到的是这个交叉编译器自带的gdb,在调试中,要注意gdb和gdbserver版本一致。使用哪个调试器,由实际情况决定。

 

下面继续编译gdbserver,它是一个运行在目标板系统中的程序,因此需要使用交叉编译器来编译。

1、进入gdbserver目录

$ cd gdb/gdbserver

 

2、配置

$ ./configure --target=arm-linux --host=arm-linux

这里的--host指定这个程序的目标平台。这一步中会检查系统中是否有交叉编译器的。

 

3、编译

$ make

这样,就在当前目录下生成gdbserver这个程序中,这个程序只有在目标平台中运行,可使用file命令查看之。如果觉得这个gdbserver太多了,可以使用arm-linux-strip命令减小其文件体积。

 

另:所说在以前的版本中,linux-arm-low.c这个文件有错误,需要注释掉某个文件的某个宏,在这个版本(gdb 7.2)中没有遇到过。因此忽略之。

 

以后真正调试了,再写写调试笔记吧。

                                                                                                                        木草山人

你可能感兴趣的:([学习备忘录]编译gdb及gdbserver)