做移动网站首页软,绍兴柯桥建设局网站,签了外包合同被辞退有补偿吗,商务网站设计实训报告enable kgdb的情况下#xff0c;使用qemu启动kernel
1#xff0c;需要先在内核配置中增加kgdb的支持
2#xff0c;启动qemu虚拟机时#xff0c;增加参数-s -S#xff0c;这两个参数会使得kernel在启动之后遇到的第一个指令等待gdb连接
例子#xff1a;
/qemu-project…enable kgdb的情况下使用qemu启动kernel
1需要先在内核配置中增加kgdb的支持
2启动qemu虚拟机时增加参数-s -S这两个参数会使得kernel在启动之后遇到的第一个指令等待gdb连接
例子
/qemu-project/qemu/aarch64-softmmu/qemu-system-aarch64 -s -S -machine virt -cpu cortex-a57 -machine typevirt -m 1024 -smp 2 -nographic -kernel arch/arm64/boot/Image -drive formatraw,file./rootfs_ext4.img -append noinitrd root/dev/vda rw consolettyAMA0 loglevel8 -fsdev local,idkmod_dev,path$PWD/kmodules,security_modelnone -device virtio-9p-device,fsdevkmod_dev,mount_tagkmod_mount
使用gdb连接kgdb开始调试
1使用指令aarch64-linux-gnu-gdb vmlinux开始gdb调试
这里使用的是arm64的gdb版本而且已经export了其安装路径如果你们有export则需要指定gdb的绝对路径同样vmlinux镜像的位置也需要指定。
2在命令行中输入target remote:1234 连接到kgdb server开始调试 layout regs
在gdb中输入: layout regs可以把所有的寄存器都显示出来 例如你可以跟踪当在终端上按下ctrlc发生了什么增加断点进而观察系统的运行状态 kernel first instructions
从前面的截图可以看到此时寄存器PC指向的是0x40000000 这个地址可以理解为kernel启动的地址为0x40000000