Usar as janelas de memória no depurador do Visual StudioUse the Memory Windows in the Visual Studio Debugger

O memória janela fornece uma exibição no espaço de memória que é usado pelo seu aplicativo.The Memory window provides a view into the memory space that is used by your application. O inspecionar janela, QuickWatch caixa de diálogo, Autos janela, e locais janela Mostrar o conteúdo de variáveis, que são armazenados em locais específicos na memória.The Watch window, QuickWatch dialog box, Autos window, and Locals window show you the content of variables, which are stored at specific locations in memory. Mas o memória janela mostra a imagem em larga escala.But the Memory window shows you the large-scale picture. Esta exibição pode ser conveniente para examinar grandes partes de dados (buffers ou grandes cadeias de caracteres, por exemplo) que não são exibidas corretamente nas outras janelas.This view can be convenient for examining large pieces of data (buffers or large strings, for example) that do not display well in the other windows. No entanto, o memória janela não é limitada a exibir dados.However, the Memory window is not limited to displaying data. Ela exibirá tudo no espaço de memória, não importa se o conteúdo for dados, código ou bits aleatórios de lixo na memória não atribuída.It displays everything in the memory space, whether the content is data, code, or random bits of garbage in unassigned memory.

O memória janela só estará disponível se a depuração de nível de endereço está habilitada no opções caixa de diálogo, depuração nó.The Memory window is available only if address-level debugging is enabled in the Options dialog box, Debugging node. O memória janela não estará disponível para o Script ou SQL, que são linguagens que não reconhecem o conceito de memória.The Memory window is not available for Script or SQL, which are languages that do not recognize the concept of memory.

Abrindo uma janela de memóriaOpening a Memory Window

Para abrir uma janela de memóriaTo open a Memory window

  1. Inicie a depuração, se você já não estiver no modo de depuração.Start debugging, if you are not already in debug mode.

  2. No depurar , aponte para Windows.In the Debug menu, point to Windows. Em seguida, aponte para memória e, em seguida, clique em 1 memória, memória 2, 3 de memória, ou 4 de memória.Then, point to Memory and then click Memory 1, Memory 2, Memory 3, or Memory 4. (Nível inferior edições do Visual StudioVisual Studio tem um único memória janela.(Lower-level editions of Visual StudioVisual Studio have only a single Memory window. Se você estiver usando um nessas edições, basta clicar memória.)If you are using one of those editions, just click Memory.)

Paginação na janela de memóriaPaging in the Memory Window

O memória janela tem uma barra de rolagem vertical que opera de forma diferente do padrão.The Memory window has a vertical scrollbar that operates in a nonstandard manner. O espaço de endereço de um computador moderno é muito grande e você pode preferir arrastar a caixa de rolagem para um local aleatório.The address space of a modern computer is very large, and you could easily get lost by grabbing the scrollbar thumb and dragging it to a random location. Por esse motivo, a caixa de rolagem é carregada e sempre permanece no centro da barra de rolagem.For that reason, the thumb is "spring-loaded" and always remains in the center of the scrollbar. Em aplicativos de código nativo, você pode rolar a página para cima ou para baixo, mas não pode rolar livremente.In native code applications, you can page up or down, but cannot scroll about freely.

Um endereço de memória mais alto aparece na parte inferior da janela.Higher memory addresses appear at the bottom of the window. Para exibir um endereço mais alto, role para baixo, não para cima.To view a higher address, scroll down, not up.

Para mover para cima ou para baixo na memóriaTo page up or down in memory

  1. Para rolar a página para baixo (mover para um endereço de memória mais alto), clique abaixo da caixa de rolagem na barra de rolagem vertical.To page down (move to a higher memory address), click under the thumb in the vertical scrollbar.

  2. Para rolar a página para cima (mover para um endereço de memória mais baixo), clique acima da caixa de rolagem na barra de rolagem vertical.To page up (move to a lower memory address), click above the thumb the vertical scrollbar.

Selecionando um local de memóriaSelecting a Memory Location

Se você quiser mover imediatamente para uma localização selecionada na memória, você poderá fazer isso usando uma operação de arrastar e soltar ou editando o valor de endereço caixa.If you want to move instantly to a selected location in memory, you can do so by using a drag-and-drop operation or by editing the value in the Address box. O endereço caixa aceita não apenas valores numéricos, mas também expressões avaliadas para endereços.The Address box accepts not only numeric values but also expressions that evaluate to addresses. Por padrão, o memória janela trata um endereço expressão como uma expressão em tempo real, que será reavaliada como a execução do programa.By default, the Memory window treats an Address expression as a live expression, which is reevaluated as your program executes. As expressões dinâmicas podem ser muito úteis.Live expressions can be very useful. Por exemplo, você pode usá-las para exibir a memória que é tocada por um ponteiro.For example, you can use them to view the memory that is touched by a pointer.

Para selecionar um local de memória arrastando e soltandoTo select a memory location by dragging and dropping

  1. Em qualquer janela, selecione um endereço de memória ou variável de ponteiro que contém um endereço de memória.In any window, select a memory address or pointer variable that contains a memory address.

  2. Arraste o endereço ou o ponteiro para o memória janela.Drag the address or pointer to the Memory window.

Para selecionar um local de memória editandoTo select a memory location by editing

  1. No memória janela, selecione o endereço caixa.In the Memory window, select the Address box.

  2. Digite ou cole o endereço que você deseja ver e, em seguida, pressione ENTER.Type or paste the address you want to see, and then press ENTER.

Alterando o modo como a janela de memória exibe informaçõesChanging the Way the Memory Window Displays Information

Você pode personalizar a maneira como o memória janela mostra o conteúdo da memória.You can customize the way the Memory window shows memory contents. Por padrão, o conteúdo da memória aparece como inteiros de um byte em formato hexadecimal e o número de colunas é determinado automaticamente pela largura atual da janela.By default, memory contents appear as one-byte integers in hexadecimal format, and the number of columns is determined automatically by the current width of the window.

Para alterar o formato do conteúdo de memóriaTo change the format of the memory contents

  1. Clique com botão direito do memória janela.Right-click the Memory window.

  2. Escolha o formato que você deseja.Choose the format that you want.

Para alterar o número de colunas na janela de memóriaTo change the number of columns in the Memory window

  1. Na barra de ferramentas na parte superior de memória janela, localize a colunas lista.In the toolbar at the top of the Memory window, locate the Columns list.

  2. No colunas , selecione o número de colunas que você deseja exibir ou selecionar automática para ajuste automático para se ajustar à largura da janela.In the Columns list, select the number of columns that you want to display or select Auto for automatic adjustment to fit the width of the window.

    Se você não quiser que o conteúdo do memória janela alterar como o programa é executado, você pode desativar a avaliação da expressão em tempo real.If you do not want the contents of the Memory window to change as your program executes, you can turn off live expression evaluation.

Para ativar/desativar a avaliação dinâmicaTo toggle live evaluation

  1. Clique com botão direito do memória janela.Right-click the Memory window.

  2. No menu de atalho, clique em reavaliar automaticamente.On the shortcut menu, click Reevaluate Automatically.

    Se a avaliação dinâmica estiver ativa, a opção será selecionada e clicar nela a desativará.If live evaluation is on, the option will be selected, and clicking it turns off live evaluation. Se a avaliação dinâmica estiver inativa, a opção não será selecionada e clicar nela a ativará.If live evaluation is off, the option is not selected, and clicking it turns on live evaluation.

    Você pode ocultar ou exibir a barra de ferramentas na parte superior do memória janela.You can hide or display the toolbar at the top of the Memory window. Você não terá acesso à caixa de endereço ou outras ferramentas enquanto a barra de ferramentas estiver oculta.You will not have access to Address box or other tools as long as the toolbar is hidden.

Para ativar/desativar a barra de ferramentasTo toggle the toolbar

  1. Clique um memória janela.Right-click a Memory window.

  2. No menu de atalho, clique em Mostrar barra de ferramentas.On the shortcut menu, click Show Toolbar.

    A barra de ferramentas é exibida ou desaparece, dependendo do seu estado anterior.The toolbar appears or disappears, depending on its previous state.

Seguindo um ponteiro pela memóriaFollowing a Pointer Through Memory

Em aplicativos de código nativo, você poderá usar nomes de registro como expressões dinâmicas.In native code applications, you can use register names as live expressions. Por exemplo, você pode usar o ponteiro de pilhas para seguir a pilha.For example, you can use the stack pointer to follow the stack.

Para seguir um ponteiro pela memóriaTo follow a pointer through memory

  1. No memória janela endereço , digite uma expressão do ponteiro.In the Memory window Address box, type a pointer expression. A variável de ponteiro deve estar no escopo atual.The pointer variable must be in the current scope. Dependendo da linguagem, você poderá ter que remover a referência a ele.Depending on the language, you might have to dereference it.

  2. Pressione ENTER.Press ENTER.

    Agora, quando você usa um comando de execução como etapa, o endereço de memória que é exibido automaticamente será alterado quando o ponteiro é alterado.Now, when you use an execution command such as Step, the memory address that is displayed will automatically change as the pointer changes.

Consulte tambémSee Also

Exibindo dados no depuradorViewing Data in the Debugger