您的位置:首页 > 新闻 > 资讯 > 二、Qemu+Vscode调试内核

二、Qemu+Vscode调试内核

2025/2/24 21:42:06 来源:https://blog.csdn.net/liutit/article/details/140348601  浏览:    关键词:二、Qemu+Vscode调试内核

编译内核、busybox、配置Qemu参考:Qemu调试内核

一、修改启动脚本

1、修改Qemu启动脚本

#! /bin/shqemu-system-aarch64 \-machine virt,virtualization=true,gic-version=3 \-nographic \-m size=1024M \-cpu cortex-a72 \-smp 2 \-kernel Image \-drive format=raw,file=rootfs.img \-append "root=/dev/vda rw nokaslr" \-s \-S# nokaslr 是关闭随机地址,gdb调试随机地址导致无法正常调试
# -s 是-gdb tcp::1234 的简写,如果需要换端口可以用-gdb tcp::1234替换-s参数
# -S 是freeze cpu at startup的指令,也就是kernel 启动时就挂起,等待调试连接,如果不需要调试内核启动,这个参数也可以去掉

二、配置vscode

1、创建编辑 .vscode/launch.json

将文件创建在内核文件夹
{"version": "0.2.0","configurations": [{"name": "kernel debug","type": "cppdbg","request": "launch","program": "${workspaceFolder}/vmlinux","cwd": "${workspaceFolder}","MIMode": "gdb","miDebuggerPath": "/usr/bin/gdb-multiarch","miDebuggerServerAddress": "localhost:1234"}]
}

三、调试内核

1、打断点init/main.c

start_kernel是内核入口

在这里插入图片描述

2、启动Qemu

在这里插入图片描述

3、vscode开始调试

(1)方法1

在这里插入图片描述

(2)方法2

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com