用eclipse编译调试AS
前面几章讲了最基本的流程,如果要进一步的熟悉代码的流程,用eclipse来单步调试是一个非常有力的手段。Binutils的AS, LD里面的宏不少,分支判断也不少。有了单步调试就能排除这些影响。
一般来讲,目前用binutils的一般是用来交叉编译,因为一般开发人员研究面向X86的编译器其实没有那么大的实用性。虽然binutils生成的目标文件是特定的处理器的,但是生成目标文件的过程是在X86的linux环境下,所以用eclipse调试是一个最简单的方法。
配置linux运行环境
实验的环境是ubuntu14.04LTS 64bit版本。默认的桌面是比较繁琐低效的unity。执行以下几条命令安装默认的gnome环境。配置linux运行环境这个步骤不是必须的,但是很大提高后续的操作效率。
安装gnome3
sudo add-apt-repository ppa:gnome3-team/gnome3
sudo apt-get update
sudo apt-get install gnome-shell
需要安装主题执行这一条;
sudo apt-get install gnome-themes
删除unity:
sudo apt-get -y --auto-remove purge unity
sudo apt-get -y --auto-remove purge unity-common
sudo apt-get -y --auto-remove purge unity-lens*
sudo apt-get -y --auto-remove purgeunity-services
sudo apt-get -y --auto-remove purgeunity-asset-pool
最后请回老朋友新立得
apt-get install synaptic
执行命令结束后,注销用户,就可以在登录界面选择gnome系列的界面。
安装eclipse和运行环境
可以选择下载eclipse,java自己安装。最简单的就是用新立得安装,避免很多依赖,兼容的等问题,直达目的。不要在非价值点浪费力量。
在gnome桌面点击application-》systemtools-》administration-》synaptic package manager。会弹出窗口,输入密码后进入新立得界面。在新立得搜索栏输入eclipse,找到eclipse-cdt,选中安装。新立得会自动选择一大堆依赖,都会被安装。另外在新立得搜索栏输入JRE,看看是否安装了java环境。没有的话选上openjdk-7-jre, 安装就好。
一般来说,经过eclipse的安装,GCC等基本的编译环境就都弄好了。
准备binutils的编译前环境
和普通自己建立一个helloworld程序不同,binutils是有自己的makefile和编译方法的。网上找到的编译命令行一般如下。
$ mkdirbuild-binutils
$ cd build-binutils
$../binutils-2.24/configure --prefix=/opt/cross --target=aarch64-linux--disable-multilib
$ make -j4
$ make install
上面步骤主要是想binutils的源码和编译不在同一个目录,这样比较干净。而对于本文的目的,就不是这样了。--prefix=/opt/cross是用来指定复制binutils的目标路径的,make install是用来复制的。这个都不用了。所以,简化命令如下。
$ ./configure--target=aarch64-linux
$ make -j4
另外,make -j4这个动作是交给eclipse做的。所以准备binutils的编译前环境就只有一句话,$ ./configure --target=aarch64-linux。执行完之后,相应的文件就生成了,最关键是makefile生成了。
导入binutils工程到eclipse
1.选择File > New >Project. C project。因为binutils用的c语言。
3.在Project Name中,输入项目名binutils
4.确保Use defaultlocation 没有被选中。因为要指定源代码所在的位置,因此不能使用use default location.
5.在Location处,点击Browse,选择binutils源代码文件夹,makefile也在这里。
6.从Project types列表中,展开MakefileProject,选择Empty Project。
7.确保选择上Toolchains。Toolchains选择Linux GCC。
8.点击Next即可,最后点击Finish,关闭对话框。
配置和运行eclipse
在eclipse里选择run-》debug,由于有多个目标,会弹出如下窗口:
选择as
点击debug configuration,配置-o as_sample gas/testsuite/gas/aarch64/as_sample.s。注意eclipse调试的路径是项目的根目录,所以需要加上gas。
配置显示行号:
接下来按照正常调试就可以了。