《Ubuntu下使用Eclipse+CDT+UML调试linux内核》.pdf

《Ubuntu下使用Eclipse+CDT+UML调试linux内核》.pdf

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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 *********************上面内容是脚本内容****

文档评论(0)

ghfa + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档