Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Descrição
Os objetos TTD Heap são utilizados para fornecer informações sobre as chamadas de heap que ocorrem durante um rastreamento.
Propriedades
Cada objeto no heap terá estas propriedades.
| Propriedade | Descrição |
|---|---|
| Ação | Descreve a ação que ocorreu. Os valores possíveis são: Alloc, ReAlloc, Free, Create, Protect, Lock, Unlock, Destroy. |
| Heap | O identificador para o heap Win32. |
Propriedades condicionais
Dependendo do objeto de pilha, ele pode ter algumas das propriedades abaixo.
| Propriedade | Descrição |
|---|---|
| Endereço | O endereço do objeto alocado. |
| Endereço Anterior | O endereço do objeto alocado antes de ser realocado. Se Address não for o mesmo que PreviousAddress, a realocação fez com que a memória se movesse. |
| Tamanho | O tamanho e/ou tamanho solicitado de um objeto alocado. |
| Endereço Base | O endereço de um objeto alocado no montículo. Ele pode representar o endereço que será liberado (Free) ou o endereço do objeto antes de ser realocado (ReAlloc.) |
| Bandeiras | O significado depende da API. |
| Resultado | O resultado da chamada de API de heap. Um valor diferente de zero indica sucesso, enquanto zero indica fracasso. |
| ReserveSize | Quantidade de memória a reservar para a pilha. |
| CommitSize | Tamanho inicial comprometido para a pilha. |
| MakeReadOnly | A um valor diferente de zero indica uma solicitação para tornar a pilha só de leitura. A um valor zero indica que a pilha deve ser de leitura e escrita. |
Children
| Objeto | Descrição |
|---|---|
| HoraDeInício | Um objeto de posição que descreve a posição no início da alocação. |
| TempoTerminado | Um objeto de posição que descreve a posição no final da alocação. |
Exemplo de Utilização
Use este comando dx (Display Debugger Object Model Expression) para mostrar a memória do heap numa grelha usando a opção -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 - - =
A saída pode ser descrita como "dados normalizados" porque há um conjunto escolhido de APIs que representam operações de heap. Os dados que são extraídos dos parâmetros apropriados, são apresentados de maneira uniforme.
Clicar em TimeStart ou TimeEnd leva-o até esse ponto no rastreamento.
Clique no campo de parâmetros ao lado de uma entrada específica, para exibir as informações de parâmetros disponíveis.
dx -r1 @$cursession.TTD.Data.Heap()[2].@"Parameters"
@$cursession.TTD.Data.Heap()[2].@"Parameters"
[0x0] : 0x16c7d780000
[0x1] : 0x280000
[0x2] : 0x20
[0x3] : 0x0
...
Aumente o valor do -r de recursão para exibir informações adicionais.
Ver também
Depuração Temporal - Introdução aos Objetos de Depuração Temporal