我在 tianocore / edk2 中构建了 FmpDevicePkg。然后,我在 EmulatorX64 和 Minnow Board 中加载 eif 驱动程序。它都崩溃了,没有任何消息。我可以用 Visual Studio 为其他驱动程序 / 应用程序包设置断点。但是,至于 FmpDevicePkg,它不能设置断点,并在我加载驱动程序后直接崩溃。有人知道如何调试它吗?或者我如何测试
谢谢!我
我追踪了代码,发现它挂在下面:
PcdGetBool (PcdTestKeyUsed);
PcdSetBools (PcdTestKeyUsed,TRUE);
详细信息如下:\ edk2\ 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
它工作得很好。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(17条)