1. 程式人生 > 實用技巧 >Vmware 除錯 Linux Kernel

Vmware 除錯 Linux Kernel

為什麼使用Vmware而不是QEMU這種模擬器除錯呢,我覺得QEMU這種模擬器對於Vmware來說,有些不方便的是

qemu命令列太複雜:) !!!

 1     Linux Vmware 串列埠雙機除錯
 2 ========================================
 3 1.注意,當配置好Vmrare串列埠後,在各自的串列埠對應的裝置是
 4 /dev/ttyS1,這是最關鍵的,然後相互cat,echo 看是否能夠
 5 收到訊息。
 6 2.新增grub 啟動專案,設定核心除錯引數.
 7 新增額外的核心引數:
 8 kgdboc=ttyS1,115200 kgdbwait nokaslr
9 10 menuentry 'Ubuntu Kernel Debug' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-07472ed4-59a9-4ce4-9fdd-05a662658ac1' { 11 recordfail 12 load_video 13 gfxmode $linux_gfx_mode 14 insmod gzio 15 if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
16 insmod part_msdos 17 insmod ext2 18 set root='hd0,msdos1' 19 if [ x$feature_platform_search_hint = xy ]; then 20 search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 07472ed4-59a9-4ce4-9fdd-05a662658ac1 21 else 22 search --no-floppy --fs-uuid --set
=root 07472ed4-59a9-4ce4-9fdd-05a662658ac1 23 fi 24 linux /boot/vmlinuz-5.3.18 root=UUID=07472ed4-59a9-4ce4-9fdd-05a662658ac1 ro quiet splash $vt_handoff kgdboc=kms,kbd,ttyS1,115200 kgdbwait nokaslr 25 initrd /boot/initrd.img-5.3.18 26 } 27 3. 啟動gdb 28 gdb ./vmlinux 29 dir /home/maojun/kernel/linux-source-5.3.0 30 target remote /dev/ttyS1 31 hb start_kernel 32 33 停止被除錯的機器進入偵錯程式: 34 echo g > /proc/sysrq-trigger
echo c > /proc/sysrq-trigger