如何用source insight写内核代码

别的文章都会做很多说明, 铺垫, 我就不多说了, 直接来重点

vim写代码的时候, 有一种情况不是很好处理, 比如
struct a{int x; int y; iny z}
struct b{int x; int y; iny z}

pb->z想从这里跳到到结构体b的定义需要编辑器理解pb的含义, 而不是简单的字符查找

那就让我们来用source insight吧

以前都是用Windows挂samba来运行的, 缺点就是速度慢, kernel code文件太多, 一共5w多个, 等同步要很久

还有人会把代码让到windows机器来看, 这样编辑, 编译都需要同步, 不方便

思路就是把source insight放到本地来跑, 用wine可以, 但是source insight是i386的, 所以需要32位的wine, 编译32位的wine需要一堆32位的package-devel包, alios7又没有这些包

简单来说, 用docker来解决这一些

来, 放个dockerfile在这里, 你们都懂了
有了这东西, 写代码能找到快感

FROM centos/systemd

MAINTAINER "shidao.ytt" <shidao.ytt@alibaba-inc.com>
#docker run --privileged -v /sys/fs/cgroup:/sys/fs/cgroup:ro -p 5901:5901 -d di
#docker build --rm --no-cache -t di .

RUN yum -y install bind-utils traceroute net-tools bash-completion tigervnc-server vim git wget epel-release
RUN yum -y install python2-pip

# pip install
RUN pip install --upgrade pip; pip install sshuttle

# install config vnc
RUN yum -y group install GNOME Desktop
RUN systemctl stop firewalld.service; systemctl disable firewalld.service

RUN cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
RUN sed -e 's|<USER>|root|' -e 's|/home||' -i /etc/systemd/system/vncserver@:1.service

RUN systemctl daemon-reload; systemctl enable vncserver@:1.service
RUN echo -e "111111\n111111\nn\n" | vncpasswd

# install wine
RUN yum -y groupinstall 'Development Tools'
RUN yum -y install libX11-devel freetype-devel alsa-lib-devel.i686 libsndfile-devel.i686 readline-devel.i686 glib2.i686 glibc-devel.i686 libgcc.i686 libstdc++-devel.i686 pulseaudio-libs-devel.i686 cmake portaudio-devel.i686 openal-soft-devel.i686 audiofile-devel.i686 freeglut-devel.i686 lcms-devel.i686 libieee1284-devel.i686 openldap-devel.i686 unixODBC-devel.i686 sane-backends-devel.i686 fontforge libgphoto2-devel.i686 isdn4k-utils-devel.i686 mesa-libGL-devel.i686 mesa-libGLU-devel.i686 libXxf86dga-devel.i686 libXxf86vm-devel.i686 giflib-devel.i686 cups-devel.i686 gsm-devel.i686 libv4l-devel.i686 fontpackages-devel ImageMagick-devel.i686 openal-soft-devel.i686 libX11-devel.i686 docbook-utils-pdf libtextcat tex-cm-lgc alsa-lib-devel audiofile-devel.i686 audiofile-devel cups-devel.i686 cups-devel dbus-devel.i686 dbus-devel fontconfig-devel.i686 fontconfig-devel freetype.i686 freetype-devel.i686 freetype-devel giflib-devel.i686 giflib-devel lcms-devel.i686 lcms-devel libICE-devel.i686 libICE-devel libjpeg-turbo-devel.i686 libjpeg-turbo-devel libpng-devel.i686 libpng-devel libSM-devel.i686 libSM-devel libusb-devel.i686 libusb-devel libX11-devel.i686 libX11-devel libXau-devel.i686 libXau-devel libXcomposite-devel.i686 libXcomposite-devel libXcursor-devel.i686 libXcursor-devel libXext-devel.i686 libXext-devel libXi-devel.i686 libXi-devel libXinerama-devel.i686 libXinerama-devel libxml2-devel.i686 libxml2-devel libXrandr-devel.i686 libXrandr-devel libXrender-devel.i686 libXrender-devel libxslt-devel.i686 libxslt-devel libXt-devel.i686 libXt-devel libXv-devel.i686 libXv-devel libXxf86vm-devel.i686 libXxf86vm-devel mesa-libGL-devel.i686 mesa-libGL-devel mesa-libGLU-devel.i686 mesa-libGLU-devel ncurses-devel.i686 ncurses-devel openldap-devel.i686 openldap-devel openssl-devel.i686 openssl-devel zlib-devel.i686 pkgconfig sane-backends-devel.i686 sane-backends-devel xorg-x11-proto-devel glibc-devel.i686 prelink fontforge flex bison libstdc++-devel.i686 pulseaudio-libs-devel.i686 gnutls-devel.i686 libgphoto2-devel.i686 openal-soft-devel openal-soft-devel.i686 isdn4k-utils-devel.i686 gsm-devel.i686 samba-winbind libv4l-devel.i686 cups-devel.i686 libtiff-devel.i686 gstreamer-devel.i686 gstreamer-plugins-base-devel.i686 gettext-devel.i686 libmpg123-devel.i686

RUN cd; wget http://dl.winehq.org/wine/source/2.x/wine-2.22.tar.xz; tar xJf wine-2.22.tar.xz; cd wine-2.22; ./configure; make -j60; make install

RUN yum clean all

CMD ["/usr/sbin/init"]
《1.0版本》 【介绍】 这个小工具可以在SourceInsight工程中为代码自动完成如下功能: 1、添加代码修改说明 如果是同时选中了多行代码,格式为 /*Start of CuiJin on xxxx年xx月xx日 Version(NetEye3.2)*/ if(){ …… }else{ …… } …… /*End of CuiJin on xxxx年xx月xx日 Version(NetEye3.2)*/ 其中的CuiJin指代码作者,Version指代码所属的版本,两者可以事先设置。 如果只是一行代码,则会将修改说明置于行尾,格式为 a = 1;/*Modifed by CuiJin on 2003年6月29日 Version(NetEye3.2)*/ 2、添加代码注释 多行代码,格式为 /*if(){ …… }else{ …… }*/ 一行代码,格式为 //a = 1; 3、添加#if 0 注释 对于那些已经加了/**/的代码,如果再加/**/注释则因为里面已经有*、/等标志,新的注释 不能正确添加。此时,可以通过添加#if 0来解决,格式 #if 0 if(){ …… }else{ …… } #endif 4、完成函数说明的自动添加,格式 /* * Function: * Description: * Calls: * Called By: * Table Accessed: * Table Updated: * Input: * Output: * Return: * Others: */ 5、完成文件说明的自动添加,格式 /* * FileName: * Author: CuiJin Version: NetEye3.1 Date: 2003年6月29日 * Description: * Version: * Function List: * 1. * History: * <author> <time> <version > <desc> */ 【使用方法】 1、小工具的文件名为NetEyeUtils.em,将其放入SourceInsight工程目录的base工程目录下。 2、启动Base工程(启动SourceInsight后自动就有),打开NetEyeUtils.em文件,打开SourceInsight的 Options->Menu Assignment... 在Menu下拉框中选中Work子菜单,在Command中选出各个Macro(键入m即可模糊匹配出来),将其一一 插入Menu Contents内,按OK完成。 3、关闭Base工程。打开你的工程,发现Work菜单项已经在上面。打开Work->SaveSysInfo,输入你的名字 和版本信息。 4、此时,你可以通过选中菜单的SaveSysInfo等选项进行工作了! 【菜单项分类说明】 SaveSysInfo--保存你的基本信息,注意,这一定是第一个要操作的菜单。 AddModInfo--添加代码修改信息 AddCommentInfo--添加代码注释 AddIf0Identifier--添加#if 0注释 AddFuncHeader--添加函数说明信息 AddFileHeader--添加文件说明信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值