Отладка моего собственного ядра с помощью qemu и gdb кажется излишне сложной, потому что нажатие ctrl-c в gdb для прерывания qemu не нарушает его, а заставляет его выйти с сообщением
qemu-system-x86_64: terminating on signal 2
[Inferior 1 (Remote target) exited normally]
Командная строка qemu:
qemu-system-x86_64 -s -no-shutdown -no-reboot -enable-kvm -m 1G -smp cores=1 -cpu qemu64 -drive if=pflash,format=raw,file=ovmf/OVMF.fd -drive file=fat:rw:hda,format=raw -net none -debugcon file:debug.log -global isa-debugcon.iobase=0x402 &
То же самое и без KVM. Может кто-нибудь помочь, как это решить?
- qemu-система-x86_64 v3.1.0
- gdb v8.2.1
Я бы не хотел создавать их последние версии из исходников, поскольку это кажется сложной задачей.
РЕДАКТИРОВАТЬ: Создана минимальная среда, в которой проблема может быть воспроизведена. Возможно, я отследил это до запуска всего этого из сценария оболочки, но, похоже, не могу продвинуться дальше. Комментирование вызова gdb в скрипте и запуск его с отдельного терминала решает проблему (однако мне нравятся вещи, которые работают с минимальным количеством нажатий клавиш). Вы можете скачать его здесь. Просто запустите скрипт под названием qd (есть ли лучший способ предоставить файлы? Я удалю его через некоторое время.)