Я не могу порвать с GDB и QEMU

Я отлаживаю ядро ​​Linux (последняя версия) с помощью GDB и QEMU.

Я установил DEBUG_INFO в yes в файле конфигурации.

Вот как я вызываю 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 И конечно же GDB:

$> gdb vmlinux

Затем внутри gdb:

(gdb)> target remote :1234

Так что ничего удивительного.

Это останавливает QEMU. Я устанавливаю точки останова, которые, похоже, работают как обычно, и набираю «продолжить». Выполнение QEMU возобновляется.

Но затем, даже если моя функция достигнута (я вижу сообщение ядра printk, которое я установил внутри функции), gdb не останавливается.

$> 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

А также

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

Я не знаю, что попробовать дальше. Любая помощь будет оценена по достоинству.

PS: для информации, я пишу кейлоггер как драйвер Linux. Итак, я регистрирую новый уведомитель клавиатуры, и это уведомитель клавиатуры не работает.

PS2: я также попробовал то, что они рекомендуют здесь вопрос о переполнении стека об установке аппаратных точек останова вместо этого, но это ничего не изменило, та же проблема.

Спасибо.

Жюльен


person Julien Séveno-Piltant    schedule 06.09.2018    source источник