Как загрузить символы отладки для всего изображения UEFI OVMF в GDB?
Я пытаюсь отладить драйвер в прошивке UEFI (OVMF) через GDB, как описано здесь:
https://github.com/tianocore/tianocore.github.io/wiki/How-to-debug-OVMF-with-QEMU-using-GDB
Это хорошо работает, но я обнаружил, что просто иметь отладочные символы для моего драйвера недостаточно. Мне также нужны символы отладки для всего изображения OVMF, чтобы правильно увидеть, что происходит. У меня много файлов.debug после того, как OVMF собран с edk2, но я не понимаю, какие мне нужно загрузить в gdb, и какие адреса мне следует использовать.
1 ответ
Я нашел несколько инструкций, касающихся DebugPkg, но я не мог сделать gdb_uefi.py
работать не смотря ни на что. Он всегда не мог найти EFI_SYSTEM_TABLE_POINTER
,
В итоге я написал свой собственный скрипт, который реализует команду gdb, которая успешно загружает все символы отладки. Вероятно, это худшее решение, так как оно требует настройки: "debug.log" с адресами драйверов должен присутствовать при загрузке, поэтому сначала нужно запустить QEMU хотя бы один раз. Но это достаточно хорошо для меня.
Мой сценарий можно найти здесь: