Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions src/coreclr/vm/stackwalk.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -421,6 +421,19 @@ PCODE Thread::VirtualUnwindCallFrame(T_CONTEXT* pContext,
EECodeInfo * pCodeInfo /*= NULL*/
ARM64_ARG(TADDR * pSpForPacSign /*= NULL*/))
{
#ifdef TARGET_WASM
// WASM has a custom RtlVirtualUnwind (vm/wasm/helpers.cpp) that handles
// R2R-WASM frames keyed by virtual IPs. For interpreter-only WASM (e.g.,
// the WASI corerun) there is no R2R unwind info and no virtual IP, so
// walking past such a frame is not supported and the call into the body
// would corrupt the register display. Fail fast in that case; let R2R
// frames flow through the regular path below.
if (!ExecutionManager::IsVirtualIP(GetIP(pContext)))
{
_ASSERTE(!"VirtualUnwindCallFrame: non-virtual-IP context on WebAssembly");
return 0;
}
#endif // TARGET_WASM
CONTRACTL
{
NOTHROW;
Expand Down
Loading