Debugging 如何在gdb中为整个OVMF UEFI映像加载调试符号?

Debugging 如何在gdb中为整个OVMF UEFI映像加载调试符号?,debugging,gdb,qemu,uefi,edk2,Debugging,Gdb,Qemu,Uefi,Edk2,我正试图通过gdb调试UEFI固件(OVMF)中的驱动程序,如下所述: 它工作得很好,但我发现仅仅为我的驱动程序提供调试符号是不够的。我还需要整个OVMF图像的调试符号,以便正确地看到发生了什么。在使用edk2构建OVMF之后,我有很多.debug文件,但我不知道需要将哪些文件加载到gdb中,以及应该使用哪些地址。我发现了一些涉及的指令,但无论如何我都无法使gdb_uefi.py工作。它总是找不到EFI\u系统\u表\u指针 最后,我编写了自己的脚本,它实现了gdb命令,并成功地加载了所有调试

我正试图通过gdb调试UEFI固件(OVMF)中的驱动程序,如下所述:


它工作得很好,但我发现仅仅为我的驱动程序提供调试符号是不够的。我还需要整个OVMF图像的调试符号,以便正确地看到发生了什么。在使用edk2构建OVMF之后,我有很多.debug文件,但我不知道需要将哪些文件加载到gdb中,以及应该使用哪些地址。

我发现了一些涉及的指令,但无论如何我都无法使
gdb_uefi.py
工作。它总是找不到
EFI\u系统\u表\u指针

最后,我编写了自己的脚本,它实现了gdb命令,并成功地加载了所有调试符号。这可能是一个更糟糕的解决方案,因为它需要一个安装程序:“debug.log”和驱动程序地址,在执行加载时必须存在,所以您需要首先至少运行一次QEMU。但是,这对我来说已经足够好了

我的脚本可以在这里找到:


我发现了一些涉及的说明,但无论如何我都无法使
gdb_uefi.py
工作。它总是找不到
EFI\u系统\u表\u指针

最后,我编写了自己的脚本,它实现了gdb命令,并成功地加载了所有调试符号。这可能是一个更糟糕的解决方案,因为它需要一个安装程序:“debug.log”和驱动程序地址,在执行加载时必须存在,所以您需要首先至少运行一次QEMU。但是,这对我来说已经足够好了

我的脚本可以在这里找到: