Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Durante a depuração, a janela Memory mostra o espaço de memória que seu aplicativo está usando.
As janelas do depurador, como Watch, Autos, Localse a caixa de diálogo QuickWatch, mostram variáveis que estão armazenadas em locais específicos na memória. A janela Memory mostra a imagem geral. A visualização de memória é conveniente para examinar grandes partes de dados (buffers ou cadeias de caracteres grandes, por exemplo) que não são bem exibidas nas outras janelas.
A janela memória não se limita à exibição de dados. Ele exibe tudo no espaço de memória, incluindo dados, código e bits aleatórios de lixo na memória não atribuída.
A janela Memory não está disponível para depuração de script ou SQL. Essas linguagens não reconhecem o conceito de memória.
Abrir uma janela de memória
Como outras janelas do depurador, as janelas Memória estão disponíveis apenas durante uma sessão de depuração.
Importante
Para habilitar as janelas de de memória, Habilitar depuração no nível de endereço deve ser selecionada em Ferramentas >Opções (ou Depurar>Opções) >Depuração>Geral .
Abra uma janela Memória:
Certifique-se de que Ativar depuração no nível de endereço esteja selecionado em Ferramentas>Opções (ou Depurar>Opções) >Depuração>Geral.
Inicie a depuração selecionando a seta verde, pressionando F5ou selecionando Depurar>Iniciar a Depuração.
Em Depuração >do Windows>Memória, selecione Memória 1, Memória 2, Memória 3ou Memória 4. (Algumas edições do Visual Studio oferecem apenas uma janela de Memória .)
Várias janelas permitem que você mantenha visualizações para diferentes áreas no espaço de memória ao mesmo tempo.
Deslocar-se na janela Memória
O espaço de endereço de um computador é grande, e você pode facilmente perder seu lugar rolando na janela Memory.
Endereços de memória mais altos aparecem na parte inferior da janela. Para ver um endereço superior, desloque-se para baixo. Para ver um endereço inferior, desloque-se para cima.
Na maioria dos cenários, você deseja encontrar um local de memória específico.
Encontrar um local de memória
Você pode ir instantaneamente para um endereço especificado na janela Memória usando arrastar e soltar, ou inserindo o endereço no campo Endereço. O campo Endereço aceita endereços alfanuméricos e expressões que avaliam para endereços, como e.User.NonroamableId
.
Para forçar a reavaliação imediata de uma expressão no campo Endereço , selecione o ícone de seta arredondada Reavaliar automaticamente.
Por padrão, a janela de memória trata expressões de endereço como expressões ao vivo, que são reavaliadas à medida que o aplicativo é executado. As expressões em tempo real podem ser úteis, por exemplo, para visualizar a memória que é acessada por uma variável de ponteiro.
Utilize a funcionalidade de arrastar e soltar para mover para um endereço de memória.
Em qualquer janela do depurador, selecione um endereço de memória ou uma variável de ponteiro que contenha um endereço de memória.
Arraste e solte o endereço ou ponteiro na janela Memory.
Esse endereço aparece no campo Endereço e a janela Memória é ajustada para exibir esse endereço no topo.
Inserindo um local no campo Endereço para mover para um local de memória:
Digite ou cole o endereço ou a expressão no campo de Endereço e pressione Enter, ou escolha-o na lista suspensa no campo de Endereço.
Esse endereço aparece no campo Endereço e a janela Memória é ajustada para exibir esse endereço na parte superior.
Personalizar a janela de memória
Por padrão, o conteúdo da memória aparece como inteiros de 1 byte no formato hexadecimal e a largura da janela determina o número de colunas mostradas. Você pode personalizar a maneira como a janela Memory mostra o conteúdo da memória.
Altere o formato do conteúdo da memória:
- Clique com o botão direito do mouse na janela Memory e escolha os formatos desejados no menu de contexto.
Altere o número de colunas na janela Memória:
- Selecione a seta suspensa ao lado do campo Colunas e selecione o número de colunas a serem exibidas ou selecione Auto para ajustamento automático com base na largura da janela.
Se você não quiser que o conteúdo da janela Memory seja alterado à medida que seu aplicativo é executado, você pode desativar a avaliação de expressão ao vivo.
Alternar avaliação ao vivo:
Clique com o botão direito do mouse na janela Memory e selecione Reavaliar automaticamente no menu de contexto.
Observação
A avaliação de expressões ao vivo é uma função de alternância e está ativada por padrão, portanto, ao selecionar Reavaliar automaticamente, desativá-la. Selecionar Reavaliar automaticamente novamente o ativa novamente.
Você pode ocultar ou exibir a barra de ferramentas na parte superior da janela de memória. Você não terá acesso ao campo Endereço ou outras ferramentas quando a barra de ferramentas estiver oculta.
Alterne a exibição da barra de ferramentas:
- Clique com o botão direito do mouse na janela Memory e selecione Mostrar Barra de Ferramentas no menu de contexto. A barra de ferramentas aparece ou desaparece, dependendo do seu estado anterior.
Seguir um ponteiro através da memória (C/C++)
Em aplicativos de código nativo, você pode usar nomes de registro como expressões dinâmicas. Por exemplo, pode utilizar o ponteiro de pilha para monitorizar a pilha.
Siga um ponteiro através da memória:
Na janela Memória no campo Endereço, insira uma expressão de ponteiro que esteja no escopo atual. Dependendo do idioma, você pode ter que desreferenciar ele.
Introduza Enter.
Quando usar um comando de depuração, como Etapa, o endereço de memória exibido no campo Endereço e na parte superior da janela de memória muda automaticamente à medida que o ponteiro muda.
Exibir ponteiros de memória (.NET)
Se quiser exibir os conteúdos de um objeto .NET com base num ponteiro de memória, como um endereço obtido de um instantâneo de heap , pode fazer isso usando a notação {CLR}@Address
. O endereço deve ser um ponteiro para a memória, como 0x1D102A581B0. Insira o ponteiro de memória na janela Memória no campo Endereço usando a notação {CLR}@Address
. Como alternativa, você pode usar a mesma notação para adicionar um relógio usando a janela Watch.
Para obter o endereço do ponteiro de memória a partir de uma captura do heap, abra o despejo de heap, escolha Depurar Memória Gerenciada, o que abre a ferramenta Uso de Memória. Clique com o botão direito do rato no objeto em que está interessado e escolha Ver instâncias.