Se você tiver uma matriz alocada estaticamente, o depurador do Visual Studio poderá exibir facilmente todos os elementos da matriz. No entanto, se você tiver uma matriz alocada dinamicamente e apontada por um ponteiro, ela exibirá apenas o primeiro elemento da matriz quando você clicar no + para expandi-lo. Existe uma maneira fácil de dizer ao depurador, mostre-me esses dados como uma matriz do tipo Foo e tamanho X?
c++
c
visual-studio
debugging
Adam Rosenfield
fonte
fonte
Existem dois métodos para visualizar dados em uma matriz m4x4:
Uma maneira é com uma janela do Watch (Debug / Windows / Watch). Adicionar relógio =
Isso exibe dados em uma lista:
Outra maneira é com uma janela de memória (Debug / Windows / Memory). Especifique um endereço inicial da memória =
Isso exibe dados em uma tabela, o que é melhor para matrizes bidimensionais e tridimensionais:
Clique com o botão direito do mouse na janela Memória para determinar como os dados binários são visualizados. As opções são limitadas a números inteiros, flutuantes e algumas codificações de texto.
fonte
Em uma janela de inspeção, adicione uma vírgula após o nome da matriz e a quantidade de itens que você deseja exibir.
fonte
uma revisitar:
Vamos supor que você tenha um ponteiro abaixo:
então você pode escrever abaixo no relógio de depuração do Visual Studio:
que o converterá em uma matriz como abaixo, e você poderá visualizar todo o conteúdo de uma só vez.
fonte
Para,
adicione isso para assistir
fonte
Ainda outra maneira de fazer isso é especificada aqui no MSDN .
Em resumo, você pode exibir uma matriz de caracteres como vários tipos de sequência. Se você tem uma matriz declarada como:
Você pode imprimi-lo como uma string unicode na janela de inspeção com o seguinte:
Veja as tabelas na página MSDN para todas as diferentes conversões possíveis, pois existem algumas. Muitas variantes de sequência diferentes, variantes para imprimir itens individuais na matriz, etc.
fonte
a,[10]
permite ver elementos individuais para que eles próprios sejam expansíveis, mesmo se você tiver um CArray de tipos de dados complexos.Para matrizes MFC (CArray, CStringArray, ...), seguindo o próximo link na Dica nº 4
http://www.codeproject.com/Articles/469416/10-More-Visual-Studio-Debugging-Tips-for-Native-De
Por exemplo, para "CArray pArray", adicione nas janelas do Watch
para ver os 5 primeiros elementos.
Se pArray for um CArray bidimensional, você poderá observar qualquer um dos elementos da segunda dimensão usando a próxima sintaxe:
fonte
Você pode encontrar uma lista de muitas coisas que você pode fazer com variáveis na janela de inspeção nesta joia nos documentos: https://msdn.microsoft.com/en-us/library/75w45ekt.aspx
Para uma variável a, existem as coisas já mencionadas em outras respostas, como
mas há muitos outros especificadores para formato e tamanho, como:
fonte
Não encontrei uma maneira de usar isso com uma matriz multidimensional. Mas você pode pelo menos (se você conhece o índice da entrada desejada) adicionar um relógio a um valor específico. Basta usar o operador de índice.
Para uma matriz denominada current, que possui uma matriz denominada Attribs dentro, que possui uma matriz denominada Attrib dentro, deve ser assim se você quiser ter que posicionar 26:
Você também pode usar um deslocamento
mostrará ne "próximos" 25 elementos. (Estou usando o VS2008, isso mostra apenas 25 elementos no máximo).
fonte