4e17aba4b5
EmulatorPkg/Win calls LoadLibraryEx() when the corresponding DLL file is found for each PEIM or DXE driver. The module entry point is changed to point to the entry point from the DLL. This helps to notify Visual Studio that a new windows module is loaded and corresponding symbol parsing is performed for source level debugging. But entry point from the DLL is only executed when the module is not loaded by AddModHandle(). When reset happens, we need to clear the DLL loading so that in next boot the module can be loaded again by AddModHandle(). Without this patch, source level debugging doesn't work after reset. Signed-off-by: Ray Ni <ray.ni@intel.com> Reviewed-by: Zhiguang Liu <zhiguang.liu@intel.com> Cc: Andrew Fish <afish@apple.com> |
||
---|---|---|
.. | ||
Application/RedfishPlatformConfig | ||
AutoScanPei | ||
BootModePei | ||
CpuRuntimeDxe | ||
EmuBlockIoDxe | ||
EmuBusDriverDxe | ||
EmuGopDxe | ||
EmuSimpleFileSystemDxe | ||
EmuSnpDxe | ||
EmuThunkDxe | ||
FirmwareVolumePei | ||
FlashMapPei | ||
FvbServicesRuntimeDxe | ||
Include | ||
Library | ||
PlatformCI | ||
PlatformSmbiosDxe | ||
RealTimeClockRuntimeDxe | ||
ResetRuntimeDxe | ||
Sec | ||
ThunkPpiToProtocolPei | ||
TimerDxe | ||
Unix | ||
Win | ||
EmulatorPkg.ci.yaml | ||
EmulatorPkg.dec | ||
EmulatorPkg.dsc | ||
EmulatorPkg.fdf | ||
Readme.md | ||
build.sh |
Readme.md
Overview
EmulatorPkg provides an environment where a UEFI environment can be emulated under an environment where a full UEFI compatible environment is not possible. (For example, running under an OS where an OS process hosts the UEFI emulation environment.)
https://github.com/tianocore/tianocore.github.io/wiki/EmulatorPkg
Status
- Builds and runs under
- a posix-like environment with X windows
- Linux
- OS X
- Windows environment
- Win10 (verified)
- Win8 (not verified)
- a posix-like environment with X windows
How to Build & Run
You can use the following command to build.
-
32bit emulator in Windows:
build -p EmulatorPkg\EmulatorPkg.dsc -t VS2017 -a IA32
-
64bit emulator in Windows:
build -p EmulatorPkg\EmulatorPkg.dsc -t VS2017 -a X64
-
32bit emulator in Linux:
build -p EmulatorPkg\EmulatorPkg.dsc -t GCC5 -a IA32
-
64bit emulator in Linux:
build -p EmulatorPkg\EmulatorPkg.dsc -t GCC5 -a X64
You can start/run the emulator using the following command:
-
32bit emulator in Windows:
cd Build\EmulatorIA32\DEBUG_VS2017\IA32\ && WinHost.exe
-
64bit emulator in Windows:
cd Build\EmulatorX64\DEBUG_VS2017\X64\ && WinHost.exe
-
32bit emulator in Linux:
cd Build/EmulatorIA32/DEBUG_GCC5/IA32/ && ./Host
-
64bit emulator in Linux:
cd Build/EmulatorX64/DEBUG_GCC5/X64/ && ./Host
On posix-like environment with the bash shell you can use EmulatorPkg/build.sh to simplify building and running emulator.
For example, to build + run:
$ EmulatorPkg/build.sh
$ EmulatorPkg/build.sh run
The build architecture will match your host machine's architecture.
On X64 host machines, you can build + run IA32 mode as well:
$ EmulatorPkg/build.sh -a IA32
$ EmulatorPkg/build.sh -a IA32 run