You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix x86 runtime async frame pointer mismatch in GetSpForDiagnosticReporting (#126717)
For certain runtime async frames this resulted in the
`ICorDebugManagedCallback2::Exception` to return a null `ICorDebugFrame`
for `DEBUG_EXCEPTION_CATCH_HANDLER_FOUND` notifications. The fix
addresses this by adjusting `GetSpForDiagnosticReporting` to account for
runtime async variant method stack layout differences on x86.
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
//On 64-bit we can simply compare the FramePointer.
1415
+
#if!defined(TARGET_X86)
1416
+
//Compare the FramePointer to determine if the frame matches
1417
1417
if (pCFrame->GetFramePointer() == fp)
1418
-
#else// !HOST_64BIT
1419
-
// On other platforms, we need to do a more elaborate check.
1418
+
#else
1419
+
// On x86 we need to do a more elaborate check. The reason is that on x86, the FramePointer is always the same as the value of EBP, so we can just check if the input FramePointer is contained in the frame. However, on other platforms, the FramePointer may not be the same as the value of RSP, so we need to check if the input FramePointer is the same as the one of the frame.
0 commit comments