자세한 가비지 수집 힙 정보에 대한 전송 버퍼를 정의합니다.
Note
이 API는 원래 런타임에서 내부용으로 설계되었습니다. 이제 타사 사용이 지원되지만 가능하면 ICorDebug 및 ICorProfiler API로 작업하는 것이 좋습니다.
Syntax
#define DAC_NUMBERGENERATIONS 4
struct DacpGcHeapDetails : ZeroInit<DacpGcHeapDetails>
{
CLRDATA_ADDRESS heapAddr; // Only filled in in server mode, otherwise NULL
CLRDATA_ADDRESS alloc_allocated;
CLRDATA_ADDRESS mark_array;
CLRDATA_ADDRESS current_c_gc_state;
CLRDATA_ADDRESS next_sweep_obj;
CLRDATA_ADDRESS saved_sweep_ephemeral_seg;
CLRDATA_ADDRESS saved_sweep_ephemeral_start;
CLRDATA_ADDRESS background_saved_lowest_address;
CLRDATA_ADDRESS background_saved_highest_address;
DacpGenerationData generation_table [DAC_NUMBERGENERATIONS];
CLRDATA_ADDRESS ephemeral_heap_segment;
CLRDATA_ADDRESS finalization_fill_pointers [DAC_NUMBERGENERATIONS + 3];
CLRDATA_ADDRESS lowest_address;
CLRDATA_ADDRESS highest_address;
CLRDATA_ADDRESS card_table;
// Use this for workstation mode (DacpGcHeapData.bServerMode==FALSE).
HRESULT Request(ISOSDacInterface *sos)
{
return sos->GetGCHeapStaticData(this);
}
// Use this for Server mode, as there are multiple heaps,
// and you need to pass a heap address in addr.
HRESULT Request(ISOSDacInterface *sos, CLRDATA_ADDRESS addr)
{
return sos->GetGCHeapDetails(addr, this);
}
};
Members
| 회원 | 설명 |
|---|---|
heapAddr |
GC 힙의 주소입니다. 이 멤버는 서버 모드에서만 채워집니다. 그렇지 않으면 .입니다 NULL. |
alloc_allocated |
힙에 대한 현재 할당 포인터입니다. |
mark_array |
표시 배열의 주소입니다. |
current_c_gc_state |
현재 압축 GC 상태의 주소입니다. |
next_sweep_obj |
쓸어버릴 다음 개체의 주소입니다. |
saved_sweep_ephemeral_seg |
스윕에 대해 저장된 임시 세그먼트의 주소입니다. |
saved_sweep_ephemeral_start |
저장된 임시 스윕 시작의 주소입니다. |
background_saved_lowest_address |
백그라운드 GC 상태에 대해 저장된 가장 낮은 주소입니다. |
background_saved_highest_address |
백그라운드 GC 상태에 대해 저장된 가장 높은 주소입니다. |
generation_table |
각 GC 생성에 대한 데이터가 있는 DacpGenerationData 구조 체의 배열입니다. |
ephemeral_heap_segment |
임시 힙 세그먼트의 주소입니다. |
finalization_fill_pointers |
종료 채우기 포인터의 배열입니다. |
lowest_address |
힙에서 가장 낮은 주소입니다. |
highest_address |
힙에서 가장 높은 주소입니다. |
card_table |
GC 카드 테이블의 주소입니다. |
Request |
워크스테이션 GC 또는 ISOSDacInterface::GetGCHeapDetails 서버 GC를 호출 ISOSDacInterface::GetGCHeapStaticData 하여 구조를 채웁니다. |
Remarks
이 구조는 런타임 내에 있으며 헤더 또는 라이브러리 파일을 통해 노출되지 않습니다. 이를 사용하려면 위에서 지정한 대로 구조를 정의합니다.
요구 사항
플랫폼:시스템 요구 사항을 참조하세요.
머리글: 없음
도서관: 없음
.NET 프레임워크 버전: 4.7 이후 사용 가능
참고하십시오
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET