Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
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