Skip to content

Dump generation for the server GC apps failure #57960

@mikem8361

Description

@mikem8361

Description

Heap dump generation for the server GC apps failure on Windows.

Configuration

Windows x64, Linux and MacOS
Latest rc2 builds from main (6.0.0-rc.2.21420.29)

Regression?

Yes, caused by the GC USE_REGION support

Other information

The failure (throws an exception) is on line 260 below. It is because "heap" is a local copy of the gc_heap struct and can't be cast to a dac ptr.

request_svr.cpp line 260:

   for (int i = 0; i < heaps; i++)
    {
        TADDR heapAddress = HeapTableIndex(g_gcDacGlobals->g_heaps, i);    
        dac_gc_heap heap = LoadGcHeapData(heapAddress);
        dac_gc_heap* pHeap = &heap;

        size_t gen_table_size = g_gcDacGlobals->generation_size * (*g_gcDacGlobals->max_gen + 2);
-->     DacEnumMemoryRegion(dac_cast<TADDR>(pHeap), sizeof(dac_gc_heap));
        DacEnumMemoryRegion(dac_cast<TADDR>(pHeap->finalize_queue), sizeof(dac_finalize_queue));

        TADDR taddrTable = dac_cast<TADDR>(pHeap) + offsetof(dac_gc_heap, generation_table);
        DacEnumMemoryRegion(taddrTable, gen_table_size);

            // address. To make sure there is always a base address, start with the first NT_FILE entry
            // found and then replace it with the PageOffset == 0 entry found.




Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions