目的:通过可视化环境,单步调试 linux 内核
开发环境:ubuntu20.04
step1: 安装 java 环境
Eclipse 运行依赖 jave 环境;
sudo apt install openjdk-13-jre
step2: 安装 Eclipse-CDT
官网:http://www.eclipse.org/cdt/
step3:配置 Eclipse-CDT
(1)创建工程
在 Eclipse 菜单选择File->New->Project,选择Makefile Project with Exiting Code, 即可创建一个新工程;
(2)配置调选项
选择 Eclipse 菜单中的Run->Debug Configurations, 弹出Debug configurations
在 Main 选项卡配置带符号表信息的 vmlinux
(3)debugger 选项卡,配置
Debugger:gdbserver
GDB debugger:gdb-multiarch
debgger option, Connection 选项卡,配置
Host name or IP address:localhost
Port number:1234
step4: 进行单步调试 Linux 内核
主机端运行 qemu 仿真系统
qemu-system-aarch64 -machine virt -cpu cortex-a57 -machine type=virt -m 1024 -smp 1 -kernel arch/arm64/boot/Image --append "rdinit=/linuxrc root=/dev/vda rw console=ttyAMA0 loglevel=8" -nographic --fsdev local,id=kmod_dev,path=$PWD/k_shared,security_model=none -device virtio-9p-device,fsdev=kmod_dev,mount_tag=kmod_mount -S -s
启动 Eclipse,选择 Run->Debug History, 在 Debugger Console 选项卡输入 file vmlinux 导入调试文件的符号表;输入 set architecture aarch64 命令,设定 GDB 支持 ARM64 架构:
在 Console 设置断点,b start_kernel; 输入 c 运行;
配置完成,便可在 Eclipse 可视化环境,进行 linux 内核单步调试;
Eclipse 比 GDB 命令直观很多,可以方便查看参数,局部变量,寄存器值等;
正文完