Аппаратная точка останова в GDB + QEMU отсутствует start_kernel

Я пытаюсь отлаживать ядро, запущенное на QEMU с GDB.

Ядро было скомпилировано с помощью

CONFIG_DEBUG_INFO=y CONFIG_GDB_SCRIPTS=y 

Я запускаю ядро ​​в qemu с помощью следующей команды.

 qemu-system-x86_64 -s -S -kernel arch/x86_64/boot/bzImage 

На отдельном терминале я запускаю GDB по тому же пути и выдаю эти команды в sequnece.

  gdb ./vmlinux (gdb) target remote localhost:1234 (gdb) hbreak start_kernel (gdb) c 

Я не предоставлял rootfs, так как на данный момент меня не интересует полная рабочая система, просто ядро. также я попробовал комбинации hbreak / break

Ядро просто загружается и достигает паники ядра, поскольку rootfs не может быть найден .. ожидается. Я хочу, чтобы он остановился на start_kernel, а затем выполнил код.

наблюдение: если я устанавливаю немедленную точку останова, она работает и останавливается, но не на start_kernel / startup_64 / main

Возможно ли, что qemu не вызывает все эти функции или он каким-то образом маскируется.

 Kernel: 4.13.4 GDB: GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.3) 7.7.1 GCC: gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4 system: ubuntu 14.04 LTS 

заранее спасибо.

ПРИМЕЧАНИЕ. Эта точно такая же процедура работала с ядром 3.2.93, но не работает с 4.13.4, поэтому я предполагаю, что нужны еще несколько конфигураций. Я не мог найти ресурсы в Интернете, которые включили эту процедуру отладки для ядра 4.0 и выше. Поэтому я продолжаю с 3.2, все и все входы на это приветствуются.

One Solution collect form web for “Аппаратная точка останова в GDB + QEMU отсутствует start_kernel”

Я столкнулся с той же проблемой и нашел решение из списка рассылки linux kernel newbies .

Вы должны отключить KASLR в командной строке ядра с опцией nokaslr или отключить опцию ядра «Рандомизировать разделы памяти ядра» внутри «Тип и функции процессора» при создании образа ядра.

  • (virt-manager: 4796): клиент не смог подключиться к демону D-BUS / Не удалось подключиться к libvirt
  • Как восстановить размер окна по умолчанию в KVM / QEMU
  • / dev / kvm отсутствует в системе, поддерживающей kvm-виртуализацию
  • Не удается получить Qemu через SSH
  • Как установить Remix OS в коробки GNOME?
  • Как создать резервную таблицу разделов GUID
  • Запуск Mac OS X под KVM / QEMU
  • Загрузить Linux bzImage в QEMU?
  • Почему Debian Jessie отключается, а не перезагружается после установки qemu-kvm?
  • VM: как сделать virsh managedsave-удалить из крючка libvirt QEMU?
  • Как отправить событие выключения для гостя QEMU (OpenBSD)?
  • Linux и Unix - лучшая ОС в мире.