易截截图软件、单文件、免安装、纯绿色、仅160KB

使用Qemu来调试linux内核

Qemu是一个优秀的开源ISA模拟器,支持很多体系结构,当然包括x86。Qemu提供调试功能,可以对被模拟进行调试。
Qemu主页http://fabrice.bellard.free.fr/qemu/
Qemu下载页面http://fabrice.bellard.free.fr/qemu/download.html 包括源码,可执行文件,已制作好的disk file等
Qemu有使用说明文档http://fabrice.bellard.free.fr/qemu/qemu-doc.html,网上也可以搜索到一些说明,但是这些说明不够清楚甚至有错误的地方,不足以帮助别人成功使用Qemu来调试kernel,所以我把自身可行的方法记录下来。
1。下载Qemu, qemu有直接的可执行文件包,解压到  / 即可使用
2。下载Qemu 提供的测试disk image file;
3。测试Qemu是否可以运行, qemu -hda linux-0.2.img -append "root=/dev/hda"
 -no-kqemu(linux-0.2.img为之前下载好的disk image file),正常情况下会跳出窗口开始运行linux系统
基本安装正确之后,开始进入调试阶段
1。编译自己需要的kernel内核,产生image文件bzImage,kernel elf文件vmlinuz
2。运行Qemu,启动调试模式。这里是需要注意的地方,Qemu给出的说明是这样的:
In order to use gdb, launch qemu with the '-s' option. It will wait for a gdb connection:
> qemu -s -kernel arch/i386/boot/bzImage -hda root-2.4.20.img \
-append "root=/dev/hda"
Connected to host network interface: tun0
Waiting gdb connection on port 1234
很多网上资料也是这么说的,但是我试了多次,使用这样的命令,不会出现“Connected to host network interface: tun0 Waiting gdb connection on port 1234”字样,linux系统也是直接运行起来,没有调试的机会。一个个们告诉我用-S(大S)就能达到效果。 -S 的意思是freeze CPU ata startup。
步骤如下
1。启动Qemu,使用大S参数 qemu -kernel bzImage -hda linux-0.2.img -append "root=/dev/hda" -S,系统会跳出一个黑显示界面,无任何内容。此时通过 ctrl+alt+1 与 ctrl+alt+2可以切换,一个是屏幕输出,一个是qemu控制台。
2。切换到qemu控制台,输入命令gdbserver 1234
3。同时打开gdb程序,通过qemu说明中提供的方法既可进行调试:
Then launch gdb on the 'vmlinux' executable:
> gdb vmlinux
In gdb, connect to QEMU:
(gdb) target remote localhost:1234
你可以设置断点如break start_


相关文档:

实战Linux Bluetooth编程(三) HCI层编程

1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI)  就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......

Linux设备模型之input子系统详解

一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......

linux /proc/stat 文件介绍及应用



般来说对于需要大量cpu计算的进程,当前端压力越大时,CPU利用率越高。但对于I/O网络密集型的进程,即使请求很多,服务器的CPU也不一定很到,
这时的服务瓶颈一般是在磁盘的I/O上。比较长见的就是,大文件频繁读写的cpu开销远小于小文件频繁读写的开销。因为在I/O吞吐量一定时,小文件的读
写更加频繁,需要更多的c ......

Linux VI编辑命令

Linux VI编辑命令使用剖析
2010年01月15日 星期五 00:35
1、vi的基本概念
  基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
1) 命令行模式command mode)
  控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及 ......

八个步骤修改linux时区


For ubuntu: [1]http://webonrails.com/2009/07/15/change-timezone-of-ubuntu-machine-from-command-line/
2
Logged in as root, check which timezone your machine is currently using by executing `date`. You'll see something like Mon 17 Jan 2005 12:15:08 PM PST, PST in this case is the cu ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号