Skip to content

Current EventPipe asserts on StackFrameIterator when collecting gcdumps from nativeAOT apps #95599

@LakshanF

Description

@LakshanF

Using dotnet-gcdump (requires bypassing "creating type table flushing task" with the SampleProfiler that are not yet checked in) or PerfView to collect (with the following on additional providers text box, "Microsoft-Windows-DotNETRuntime:GCHeapDumpKeyword|TypeKeyword:Verbose") causes the following assert in StackFrameIterator.cpp,

  ASSERT(!(pFrame->m_Flags & PTFF_SAVE_RBP));

This is likely due to a recent change since this problem wasn't present when #94673 was first checked in. Removing the BulkType event being generated will stop the assert being hit.

The callstack is as below,

# Child-SP          RetAddr               Call Site
00 0000007d`685fea30 00007ff6`417b35a6     HexGame!Assert+0xed [runtime\src\coreclr\nativeaot\Runtime\rhassert.cpp @ 35] 
01 0000007d`685feaa0 00007ff6`417b2736     HexGame!StackFrameIterator::InternalInit+0x1b6 [runtime\src\coreclr\nativeaot\Runtime\StackFrameIterator.cpp @ 272] 
02 0000007d`685feae0 00007ff6`417ae941     HexGame!StackFrameIterator::StackFrameIterator+0xb6 [runtime\src\coreclr\nativeaot\Runtime\StackFrameIterator.cpp @ 105] 
03 0000007d`685feb10 00007ff6`417d8107     HexGame!Thread::GcScanRoots+0x71 [runtime\src\coreclr\nativeaot\Runtime\thread.cpp @ 386] 
04 0000007d`685fedb0 00007ff6`41837f70     HexGame!GCToEEInterface::GcScanRoots+0x207 [runtime\src\coreclr\nativeaot\Runtime\gcrhscan.cpp @ 76] 
05 0000007d`685fee30 00007ff6`41816bdf     HexGame!GCScan::GcScanRoots+0x30 [runtime\src\coreclr\gc\gcscan.cpp @ 153] 
06 0000007d`685fee60 00007ff6`4180839a     HexGame!WKS::gc_heap::mark_phase+0x41f [runtime\src\coreclr\gc\gc.cpp @ 29218] 
07 0000007d`685fef70 00007ff6`41808119     HexGame!WKS::gc_heap::gc1+0x19a [runtime\src\coreclr\gc\gc.cpp @ 22183] 
08 0000007d`685ff080 00007ff6`417e466a     HexGame!WKS::gc_heap::garbage_collect+0x4d9 [runtime\src\coreclr\gc\gc.cpp @ 24191] 
09 0000007d`685ff0f0 00007ff6`417e47cf     HexGame!WKS::GCHeap::GarbageCollectGeneration+0x1ba [runtime\src\coreclr\gc\gc.cpp @ 50259] 
0a 0000007d`685ff170 00007ff6`417e443f     HexGame!WKS::GCHeap::GarbageCollectTry+0xdf [runtime\src\coreclr\gc\gc.cpp @ 49482] 
0b 0000007d`685ff1b0 00007ff6`41847818     HexGame!WKS::GCHeap::GarbageCollect+0x2af [runtime\src\coreclr\gc\gc.cpp @ 49411] 
0c 0000007d`685ff250 00007ff6`41847775     HexGame!ETW::GCLog::ForceGCForDiagnostics+0x98 [runtime\src\coreclr\nativeaot\Runtime\eventtrace_gcheap.cpp @ 467] 
0d 0000007d`685ff2b0 00007ff6`41846481     HexGame!ETW::GCLog::ForceGC+0x35 [runtime\src\coreclr\nativeaot\Runtime\eventtrace_gcheap.cpp @ 427] 
0e 0000007d`685ff2e0 00007ff6`418468ba     HexGame!EtwCallbackCommon+0x281 [runtime\src\coreclr\nativeaot\Runtime\eventtrace.cpp @ 177] 
0f 0000007d`685ff360 00007ff6`41846c6d     HexGame!EtwCallback+0x19a [runtime\src\coreclr\nativeaot\Runtime\eventtrace.cpp @ 215] 
10 0000007d`685ff430 00007ffa`15ea03bd     HexGame!McGenControlCallbackV2+0x27d [runtime\artifacts\obj\coreclr\windows.x64.Debug\nativeaot\Runtime\eventpipe\inc\etw\ClrEtwAll.h @ 426] 

Metadata

Metadata

Assignees

Type

No type

Projects

Status

No status

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions