简介: 使用qemu来dump虚拟机的内存,然后用crash来分析 场景 如果虚拟机没有开启kdump,或者卡死了,那么可以进入qemu的monitor模式将虚机的内存保存到文件中,然后使用crash工具进行分析。 示例 启动虚拟机,然后按ctrl+a c进入monitor,查看帮助 (qemu) help dump-guest-memory dump-guest-memory [-p] [-d] [-z...
启动虚拟机,然后按ctrl+a c进入monitor,查看帮助 (qemu)helpdump-guest-memory dump-guest-memory [-p] [-d] [-z|-l|-s|-w] filename [begin length] -- dump guest memory into file'filename'. -p:dopaging to get guest's memory mapping. -d: return immediately (do not wait for completion...
生成vmcore文件可以通过触发一个panic事件,如通过echo c > /proc/sysrq-trigger命令来实现。在QEMU monitor中,执行dump-guest-memory指令将得到vmcore文件。此时,可以利用crash工具离线分析异常情况。为了加载vmcore文件,crash工具需要指定虚拟地址长度(位长),此值在Linux内核的配置文件中查看。若加载过程...
通常使用 dump-guest-memory filename 或 dump-guest-memory -z filename 指令会抓取qemu中linux kernel的vmcore,一个是不压缩,一个是zlib压缩格式, 后续就可以利用这个vmcore来进行kernel panic 离线分析; 三、qemu vmcore抓取 1、如何生成vmcore 先用最简单的命令行触发一个panic: echo c > /proc/sysrq-trigge...
dump-guest-memory[-z|-l|-s|-w]文件名 将客户机内存转储到协议。该文件可以使用崩溃或 gdb 进行处理。如果没有,转储格式为 ELF。-z|-l|-s|-w -p 执行分页以获取来宾的内存映射。 -z 以kdump 压缩格式转储,使用 zlib 压缩。 -l 以kdump 压缩格式转储,使用 lzo 压缩。
在monitor 命令行下执行 dump-guest-memory dump.img命令,把模拟器内存里的数据保存到dump.img 文件中,然后输入q退出qemu,这时候在当前目录就可以看到生成的 dump.img 镜像文件,命令和日志如下: (qemu) dump-guest-memory dump.img (qemu) (qemu) q ...
dump-guest-core=on|off include guest memoryina coredump(default=on) mem-merge=on|off controls memory mergesupport(default: on) igd-passthru=on|off controls IGD GFX passthroughsupport(default=off) aes-key-wrap=on|off controls supportforAESkeywrapping(default=on) ...
dump-guest-core=on|off include guest memory in a core dump (default=on) mem-merge=on|off controls memory merge support (default: on) iommu=on|off controls emulated Intel IOMMU (VT-d) support (default=off) aes-key-wrap=on|off controls support for AES key wrapping (default=on) ...
-machine q35,vmport=off,dump-guest-core=off,mem-merge=off,hmat=on,usb=off,memory-backend=pc.ram #机型,VMWareIO端口仿真,在核心转储中包含来宾内存,内存合并支持,ACPI异构内存属性表,USB设备,内存 -object memory-backend-file,id=pc.ram,size=512M,mem-path=/hugetlbfs,prealloc=on,share=on ...
以下是暴露Guest内存所需要进行修改的文件列表: Makefile.target hmp-commands.hx memory-access.c memory-access.h monitor.c 让我们一起看看,如何使用最新版本的QEMU对上述文件进行修改。我常用的方法是,在修改之前,首先确保目标软件可以编译并能够正常工作。我们只需要按照QEMU官网上的说明进行操作即可: git clone ...