- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Ubuntu 下使用Eclipse+CDT+UML 调试linux 内核
本文介绍在Ubuntu 下使用eclipse+cdt+uml 进行linux 内核调试的方法,
所谓UML 并非是指Unified Modeling Language,而是User Mode Linux ,是将kernel 作为
process 在linux 系统中运行的技术,该技术目前已经集成进linux 的版本中了,使用uml 可
以方便的进行kernel 的调试,再结合eclipse 一定的设置则可以进行源码级的debug 。
首先,到 中下载一个linux 版本,本文使用的是linux-3.3.8 版本,然后
解压缩,在根目录下运行如下命令:
make ARCH=um defconfig
make ARCH=um menuconfig
make ARCH=um
注意,在执行make ARCH=um menuconfig 时要在”Kernel hacking”中选择“Compile the kernel
with debug info”和“Compile the kernel with frame pointers”,如下图:
这样编译完成后,会在根目录下生成一个linux 文件,然后运行如下命令:
gdb ./linux
就可以进行gdb 的调试了,由于此时没有挂接文件系统,所以run 之后会出现crash,因此
还要执行如下命令:
gdb ./linux udb0=root_fs
上面的root_fs 是指linux 的根文件系统,可以使用dd 进行手工制作,也可以使用网上现成
做好的,可以到(.uk/ )这里去根据需要下载,但是即使如此,在gdb 的
时候进行run 还是会出现root 的挂载失败情况,请看下图,尝试了很多方法都不行,具体原
因不知,不知道哪位大虾能找到解决方法。
其次,虽然存在上面的问题,也还是已经可以断点到start_kernel 处跟踪调试代码
的,使用gdb 的效果如下:
按l 键就可以显示当前代码,b 下断点,n (step over)单步调试,s (step into)
单步调试,具体的调试技巧可以到网上找下gdb 的命令说明。
再者,由于使用gdb 调试需要手动输入命令,而且代码的整体浏览对应也
不方便,因此研究了下eclipse+cdt 的功能,发现可以使用eclipse+cdt 来进行
编译和调试,操作用步骤如下:
a、安装eclipse+cdt,可以使用sudo apt-get install eclipse,然后下
载cdt 插件将里面的features 和plugins 的东西copy 到eclipse 对应的文件夹
内即可,但是由于在本机遇到插件无法使用的情况,所以最后选择到eclipse
的官方网站直接下载了clipse Classic 4.2,下载地址是:
/downloads/,解压缩,然后下载cdt,在此选择了cdt
8.0.2,也可以选择必威体育精装版的cdt 8.1.0,下载地址是:
/cdt/downloads.php ,将cdt 中的feature 和plugins 文件夹的
内容完全拷贝到eclipse 对应的文件夹内,这样就可以使用了,不过使用的前提
是有安装过jdk ;
b 、使用eclipse 配置linux 工程,打开eclipse,点击file-New-Project, 出现
如下图:
选择C Project,点击Next ;
紧接着出现C Project 对话框,输入Project name-可以自己命名,
Location-linux 工程的根目录,Project Type-选择Empty Project 即可,Toolchains
选择Linux GCC ,接着Next ;
选择Adanced settings ,
点击“C/C++ Build”,Build command ,由于要输入带有参数的make 命令,
因此编写了一个脚本在工程目录下,名为makefile.sh ,,makefile.sh 脚本内容如
下:
*********************下面内容是脚本内容*********************
#!/bin/sh
cd ~/TEMP/linux-kernel-3.3.8 #该项请根据实际工程设置路径
make ARCH=um
exit 0
*********************上面内容是脚本内容****
您可能关注的文档
最近下载
- 肩关节磁共振诊断.ppt VIP
- 2024年7月6日江苏省泰州市(姜堰区、高港区)、兴化市、泰兴市事业单位考试《综合能力素质》笔试试题(含答案).pdf VIP
- 《“核心素养”视域下小学语文习作单元主题教学策略的研究》课题研究方案.doc
- 北碚区及15个街镇土地利用总体规划(2006-2020年)调整方案.doc
- 【语文】人教部编版语文八年级上册:古诗文理解性默写(完整版).pdf VIP
- 煤化工工艺学完整版电子教案全套教学课件汇总.pptx
- 磁共振成像原理及功能磁共振演示文稿.ppt VIP
- 中职《幼儿心理学》课程教学课件-项目二任务3 感知觉规律的运用.pptx VIP
- Hasselblad哈苏H6中文说明书.pdf
- (人教2024版)一年级数学上册《数学游戏》单元复习讲义.docx
文档评论(0)