Linux内核调试和工具使用

Linux内核调试和工具使用

1. 摘要

Linux内核调试跟普通用户态c程序调试的工作有点不同,如果所添加或修改代码是以模块形式加载于内核,则除了编码过程中包含的头文件、各种锁、信号量不同外,跟用户态的c程序的调试工作也没什么差别;但如果所修改代码是必须直接加入内核,并且会随linux系统启动而启动,则为了更容易调试,免于因代码错误系统死机而无法获得bug环境,就得使用kgdb远程调试或通过串口信将打印信息打印到另一台机子上。本文主要介绍在虚拟机上进行linux内核调试时一些常用工具的使用和可能经常会遇到的一些问题的解决方法。编写此份文档的目的是为了不让一部分同事对linux内核编译从未知开始摸索(将花费大量时间),提高工作效率。本文档知识量不高,主要是针对从未接触过linux内核编码的同事使用。

2. Linux内核中编码注意项事

1.不同版本的内核源码,相同模块中的部分代码可能不同,如一些头文件或接口所在位置或参数可能不同,因此在编码前要确定在哪一个版本中编码,否者在不同版本进行代码移植时出现莫名其妙的bug是件令人头痛的事情。 Linux的内核源码放在/usr/src/ 或 /usr/src/kernels中,查看当前系统所使用的内核的命令是: uname –r

3. 调试相关工具使用简介 3.1. samba工具共享文件夹

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。 samba是一个工具套件,在Unix上实现SMB(Server Message Block)协议,或者称之为NETBIOS/LanManager协议.SMB协议通常是被windows系列用来实现磁盘和打印机共享.

1.安装samba工具时,首先要确保虚拟机与pc能够相互ping通,虚拟机有自己的的ip,同时虚拟机的连接模式是bridged,虚拟机不能上外网没关系。 Pc:

虚拟机:

2.如果是redhat的linxu系统,一般都装好了samba的图形界面软件,我用的是centos,是redhat其中一个版本,所以也有带。如果没有装这个软件,可以到网上下载,安装资料很多,也有命令操作的,但比较不方便。

4.在打开samba服务器软件中进行简单的设置,指定要共享的目录,在“访问”页中可以设置访问密码,如果只在自己电脑使用也可以不设置。

5.注销下用户(虚拟机中的linux),然后在服务配置中启动samba的服务,在smb的框框打勾并启动它:

6.这时候在pc的windows系统就能访问到虚拟机共享的目录了,在我的电脑->工具栏->映射网络驱动器中将共享目录映射成一个网络驱动器,就可以像本地磁盘一样访问了:

3.2. 使用VMware-tools工具共享

VMmware自带一个工具可实现虚拟机系统与pc系统进行文件共享,无论虚拟机装的是linux系统还是windows或其他系统。不过要实现该功能前必须确定Vmware软件所在目录有对应系统vmare-tools的镜像文件,如linux.iso。下面介绍如何实现虚拟机linux系统与pc进行文件共享方法。

1. 准备工作

联系客服:779662525#qq.com(#替换为@)