程序笔记   发布时间:2022-07-21  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Quick QEMU大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

Cheatsheet for qemu

Debug Kernel

  1. Preparation, make sure you have already install these tools. Here, mine as follow:
  • gdb 10.1-4
  • qemu 5.2.0-3
  • @H_443_5@make 4.3-3
  • binutil 2.36.1-2▫
  1. compile the kernel with debug configuration, we need three files here
  • vmlinux (symbols)
  • arch/x86-64-/boot/bzImage (kenel image in compressed format)
  • scripts/gdb/vmlinux-gdb.py (gdb scripts)
  1. Lauch the emulator at src directory by excuTing command▫
qemu-system-x86_64 -enable-kvm -S -s 
    -kernel ./arch/x86_64/boot/bzImage 
    -initrd ./rootfs.cpio.gz -nographic 
    -append 'nokaslr console=ttyS0'
  • --nographic start without gui
  • -S will not run until connected with a gdb client
  • -gdb tcp::[port] run a gdbserver with open port at [port] by tcp

PS: -s tells QEMU to start a GDB server on port 1234. -S can be appended to pause the VM before starTing to run.

  1. GDB debuger
    1. gdb vmlinux
    2. gdb: target remote :1234
    3. lx-symbols
    4. break start_kernel or hb start_kernel
    5. conTinute

BUGs FIX

  1. cAnnot insert breakpoints at 0xfffffffxxxxx

use nokaslr or turn off KASLR while compile by set .config with CONFIG_RANDOMIZE_BASE = n

  1. qemu output(endless rebooTing):
   BooTing from ROm...
   Probing EDD (edd=off to disablE)... ok
   arly console in extract_kernel
   input_data: 0x0000000002c773b4
   input_len: 0x000000000090c470
   output: 0x0000000001000000
   output_len: 0x000000000173a968
   kernel_@R_313_10586@l_size: 0x00000000025a7000

   Decompressing Linux... Parsing ELF...

solution: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?id=e3d03598e8ae7d195af5d3d049596dec336f569f just add serval lines at arch/x86/Makefile 223

ifdef CONFIG_X86_64  
LDFLAGS += $(call ld-option, -z max-page-size=0x200000)  
endif                                                                                                                                                                                                                                  ```

大佬总结

以上是大佬教程为你收集整理的Quick QEMU全部内容,希望文章能够帮你解决Quick QEMU所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。