Я не могу порвать с GDB и QEMU - PullRequest
0 голосов
/ 07 сентября 2018

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

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

Вот как я называю 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: я также попробовал то, что они рекомендуют здесь вопрос переполнения стека о настройке аппаратных точек останова вместо этого, но это ничего не изменило, та же проблема.

Спасибо.

Julien

...