Eclipse CDT调试linux内核

转载 2011年01月18日 09:00:00

在Linux操作系统上,一般以C/C++开发为主。使用这个平台,主要都是针对C/C++开发。传统在 Linux下开发程序,是在文字模式下,利用vi或者vim等文字编辑器编辑C/C++程序,保存之后,在命令行中使用gcc进行相应的编译操作。如果想要调试程序,一般会用gdb来调试,但也都是在终端命令行环境下进行操作的。
但是,这种开发和调试的环境,对熟悉使用IDE开发的人会又很大的不便;对一些不熟悉Linux环境的开发人员工作更是较为困难的;还有,这种开发和调试的方式,相对来说,生产力不是很高的。如果只是开发和调试学习用的小程序的影响不会很大。但若要开发大型项目时,程序个数众多,运行操作起来相对来说,会不如又图形界面的环境舒服一些。例如,debug时breakpoint的加入,单步执行,观察变量变化等,都不如又可视化环境的条件好;等等;所以,我们很自然的就会想到在Linux环境下,使用IDE来完成开发和调试的工作。
环境搭建:
我的操作系统是Ubuntu9.10。
用到的软件主要有:JRE(Java Runtime Environment),Eclipse SDK,CDT。
具体的安装步骤如下:
1.安装JRE:
我使用的是jre-6u21-linux-i586.bin。在超级用户模式下,创建目录/usr/local/java,拷贝jre-6u21-linux-i586.bin到该目录下,付给起可执行权限chmod a+x jre-6u21-linux-i586.bin,接着执行就可以了。最后,在修改环境变量,添加到PATH中就可以了。
image

image
使用java -version检查是否安装成功。
image
2.安装Eclipse SDK和CDT:
我使用的是eclipse-linuxtools-helios-incubation-linux-gtk.tar.gz。原来要分别安装Eclipse SDK和CDT,但是发现网上已经提供了集成CDT的IDE环境安装文件了。在/usr/local/下,解压eclipse-linuxtools-helios-incubation-linux-gtk.tar.gz,就可以看见Eclipse文件了。进入该目录,执行./eclipse就可以了。

image
接下来,就主要是在Eclipse集成环境中,调试Linux内核了。当然,必须要事先下载还内核的源码包,并且要选择好配置选项。我的内核是linux-2.6.28。注意,在配置内核的时候,要选择kernel hacking 配置菜单下的“Compile the kernel with debug info”。
内核调试步骤:
首先我们到Window->Preferences->General->Workspace 中将Build Automatically选项去掉。
然后到Window->Preferences->C/C++ -> Indexer中,将默认的Fast c/c++ indexer改为No indexer。
然后我们开始创建一个新的工程。从菜单中选择File -> New ->C/C++ -> C Project 然后单击Next按钮。
在Project Name 一栏填入一个工程名,比如 linux-kernel. 然后将 Use default location 选项给勾掉。
在Location一栏填入刚才解压的内核源码的路径。Project type选择Makefile project -> Empty project。Toolchains 选择 Linux GCC.
然后单击Next按钮,出现下一个对话框。单击 Advanced Settings 按钮会打开一个工程配置对话框。选择 C/C++ Build 选项,在相应的Builder Settings 选项页下的 Use default build command 勾选掉,然后指定一个新的Build command 为 make O=/home/zz/kernel/linux-2.6.28.然后单击Build location中的File system…按钮更改obj文件的输出目录为/home/zz/kernel/linux-2.6.28。当然,这个要根据自己的实际目录情况才行。然后单击Behaviour选项页,将build(Incremental Build)中的all更改为一个空格,将下面的clean更改为mrproper。
还有,值得注意的是,我的目标是为ARM开发板编译内核,所以在所有的调试和编译的选项中,都需要将gcc改为arm-linux-gcc,将gdb改为arm-linux-gdb。(事先应该修改Makefile文件,来指定使用的编译器比较方便。)事先,应该确保已经成功安装了交叉编译工具和调试工具才行。
这个时候你就可以编译内核了。Ctrl +B 键开始编译工程。
编译内核成功之后,就需要修改debug config的选项了。在菜单中选择Run -> Debug Configurations ,这时候打开一个配置页面。然后我们在C/C++ Application上双击鼠标,这时在右侧的页面弹出了debug配置选项,然后我们在project一栏选择 linux-kernel。根据自己的arm-linux-gdb的实际情况,然后单击Debugger选项页,将Debugger改为 GdbServer Debugger . 将Stop on startup at 改为start_kernel,将Connection子选项页下的Type改为TCP将Port number改为2331(我的GDB环境要求的)。
重要的debugger配置如图:

image
这里用到的.gdbinit因该是自己事先已经写好的了,选择具体的路径就可以了。
最后单击Dubug按钮就可以了。如图:

image

image
至于一些调试的技巧,如查看变量,寄存器内容,断点设置等的操作,与Eclipse的基本使用是大致相同的。
以后就可以用Eclipse环境结合仿真器来调试内核。

Eclipse CDT + QEMU 调试linux内核

本文参考自: http://issaris.blogspot.com/2007/12/download-linux-kernel-sourcecode-from.html (由于blogspot...

Windows 下使用Eclipse CDT 远程调试 Linux C/C++ 程序

Linux 下调试大型C/C++程序对于一般的程序员来说是一件不容易的事情,GDB提供了强大的调试功能及丰富的调试命令,但界面友好性及用户体验不如VS调试工具(PS:很多大牛能把GDB使用的出神入化,...
  • txk1452
  • txk1452
  • 2012年05月27日 00:26
  • 8514

Linux系统Eclipse CDT引用动态库(第三方库)的解决方案及问题

1、PFring第三方库的编译和demo运行 PFring为第三方快速抓包库,具体的安装和例子使用方法见:http://blog.csdn.net/xuejiren/article/details/2...

linux 下 VNC Server安装配置及 eclipse CDT C/C++ 开发环境搭建(我用的是阿里云服务器 ubuntu 12.04 64-bit,无图形化界面)

linux 下 VNC Server安装配置及 eclipse CDT C/C++ 开发环境搭建(我用的是阿里云服务器 ubuntu 12.04 64-bit,无图形化界面): 既然要用 e...

linux Eclipse CDT Qt TFS

安装文件路径 \\192.168.51.49\Qt Eclipse 1.  Java 方法一 sudo apt-get install sun-java6-jdk sudo apt-get i...
  • ilvu999
  • ilvu999
  • 2011年12月02日 17:19
  • 754

Linux下配置Cocos2dx3.0环境(Eclipse CDT + proj.linux)

折腾了3天,终于配置好了linux版的cocos2dx3.0的开发环境(不包括安卓环境),心中还是有点小激动的。把过程和注意事项和大家分享: -----------------------------...

postgresql8.4+postgis1.5+eclipse CDT3.6 调试环境搭建

原文:http://blog.chinaunix.net/space.php?uid=10034101&do=blog&id=2971635 postgresql 8.4 +postgis1.5...
  • xuyo
  • xuyo
  • 2012年01月01日 23:47
  • 1391

Eclipse CDT环境下编写、调试、运行C++程序详谈

详细介绍如何手动编译与运行Eclipse-CDT环境下的C/C++程序

Eclipse CDT环境下编写、调试、运行C++程序详谈

前面在《Eclipse下编写C++程序——CDT环境搭建》博文中详细介绍了如何在Eclipse中安装CDT插件搭建C/C++开发环境,考虑到C/C++运行程序与Java、Python有一定的差异,也即...
  • faihung
  • faihung
  • 2017年06月20日 13:26
  • 215

Eclipse CDT JNI OPENCV Windows NDK-gdb两步搞定调试

原文:http://www.educity.cn/wenda/101388.html 超简单的NDK单步调试方法   最近为了性能需求,开始搞JNI,白手起搞真心不容易。中间差点崩溃了好几次,最终总...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Eclipse CDT调试linux内核
举报原因:
原因补充:

(最多只允许输入30个字)