Condividi tramite


Oggetti heap TTD

Descrizione

Gli oggetti heap TTD vengono usati per fornire informazioni sulle chiamate heap che si verificano nel corso di una traccia.

Proprietà

Ogni oggetto heap avrà queste proprietà.

Proprietà Descrizione
Azione Descrive l'azione che si è verificata. I valori possibili sono: Alloc, ReAlloc, Free, Create, Protect, Lock, Unlock, Destroy.
Heap Handle per l'heap Win32.

Proprietà condizionali

A seconda dell'oggetto heap, potrebbe avere alcune delle proprietà seguenti.

Proprietà Descrizione
Address Indirizzo dell'oggetto allocato.
PreviousAddress Indirizzo dell'oggetto allocato prima della riallocazione. Se Address non è uguale a PreviousAddress, la riallocazione ha causato lo spostamento della memoria.
Dimensione Dimensioni e/o dimensioni richieste di un oggetto allocato.
BaseAddress Indirizzo di un oggetto allocato nell'heap. Può rappresentare l'indirizzo che verrà liberato (gratuito) o l'indirizzo dell'oggetto prima che venga riallocato (ReAlloc).
Flag Il significato dipende dall'API.
Risultato Risultato della chiamata API heap. Diverso da zero significa esito positivo e zero significa errore.
ReserveSize Quantità di memoria da riservare per l'heap.
CommitSize Dimensioni iniziali di cui è stato eseguito il commit per l'heap.
MakeReadOnly Un valore diverso da zero indica una richiesta di sola lettura dell'heap; Un valore zero indica che l'heap deve essere di lettura/scrittura.

Children

Oggetto Descrizione
TimeStart Oggetto position che descrive la posizione all'inizio dell'allocazione.
TimeEnd Oggetto position che descrive la posizione alla fine dell'allocazione.

Utilizzo di esempio

Usare questo comando dx (Display Debugger Object Model Expression) per visualizzare la memoria dell'heap in una griglia usando l'opzione -g.

0:0:000> dx -g @$cursession.TTD.Data.Heap()
=======================================================================================================================================================
=                          = Action     = Heap          = Address       = Size      = Flags  = (+) TimeStart = (+) TimeEnd = Result = PreviousAddress =
=======================================================================================================================================================
= [0x0] : [object Object]  - Alloc      - 0xaf0000      - 0xb0cfd0      - 0x4c      - 0x0    - FAB:17B1      - FAD:40      -        -                 =
= [0x1] : [object Object]  - Alloc      - 0xaf0000      - 0xb07210      - 0x34      - 0x8    - FB1:9         - FB3:74      -        -                 =
= [0x2] : [object Object]  - Alloc      - 0xaf0000      - 0xb256d8      - 0x3c      - 0x8    - E525:174      - E526:E1     -        -                 =

L'output può essere descritto come "dati normalizzati" perché è presente un set scelto di API che rappresentano operazioni heap. I dati estratti dai parametri appropriati vengono presentati in modo uniforme.

Facendo clic su TimeStart o TimeEnd si passerà a quel punto nella traccia.

Fare clic sul campo parametri accanto a una voce specifica per visualizzare le informazioni sui parametri disponibili.

dx -r1 @$cursession.TTD.Data.Heap()[2].@"Parameters"
@$cursession.TTD.Data.Heap()[2].@"Parameters"                
    [0x0]            : 0x16c7d780000
    [0x1]            : 0x280000
    [0x2]            : 0x20
    [0x3]            : 0x0
...    

Aumentare il valore di ricorsione -r per visualizzare informazioni aggiuntive.

Vedi anche

Debug di viaggi temporali - Introduzione agli oggetti di debug di viaggi temporali

Debug di viaggi temporali - Panoramica

dx (Display Debugger Object Model Expression)