Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Определяет буфер транспорта для сведений о сегменте сборки мусора.
Note
Этот API изначально был разработан для внутреннего использования во время выполнения. Хотя она теперь поддерживается для 3-го стороннего использования, мы рекомендуем по возможности работать с ICorDebugICorProfiler и API.
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
| Член | Описание |
|---|---|
segmentAddr |
Адрес сегмента кучи. |
allocated |
Адрес выделенной части сегмента. |
committed |
Адрес, к которому фиксируется память для сегмента. |
reserved |
Адрес, к которому зарезервирована память для сегмента. |
used |
Адрес, к которому используется память для сегмента. |
mem |
Начальный адрес памяти сегмента. |
next |
Адрес следующего сегмента. Передайте это значение Request , если оно не равно NULL, чтобы получить следующий сегмент. |
gc_heap |
Адрес кучи GC. Этот элемент заполняется только в режиме сервера; в противном случае — это NULL. |
highAllocMark |
Высокий знак выделения. Если этот сегмент является временным сегментом, это значение включает в себя эфемерное поколение. |
flags |
Флаги сегмента кучи. |
background_allocated |
Фоновый выделенный адрес GC для сегмента. |
Request |
Заполняет структуру путем вызова ISOSDacInterface::GetHeapSegmentData и вычислений highAllocMark. |
Remarks
Эта структура находится внутри среды выполнения и не предоставляется с помощью каких-либо заголовков или файлов библиотеки. Чтобы использовать его, определите структуру, как указано выше.
Требования
Платформы: см. раздел Требования к системе.
Заголовок: Никакой
Библиотека: Никакой
версии платформы .NET: доступно с версии 4.7