Saya tidak bisa memutuskan hubungan dengan GDB dan QEMU

Saya sedang men-debug Kernel Linux (versi terbaru) menggunakan GDB dan QEMU.

Saya telah menyetel DEBUG_INFO ke ya di file konfigurasi.

Inilah cara saya memanggil QEMU:

$> qemu-system-x86_64 -snapshot -m 4G -serial stdio -kernel ~/Documents/kernel/arch/x86_64/boot/bzImage -initrd ~/D\ ocuments/kernel/initrd/initrd_x86_64.gz -append "root=/dev/sda1 ignore_loglevel" -s Dan GDB tentu saja:

$> gdb vmlinux

Kemudian di dalam gdb:

(gdb)> target remote :1234

Jadi tidak ada yang luar biasa.

Ini menghentikan QEMU. Saya mengatur breakpoint saya, yang sepertinya berfungsi seperti biasa, dan saya mengetik "lanjutkan". Eksekusi QEMU dilanjutkan.

Namun kemudian, meskipun fungsi saya tercapai (saya melihat pesan kernel printk yang saya atur di dalam fungsi tersebut), gdb tidak berhenti.

$> qemu-system-x86_64 --version QEMU emulator version 2.12.0 (Debian 1:2.12+dfsg-3) Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers

Dan

$> gdb --version GNU gdb (Debian 8.1-4) 8.1

Saya tidak tahu harus mencoba apa selanjutnya. Bantuan apa pun akan dihargai.

PS: sebagai informasi, saya menulis keylogger sebagai driver Linux. Jadi saya mendaftarkan pemberi notifikasi keyboard baru, dan ini adalah notifikasi keyboard yang gagal.

PS2: Saya juga mencoba apa yang mereka rekomendasikan di sini pertanyaan stack overflow tentang menyetel breakpoint perangkat keras sebaliknya, tapi itu tidak mengubah apa pun, masalah yang sama.

Terima kasih.

Julien


person Julien Séveno-Piltant    schedule 06.09.2018    source sumber