tianocore中的UEFIedk2/FmpDevicePkg在执行后崩溃

我在 tianocore / edk2 中构建了 FmpDevicePkg。然后,我在 EmulatorX64 和 Minnow Board 中加载 eif 驱动程序。它都崩溃了,没有任何消息。我可以用 Visual Studio 为其他驱动程序 / 应用程序包设置断点。但是,至于 FmpDevicePkg,它不能设置断点,并在我加载驱动程序后直接崩溃。有人知道如何调试它吗?或者我如何测试

我在 tianocore / edk2 中构建了 FmpDevicePkg。然后,我在 EmulatorX64 和 Minnow Board 中加载 eif 驱动程序。它都崩溃了,没有任何消息。我可以用 Visual Studio 为其他驱动程序 / 应用程序包设置断点。但是,至于 FmpDevicePkg,它不能设置断点,并在我加载驱动程序后直接崩溃。有人知道如何调试它吗?或者我如何测试

谢谢!我

0

我追踪了代码,发现它挂在下面:

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

它工作得很好。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(36)
如何创建一个简单的JavaScript计时器
上一篇
API以PST格式导出Office365Outlook邮件
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(17条)