c-如何使用Visual Studio调试UEFI(UDK2014)Shell应用程序



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

 C:UDK2014.Complete.MyWorkSpaceUDK2014.MyWorkSpaceMyWorkSpace>
 build -t VS2012x86  -b DEBUG

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

是的,您可以像@sun2sirius所说的那样使用模拟器。不过,唯一的问题是,如果您的UEFI应用程序或驱动程序直接访问硬件,模拟器不会有帮助。不幸的是,在这种情况下,"printf"是你最好的朋友。因此,好的跟踪/日志库将帮助您调试驱动程序。

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

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

最新更新