DacpHeapSegmentData – struktura

Definuje přenosovou vyrovnávací paměť pro informace o segmentu haldy uvolňování paměti.

Note

Toto rozhraní API bylo původně navrženo pro interní použití v modulu runtime. I když se teď podporuje pro použití třetí strany, doporučujeme pracovat s rozhraními ICorDebug API, ICorProfiler pokud je to možné.

Syntax

struct DacpHeapSegmentData
    : ZeroInit<DacpHeapSegmentData>
{
    CLRDATA_ADDRESS segmentAddr;
    CLRDATA_ADDRESS allocated;
    CLRDATA_ADDRESS committed;
    CLRDATA_ADDRESS reserved;
    CLRDATA_ADDRESS used;
    CLRDATA_ADDRESS mem;
    // pass this to request if non-null to get the next segments.
    CLRDATA_ADDRESS next;
    CLRDATA_ADDRESS gc_heap; // only filled in in server mode, otherwise NULL
    // computed field: if this is the ephemeral segment highMark includes the ephemeral generation
    CLRDATA_ADDRESS highAllocMark;

    size_t flags;
    CLRDATA_ADDRESS background_allocated;

    HRESULT Request(ISOSDacInterface *sos, CLRDATA_ADDRESS addr, const DacpGcHeapDetails& heap)
    {
        HRESULT hr = sos->GetHeapSegmentData(addr, this);

        // if this is the start segment, set highAllocMark too.
        if (SUCCEEDED(hr))
        {
            // TODO:  This needs to be put on the Dac side.
            if (this->segmentAddr == heap.generation_table[0].start_segment)
                highAllocMark = heap.alloc_allocated;
            else
                highAllocMark = allocated;
        }    
        return hr;
    }
};

Members

Člen Description
segmentAddr Adresa segmentu haldy.
allocated Adresa přidělené části segmentu.
committed Adresa, do které je paměť potvrzena pro segment.
reserved Adresa, do které je paměť vyhrazena pro segment.
used Adresa, do které se paměť používá pro segment.
mem Počáteční adresa paměti segmentu.
next Adresa dalšího segmentu. Tuto hodnotu předejte, pokud Request nemá hodnotu null k načtení dalšího segmentu.
gc_heap Adresa haldy GC. Tento člen je vyplněn pouze v režimu serveru; jinak je NULLto .
highAllocMark Vysoká značka přidělení. Pokud je tento segment dočasným segmentem, tato hodnota zahrnuje dočasné generování.
flags Příznaky segmentu haldy.
background_allocated Přidělená adresa uvolňování paměti na pozadí pro segment.
Request Naplní strukturu voláním ISOSDacInterface::GetHeapSegmentData a výpočtem highAllocMark.

Remarks

Tato struktura se nachází uvnitř modulu runtime a není vystavena prostřednictvím žádných hlaviček nebo souborů knihovny. Pokud ji chcete použít, definujte strukturu, jak je uvedeno výše.

Požadavky

Platformy: Viz požadavky na systém.
Záhlaví: Žádný
Knihovna: Žádný
.NET Framework verze: K dispozici od verze 4.7

Viz také