Dump new stack base and size information could help developer to narrow down stack crash issue.
Cc: Feng Tian <feng.t...@intel.com> Cc: Liming Gao <liming....@intel.com> Cc: Michael Kinney <michael.d.kin...@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jeff Fan <jeff....@intel.com> --- MdeModulePkg/Core/DxeIplPeim/Ia32/DxeLoadFunc.c | 16 ++++++++++++++++ MdeModulePkg/Universal/CapsulePei/UefiCapsule.c | 8 ++++++++ MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c | 8 ++++++++ 3 files changed, 32 insertions(+) diff --git a/MdeModulePkg/Core/DxeIplPeim/Ia32/DxeLoadFunc.c b/MdeModulePkg/Core/DxeIplPeim/Ia32/DxeLoadFunc.c index 8ce72cb..6ec51ff 100644 --- a/MdeModulePkg/Core/DxeIplPeim/Ia32/DxeLoadFunc.c +++ b/MdeModulePkg/Core/DxeIplPeim/Ia32/DxeLoadFunc.c @@ -317,6 +317,14 @@ HandOffToDxeCore ( AsmWriteIdtr (&gLidtDescriptor); + DEBUG (( + DEBUG_INFO, + "%a() Stack Base: 0x%lx, Stack Size: 0x%x\n", + __FUNCTION__, + BaseOfStack, + STACK_SIZE + )); + // // Go to Long Mode and transfer control to DxeCore. // Interrupts will not get turned on until the CPU AP is loaded. @@ -387,6 +395,14 @@ HandOffToDxeCore ( // UpdateStackHob (BaseOfStack, STACK_SIZE); + DEBUG (( + DEBUG_INFO, + "%a() Stack Base: 0x%lx, Stack Size: 0x%x\n", + __FUNCTION__, + BaseOfStack, + STACK_SIZE + )); + // // Transfer the control to the entry point of DxeCore. // diff --git a/MdeModulePkg/Universal/CapsulePei/UefiCapsule.c b/MdeModulePkg/Universal/CapsulePei/UefiCapsule.c index e60105b..9ac9d22 100644 --- a/MdeModulePkg/Universal/CapsulePei/UefiCapsule.c +++ b/MdeModulePkg/Universal/CapsulePei/UefiCapsule.c @@ -321,6 +321,14 @@ Thunk32To64 ( // AsmWriteCr3 ((UINTN) PageTableAddress); + DEBUG (( + DEBUG_INFO, + "%a() Stack Base: 0x%lx, Stack Size: 0x%lx\n", + __FUNCTION__, + Context->StackBufferBase, + Context->StackBufferLength + )); + // // Disable interrupt of Debug timer, since the IDT table cannot work in long mode // diff --git a/MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c b/MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c index d1042e3..5ad95d2 100644 --- a/MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c +++ b/MdeModulePkg/Universal/CapsulePei/X64/X64Entry.c @@ -265,6 +265,14 @@ _ModuleEntryPoint ( ReturnContext->ReturnStatus = Status; + DEBUG (( + DEBUG_INFO, + "%a() Stack Base: 0x%lx, Stack Size: 0x%lx\n", + __FUNCTION__, + EntrypointContext->StackBufferBase, + EntrypointContext->StackBufferLength + )); + // // Disable interrupt of Debug timer, since the new IDT table cannot work in long mode // -- 2.9.3.windows.2 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel