我在tianocore/edk2 2中构建了FmpDevicePkg。然后,我在EmulatorX64和Minnow中加载eif驱动程序。没有任何消息就坠毁了。我可以用Visual为其他驱动程序/应用程序包设置断点。然而,对于FmpDevicePkg,它不能设置断点,并在加载驱动程序后直接崩溃。有人知道如何调试吗?或者如何测试FmpDevicePkg驱动程序?(或相关胶囊)任何建议都是非常感谢的。
谢谢!我
发布于 2022-05-27 05:18:31
我跟踪了代码,发现它挂在以下位置:
(PcdTestKeyUsed);
详情如下:\edk2 2\FmpDevicePkg\FmpDxe\ DetectTestKey.c
DetectTestKey (
VOID
)
{
….
// If PcdTestKeyUsed is already TRUE, then skip test key detection
//
TestKeyUsed = PcdGetBool (PcdTestKeyUsed); -> system hang
..
// If test key detected or an error occurred checking for the test key, then
// set PcdTestKeyUsed to TRUE.
//
if (TestKeyUsed) {
DEBUG ((DEBUG_INFO, "FmpDxe(%s): Test key detected in PcdFmpDevicePkcs7CertBufferXdr.\n", mImageIdName));
PcdSetBoolS (PcdTestKeyUsed, TRUE); -> system hang我修改了\MdeModulePkg\MdeModulePkg.dec
PcdsDynamic, PcdsDynamicEx]
gEfiMdeModulePkgTokenSpaceGuid.PcdTestKeyUsed|FALSE|BOOLEAN|0x00030003详情如下:
[PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]
gEfiMdeModulePkgTokenSpaceGuid.PcdTestKeyUsed|FALSE|BOOLEAN|0x00030003效果很好。
https://stackoverflow.com/questions/72258647
复制相似问题