linux User Mode linux
来源:互联网 发布:阿里云 域名301重定向 编辑:程序博客网 时间:2024/05/22 00:34
在《linux 设备驱动程序》第四章调试技术中有提起UML内核调试,但书中没有详细的介绍这方法。小koala在这里介绍UML调试。UML(user mode linux)就是将linux当做应用层的进程,所以可以用gdb调试。
话不多说直接上干货
Step1:默认配置:
make defconfig ARCH=um
Step2:选择相关配置:
make menuconfig ARCH=um
选择:
l Kernelhacking->Kernel debugging
l Kernelhacking->Compile-time checks and compiler options->Compile the kernelwith debug info
l Kernelhacking->compile-time checks and compiler options->Compile the kernelwith frame pointers
Step3:编译内核
make ARCH=um –j(内核数*2)
编译成功之后,在源码的根目录下有linux和vmlinux可执行文件。
Step4:文件系统。现在已经编译好了um的内核,但是没有文件系统。下载文件系统:http://fs.devloop.org.uk
,下载Debian-Wheezy-AMD64-root_fs.bz2文件系统。解压到编译好的源码的目录下。如
bunzip2Debian-Wheezy-AMD64-root_fs.bz2。
Step5:制作swap文件系统,主要作用是使UML运行更加稳定。(可选)
dd if=/dev/zero of=swap_fs bs=1M count=512sudo mkswap swap_fs
Step6:启动UML。但必须是超级用户root。先进入已编译好的源码目录下。
Sudo bash./linux ubda=Debian-Wheezy-AMD64-root_fs ubdb=swap_fs mem=256M
(注:udba:根文件 ubdb:交互文件 mem:UML内存)
当成功启动UML,会有这样的界面:
第一次的登陆只能是root。
Step7:寻找UML的进程号,另开一个终端。输入ps –el |greplinux。如下
图中每一行,第4个参数为第5个参数的子进程。
图中处理第一行之外的每一行,都显示进程号为26825的进程是其他进程的父进程。因此PID=26825的进程是UML进程。
gdb调试UML(user mode linux)
编辑删除转载 2016-04-17 20:56:44
标签:gdb调试内核uml
UML(user mode linux):将linux当做应用层的进程,所以可以用gdb调试。
Step1:默认配置:make defconfig ARCH=um
Step2:选择相关配置:make menuconfig ARCH=um
选择:
l Kernelhacking->Kernel debugging
l Kernelhacking->Compile-time checks and compiler options->Compile the kernelwith debug info
l Kernelhacking->compile-time checks and compiler options->Compile the kernelwith frame pointers
Step3:make ARCH=um –j(内核数*2)
编译成功之后,在源码的根目录下有linux和vmlinux可执行文件。
Step4:文件系统。现在已经编译好了um的内核,但是没有文件系统。下载文件系统:http://fs.devloop.org.uk
,下载文件系统。解压到编译好的源码的目录下。如bunzip2Debian-Wheezy-AMD64-root_fs.bz2。
Step5:制作swap文件系统,主要作用是使UML运行更加稳定。(可选)
dd if=/dev/zero of=swap_fs bs=1M count=512
sudo mkswap swap_fs
Step6:启动UML。但必须是超级用户root。先进入已编译好的源码目录下。
Sudo bash
./linux ubda=Debian-Wheezy-AMD64-root_fs ubdb=swap_fs mem=256M
(注:udba:根文件 ubdb:交互文件 mem:UML内存)
当成功启动UML,会有这样的界面:
第一次的登陆只能是root。
Step7:寻找UML的进程号,另开一个终端。输入ps –el |greplinux。如下
图中每一行,第4个参数为第5个参数的子进程。
图中处理第一行之外的每一行,都显示进程号为26825的进程是其他进程的父进程。因此PID=26825的进程是UML进程。
Step8:启动gdb。另打开一个终端。输入gdb ./linux
Step9:退出UML。切换到UML的终端。输入init 0,即可退出。
参考:
http://user-mode-linux.sourceforge.net
http://user-mode-linux.sourceforge.net/source.html
http://user-mode-linux.sourceforge.net/configure.html
- linux User Mode linux
- User Mode LINUX Howto
- UML(user-mode-linux)
- Linux Single User Mode
- LINUX user-mode help API
- Linux GDB+UML(User-Mode Linux)调试
- 试玩UML(User Mode Linux)
- 试玩UML(User Mode Linux)
- Xilinx-Linux User Mode Pseudo Driver
- 试玩UML(User Mode Linux)
- Linux Kernel Mode与User Mode的实质
- Linux Kernel Mode与User Mode的实质
- 建立UML(user mode linux)的linux内核调试环境
- 建立UML(user mode linux)的linux内核调试环境
- linux-4.1.1 user mode linux(UML)试用
- 透過 User-Mode-Linux 來學習核心設計
- 透過 User-Mode-Linux 來學習核心設計
- 在ubuntu8.04下安装user mode linux
- abstract 不可以 与final , private , static 共存
- 获取指定路径下的文件夹名
- Writing an alsa driver译文-第一章 文件树架构
- 记一次基于Unity的Profiler性能分析
- Retrofit+RxJava 简单学习
- linux User Mode linux
- js 函数 变量与回调函数做参数
- Shell获取当前登陆的用户名的UID
- YUM常用命令详解
- Android Listview动态加载数据
- PS教程:用PS滤镜将人物照转成素描肖像
- Android SlidingMenu 开源项目 侧拉菜单的使用(详细配置)
- Android studio快捷键使用技巧
- hydra安装及使用