Windows下调试UEFI程序:Visual Studio调试

以edk2\MdeModulePkg\Application\HelloWorld这个项目作为调试目标。

1. 使用VS2017建立Makefile工程

VS2017, 新建 project,取名X64dbg_vs。

Visual C++ > Other > Makefile Project, 注意项目路径为HelloWord程序路径。

Windows下调试UEFI程序:Visual Studio调试_第1张图片

随便填写config中的字符串,以及output文件的名称。 Finish。

 Windows下调试UEFI程序:Visual Studio调试_第2张图片

Makefile项目建好了:

Windows下调试UEFI程序:Visual Studio调试_第3张图片

 

 2. 设置调试目标和调试文件夹

右击项目 > 属性 > Debugging

Command设置为WinHost.exe。

Working Directory设置为C:\UEFIWorkspace\Build\EmulatorX64\DEBUG_VS2017\X64\, 注意X64后面的斜杠是需要的。

Windows下调试UEFI程序:Visual Studio调试_第4张图片

 3. 修改工程文件

打开工程文件:

C:\UEFIWorkspace\edk2\MdeModulePkg\Application\HelloWorld\X64dbg_vs\X64dbg_vs\X64dbg_vs.vcxproj

找到节点所在的区域,两个Debug和两个Release:

Windows下调试UEFI程序:Visual Studio调试_第5张图片

 针对Debug x64部分进行修改,分别修改以下三个节点的内容:

修改之后的xml:


    cd /D C:\UEFIWorkspace
	set WORKSPACE=C:\UEFIWorkspace
	call mybuild.bat
	call edk2\edksetup.bat
	call build.bat -p EmulatorPkg\EmulatorPkg.dsc -a X64 -m MdeModulePkg\Application\HelloWorld\HelloWorld.inf -b DEBUG

X64dbg_vs.exe

	cd /D C:\UEFIWorkspace
	set WORKSPACE=C:\UEFIWorkspace
	call mybuild.bat
	call edk2\edksetup.bat
	call build.bat -p EmulatorPkg\EmulatorPkg.dsc -a X64 -m MdeModulePkg\Application\HelloWorld\HelloWorld.inf -b DEBUG clean


	cd /D C:\UEFIWorkspace
	set WORKSPACE=C:\UEFIWorkspace
	call mybuild.bat
	call edk2\edksetup.bat
	call build.bat -p EmulatorPkg\EmulatorPkg.dsc -a X64 -m MdeModulePkg\Application\HelloWorld\HelloWorld.inf -b DEBUG clean
	call build.bat -p EmulatorPkg\EmulatorPkg.dsc -a X64 -m MdeModulePkg\Application\HelloWorld\HelloWorld.inf -b DEBUG

4. 添加代码

将HelloWorld项目的源码HelloWorld.c添加到工程文件的Source Files中,方便后面调试时查看代码: 

Windows下调试UEFI程序:Visual Studio调试_第6张图片

 

5. 编译代码并调试

右击项目 > Build,观察控制台输出:

Windows下调试UEFI程序:Visual Studio调试_第7张图片

找一行源码添加断点,右击 > BreakPoint > Insert BreakPoint

Windows下调试UEFI程序:Visual Studio调试_第8张图片

 按F5开始运行。

编译好的HelloWorld.efi和WinHost.exe在模拟器的同一目录下,也就是UEFI Shell更目录FS0:

Windows下调试UEFI程序:Visual Studio调试_第9张图片

进入FS0, 运行HellowWorld.efi, 运行到了断点处:

Windows下调试UEFI程序:Visual Studio调试_第10张图片 

 使用Visual Studio调试UEFI程序的方法大致如此。

你可能感兴趣的:(UEFI_2023,windows,visual,studio,ide)