qemu arm64 crash gdb

本文档详细介绍了如何在AARCH64架构下编译QEMU和Crash工具,包括配置、编译、文件系统制作以及运行和调试的步骤。首先,通过tar命令解压QEMU和Crash源码,然后分别配置和编译这两个工具。在编译QEMU时,使用了指定的目标列表和参数。接着,利用Busybox制作静态文件系统,并安装到目标目录。最后,启动QEMU并调试内核,通过echo命令触发sysrq,使用Crash工具进行内存转储和分析。此外,还提供了GDB远程调试QEMU的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

tar -xvf qemu-5.1.0

./configure --target-list=aarch64-softmmu

make

生成qemu

 

tar -xvf crash-7.2.9

make target=ARM64

(如果编译报错 是环境问题)

编译生成 crash

 

编译:

make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-  -j4  defconfig

make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-  -j4

 

文件系统制作:

busybox- 网上教程就很多了,

静态编译,   dev 需要添加

 

make defconfig

make CROSS_COMPILE=${CROSS_COMPILE}

make install CROSS_COMPILE=${CROSS_COMPILE}

 

 

运行:

./qemu-system-aarch64 -machine virt -cpu cortex-a57 -machine type=virt -nographic -smp 1 -m 512M -kernel  arch/arm64/boot/Image   -hda ../rootfs.ext3 -append "root=/dev/vda init=/linuxrc rw console=ttyAMA0"

要调试加 -S -s

 

qemu跑起来后,echo c > /proc/sysrq-triger  

ctrl+a  和 z 

 dump-guest-memory -z  xxxx(转存文件文件)

 

crash  

crash  vmlinux  xxxx

接下来可以crash 了

gdb  

运行:

./qemu-system-aarch64 -machine virt -cpu cortex-a57 -machine type=virt -nographic -smp 1 -m 512M -kernel  arch/arm64/boot/Image   -hda ../rootfs.ext3 -append "root=/dev/vda init=/linuxrc rw console=ttyAMA0"

要调试加 -S -s

arm-linux-gnueabihf-gdb

target remote:1234

b xxxxx(设置断点)

c

 

 

其他网友的可以参考 下

 https://blog.youkuaiyun.com/weixin_33804582/article/details/94094521

https://blog.youkuaiyun.com/weijitao/article/details/79477792

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值