DacpHeapSegmentData-struktur

Definierar en transportbuffert för information om skräpinsamlingens heapsegment.

Note

Det här API:et utformades ursprungligen för intern användning i körningen. Även om det nu stöds för användning från tredje part rekommenderar vi att du arbetar med ICorDebug OCH ICorProfiler API:er när det är möjligt.

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

Medlem Beskrivning
segmentAddr Adressen till heapsegmentet.
allocated Adressen till den allokerade delen av segmentet.
committed Adressen till vilken minne har checkats in för segmentet.
reserved Adressen som minnet är reserverat för segmentet till.
used Adressen till vilken minne används för segmentet.
mem Startadressen för segmentminnet.
next Adressen till nästa segment. Skicka det här värdet till Request om det inte är null för att hämta nästa segment.
gc_heap GC-heapens adress. Den här medlemmen fylls bara i i serverläge. annars är NULLdet .
highAllocMark Det höga allokeringsmärket. Om det här segmentet är det tillfälliga segmentet inkluderar det här värdet den tillfälliga genereringen.
flags Heapsegmentflaggor.
background_allocated GC-allokerad bakgrundsadress för segmentet.
Request Fyller i strukturen genom att anropa ISOSDacInterface::GetHeapSegmentData och beräkna .highAllocMark

Remarks

Den här strukturen finns i körningen och exponeras inte via några rubriker eller biblioteksfiler. Om du vill använda den definierar du strukturen enligt ovan.

Requirements

Plattformar: Se Systemkrav.
Rubrik: Ingen
Bibliotek: Ingen
.NET Framework-versioner: Tillgänglig sedan 4.7

Se även