3

我已经从 taniacore 站点下载了 EDK (UEDK2014),并且我已经使用以下命令在调试模式下成功构建了 UEFI 应用程序

 C:\UDK2014.Complete.MyWorkSpace\UDK2014.MyWorkSpace\MyWorkSpace>
 build -t VS2012x86  -b DEBUG

由于它处于调试模式,它将创建一个 .pdb 文件 (SecMain.pdb)。我的问题是如何使用 VS 2010 调试此二进制文件。我尝试通过运行 SecMain.exe 来做到这一点,将其附加到 Visual Studio 2010 并开始调试,但无法做到这一点。以前有人可以这样做吗(使用 VS 2010 调试 UEFi 应用程序)?如果您对此有解决方案,请告诉我。

4

1 回答 1

1

是的,您可以像@sun2sirius 所说的那样使用模拟器。唯一的问题是,如果您的 UEFI 应用程序或驱动程序直接访问硬件,模拟器将无济于事。在这种情况下,不幸的是“printf”是你最好的朋友。如此好的 Trace/Log 库将帮助您调试驱动程序。

有几种方法可以简化开发:

  • 尽可能多地编写与平台无关的代码。在 Windows 下的 VS IDE 中更容易调试。Windows 已保护内存页面,调试器将捕获所有潜在的内存问题;UEFI 处于实模式,因此您的平台相关代码无法防止访问粪便指针、缓冲区溢出等。因此,Trace/Log 库再次提供了很大帮助。
  • 市场上有像Arium这样的硬件调试器。它可以调试在真实硬件上运行的 UEFI 应用程序。但它很昂贵,而且你调试的硬件必须有一个可用的硬件调试端口。在台式机上不难找到,但在生产笔记本电脑上它是一种罕见的野兽!因此,如果您需要调试特定平台,则必须焊接连接器。
  • 在 UEFI 驱动程序开发的情况下,即使硬件调试器也没有太大帮助,因为您必须在安装的平台上安装 UEFI 固件 (BIOS) 的调试器才能使用调试器。
于 2015-05-07T19:40:42.937 回答