使用qemu调试linux内核
2011年03月20日
使用qemu调试linux内核
qemu对gdb的良好支持,使它成为研究和调试linux内核的不错的工具, qemu安装和作为单纯的虚拟机来运行别的系统,在这就不说了,网上已经有很多资料了, 主要是记录一下调试基本内核的过程, 以免自己忘了。
1. 编译内核
2. 编译Busybox
3. 建造虚拟磁盘分区文档
1. 建一个64M的raw格式的虚拟磁盘,大小根据自己的需要设定。
dd if=/dev/zero of=./busybox.img bs=1M count=64 2. 格式化分区
mkfs.ext3 busybox.img
3. 在镜像磁盘上创建根文件系统。
a ) mount分区,将虚拟硬盘分区挂到系统中
mount -o loop busybox.img /mnt/disk
b) 执行下列命令将编译的Busybox的内容复制到 /mnt/disk 目录中, Busybox执行完make install后会生成_install目录
cp -a ./_install/* /mnt/disk/
复制其它一些必要发文件到分区中, 我的主机系统为ubuntu 10.04 ,下面是我分区文件树, 把指向busybox的连接都排除了:
├── bin │ ├── busybox ├── dev │ ├── console │ ├── null │ ├── tty │ ├── ttyS0 │ ├── ttyS1 │ ├── ttyS2 │ ├── ttyS3 │ └── zero ├── etc │ ├── fstab │ ├── init.d │ │ └── rcS │ ├── inittab │ └── profile ├── lib │ ├── ld-2.11.1.so │ ├── ld-linux.so.2 -> ld-2.11.1.so │ ├── libc-2.11.1.so │ ├── libc.so.6 -> libc-2.11.1.so │ ├── libm-2.11.1.so │ ├── libmemusage.so │ └── libm.so.6 -> libm-2.11.1.so ├── linuxrc -> bin/busybox ├── lost+found ├── proc ├── sbin └── usr ├── bin └── sbin
说明:
-s 在1234 接受gdb的调试连接
-S 虚拟机启动后立即暂停,等待gdb的连接。
-kernel 内核文件
-append 内核启动参数, 这里指定的根分区为sda, 而不是sda1 是因为前面我们创建的镜像文件是个分区镜像内不是磁盘镜像里在创建的分区。
-hda 指定第一个盘的文件名。
b) 启动gdb, 连接到localhost的1234端口
c ) gdb连接上后就可以,根调试普通程序一下,打断点,什麽的了
发表评论
-
认识JVM
2012-01-20 02:40 740认识JVM 2011年06月18日 ... -
DELPHI VCL组件 TTreeList, Listview和Treeview相结合的多列树控件
2012-01-20 02:40 1608DELPHI VCL组件 TTreeList, Listvie ... -
.net Framework 4 中的新增功能
2012-01-20 02:40 799.net Framework 4 中的新增功能 2010年0 ... -
《Linux内核设计与实现》ch14
2012-01-20 02:40 710《Linux内核设计与实现 ... -
Flex 86道题(好好学习一下)
2012-01-19 10:24 576Flex 86道题(好好学习一 ... -
修复工具类
2012-01-19 10:23 554修复工具类 2011年05月08日 ... -
Windows系统的Regsvr32
2012-01-19 10:23 565Windows系统的Regsvr32 2011 ... -
as3面试题
2012-01-19 10:23 515as3面试题 2011年09月13日 ... -
“该内存不能为读写”解决方法
2012-01-17 03:04 507“该内存不能为读写” ... -
全局内存
2012-01-17 03:04 564全局内存 2011年06月07日 ... -
内存绘图
2012-01-17 03:04 583内存绘图 2010年10月07日 经常出现图形闪烁的 ... -
共享内存
2012-01-17 03:04 653共享内存 2011年06月27日 一、system v ... -
获取内存中可执行文件的PE结构--导入表
2012-01-17 03:04 1456获取内存中可执行文件的PE结构--导入表 2012年01月1 ... -
应该如何指导小学生自己批改作文
2012-01-16 01:35 555应该如何指导小学生自己批改作文 2010年10月14日 ... -
作文评语中如何育人
2012-01-16 01:35 716作文评语中如何育人 20 ... -
小学作文评语原则及思考
2012-01-16 01:35 557小学作文评语原则及思 ... -
何培养小学生作文批改能力
2012-01-16 01:35 614何培养小学生作文批改能力 2010年10月14日 文评改 ... -
如何批改小学生作文2
2012-01-16 01:35 456如何批改小学生作文2 2009年10月08日 我的妈妈 ... -
转:敏捷开发中的code review-荒原-iteye技术网站
2012-01-11 01:10 502转:敏捷开发中的code revi ...
相关推荐
调试linux内核用的虚拟机.把linux内核放在该平台下运行,然后在物理机下调试内核。
使用qemu调试linux5.10内核aarch64,并可以调试head.S,并使用sourceinsight添加linux内核实际使用的文件。总结网上的各个资料,实际应用了一遍,整理整个过程中的文档,以备查看
EclipseCDT+QEMU调试linux内核.pdf
这里说明下,本人调试的内核版本是2.6.11.12,为什么去调试这么“古老”的版本?原因不多说了,你手头也许正拿着ULK3,而它针对的内核版本正是2.6.11,有比这更好的理由吗?而且这个版本不算旧,已不算新,我认为还...
使用qemu虚拟机环境实现linux内核源码级的调试
arm, x86 两个平台的qemu 模拟器的安装,gdb 的安装,内核的编译的核调试 ,包括根文件系统的制作,实测的启动参数
使用qemu调试Linux内核的教程PPT以及相关文件
Ubuntu18.04+Qemu调试Linux内核实验记录 实验环境 操作系统:Ubuntu18.04 依赖项安装: sudo apt-get install texinfo sudo apt-get install libncurses5-dev sudo apt-get install m4 sudo apt-get install flex ...
此配置文件.config是针对QEMU模拟器裁剪的linux-5.5.9内核源码配置,以减少编译时间。 https://blog.csdn.net/eidolon_foot/article/details/104905084。
本文将为大家介绍两种Linux中用GDB与QEMU来调试内核分析的方法。
使用qemu模拟器学习linux内核编译内核,制作rootfs,配置qemu参数,主要用于使用gdb学习,分析调试Linux内核,uboot 如何使用 sudo apt-get install gdb-arm-none-eabi gcc-arm-linux-gnueabi ./scripts/download.sh...
linux内核调试分析指南 linux内核调试分析指南--上篇 本文档已经转到下面的网址,位于zh-kernel.org的文档停止更新,请访问新网址 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一...
想要像调试程序一样来调试linux内核吗?内核同样可以像程序一样一步一步的运行,看了这篇文档你就知道怎么做了。
QEMU+树莓派3B调试Linux-设备树以及原版内核文件
原版内核
BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。有些人将 BusyBox 称为 Linux...
Linux内核CVE漏洞分析报告和相关调试环境。 您无需再编译Linux内核并配置您的环境。 该存储库用于提取所有Linux内核利用和相对调试环境。 您可以使用Qemu启动内核并测试漏洞利用。 # Eg, test CVE-2017-11176, ...
qemu-0.10.5 用于linux内核调试。
5、Linux内核编译与运行:Busybox准备、环境配置、编译最小文件系统、编译内核、运行QEMU 6、Linux内核模块编程:内核模块编程、卸载模块编程、参数模块编程 8、Linux内存管理:编写模块程序、编译、插入模块、查看...
Linux内核CVE漏洞分析报告和相关调试环境。 您无需再编译Linux内核并配置您的环境。 kernel_exploit_factory保持更新……Linux内核CVE漏洞分析报告和相关调试环境。 您无需再编译Linux内核并配置您的环境。 该存储库...