eclipse cdt + qemu调试linux内核

eclipse cdt + qemu调试linux内核

ID:9235952

大小:1.67 MB

页数:7页

时间:2018-04-24

eclipse cdt + qemu调试linux内核_第1页
eclipse cdt + qemu调试linux内核_第2页
eclipse cdt + qemu调试linux内核_第3页
eclipse cdt + qemu调试linux内核_第4页
eclipse cdt + qemu调试linux内核_第5页
资源描述:

《eclipse cdt + qemu调试linux内核》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、EclipseCDT+QEMU调试linux内核本篇有关系统环境我要交代一下。因为在ubuntu下找不到eclipsecdt的源,所以要先apt-get一个eclipsepaltform然后在里面选择更新安装cdt才能安装成功。但在eclipseplatform里更新比较容易失败,所以我推荐大家安装opensuse11.0,在这里面只要到eclipse.org下载一个eclipsec/c++ide,直接解压便可运行。文章开始!1.首先我们要从www.kernel.org下载内核源码,在这里我选择的是linux-2.6.28.t

2、ar.bz2。我将其下载到我的主目录下,然后在xterm下输入以下命令。$cd(回到主目录)$tarxflinux-2.6.28.tar.bz2(解压源码)$mkdirlinux-2.6.28-obj(创建一个编译内核的目标文件输出目录)$cdlinux-2.6.28(进入内核源码树根目录)$makeO=/home/xxx/linux-2.6.28-objmenuconfig(这里我们要配置内核,并在~/linux-2.6.28-obj目录下生成内核配置文件.config)(注意:这里的xxx表示的是你的用户名)注意在这里我们

3、要选择kernelhacking配置菜单下的“Compilethekernelwithdebuginfo”和“Compilethekernelwithframepointers”如下图:2.接下来我们打开elicpse,第一次打开时有一个欢迎画面,我们单击右边的workbench图片关掉欢迎画面。由于eclipsecdt是一个非常强大的c/c++ide,它默认会自动的解析工程中源程序并编译工程和产生智能提示信息。但由于我们调试内核过程中暂不会用到这些功能,所以要关闭他们。首先我们到Window->Preferences->Ge

4、neral->Workspace中将BuildAutomatically选项去掉。然后到Window->Preferences->C/C++->Indexer中,将默认的Fastc/c++indexer改为Noindexer。然后我们开始创建一个新的工程。从菜单中选择File->New->Project…->C/C++->CProject然后单击Next按钮。这时出现一个对话框,在ProjectName一栏填入一个工程名,比如linux-kernel.然后将Usedefaultlocation选项给勾掉。在Location一栏

5、填入刚才解压的内核源码的路径。Projecttype选择Makefileproject->Emptyproject。Toolchains选择LinuxGCC.最终结果如下图所示:然后单击Next按钮,出现下一个对话框。这时候因为工程的默认配置还不完全符合我们的要求。所以我们单击AdvancedSettings按钮会打开一个工程配置对话框。我们选择左侧的C/C++Build选项,在相应的右侧页面里我们将BuilderSettings选项页下的Usedefaultbuildcommand勾选掉,然后指定一个新的Buildcomma

6、nd为makeO=/home/xxx/linux-2.6.28-obj.然后单击Buildlocation中的Filesystem…按钮更改obj文件的输出目录为/home/xxx/linux-2.6.28-obj.最终结果如下图所示:然后单击Behaviour选项页,将build(IncrementalBuild)中的all更改为一个空格,将下面的clean更改为mrproper(这是默认清除内核obj文件的命令目标)。弄好后如下图所示:这个时候你就可以编译内核了。Ctrl+B键开始编译工程。注意,如果elipse提示说工程

7、isnotclean,那么只需要在xterm下进入源码树目录,输入makemrproper就可以了。注意这里编译内核花费的时间取决于你的开启选项的多少,所以在menuconfig时,尽可能的将不必要的选项去掉,这样可以缩短编译内核的时间。。。。编译完内核。在/home/xxx/linux-2.6.28-obj/arch/x86/boot/下将生成一个bzImage的大内核镜像。此时我们在xterm下运行qemu虚拟机,命令行如下:$qemu-s-S-hda~/linux-0.2.img-kernel/home/xxx/linu

8、x-2.6.28-obj/arch/x86/boot/bzImage-appendroot=/dev/hda我解释一下这个命令行上的参数。-s选项表示我们运行虚拟机时将1234端口开启成调试端口,供eclipse网络调试时使用-S选项表示我们启动虚拟机时要“冻住”虚拟机,等待

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。