Si tiene una matriz asignada estáticamente, el depurador de Visual Studio puede mostrar fácilmente todos los elementos de la matriz. Sin embargo, si tiene una matriz asignada dinámicamente y señalada por un puntero, solo mostrará el primer elemento de la matriz cuando haga clic en + para expandirla. ¿Hay una manera fácil de decirle al depurador, muéstrame estos datos como una matriz de tipo Foo y tamaño X?
c++
c
visual-studio
debugging
Adam Rosenfield
fuente
fuente
Hay dos métodos para ver datos en una matriz m4x4:
Una forma es con una ventana Watch (Debug / Windows / Watch). Agregar reloj =
Esto muestra datos en una lista:
Otra forma es con una ventana de Memoria (Debug / Windows / Memory). Especifique una dirección de inicio de memoria =
Esto muestra los datos en una tabla, que es mejor para matrices de dos y tres dimensiones:
Haga clic derecho en la ventana Memoria para determinar cómo se visualizan los datos binarios. Las opciones están limitadas a enteros, flotantes y algunas codificaciones de texto.
fuente
En una ventana de observación, agregue una coma después del nombre de la matriz y la cantidad de elementos que desea que se muestren.
fuente
una nueva visita:
supongamos que tiene un puntero a continuación:
entonces puede escribir a continuación en el reloj de depuración de Visual Studio:
que lo convertirá en una matriz como la siguiente, y puede ver todos los contenidos de una sola vez.
fuente
Por,
agrega esto para mirar
fuente
Otra forma de hacer esto se especifica aquí en MSDN .
En resumen, puede mostrar una matriz de caracteres como varios tipos de cadena. Si tienes una matriz declarada como:
Puede imprimirlo como una cadena Unicode en la ventana del reloj con lo siguiente:
Consulte las tablas en la página de MSDN para ver todas las conversiones posibles, ya que hay bastantes. Muchas variantes de cadena diferentes, variantes para imprimir elementos individuales en la matriz, etc.
fuente
a,[10]
permite ver elementos individuales para que ellos mismos sean expandibles, incluso si tiene una matriz de tipos de datos complejos.Para arreglos MFC (CArray, CStringArray, ...) siguiendo el siguiente enlace en su Consejo # 4
http://www.codeproject.com/Articles/469416/10-More-Visual-Studio-Debugging-Tips-for-Native-De
Por ejemplo, para "CArray pArray", agregue en las ventanas Watch
para ver los primeros 5 elementos.
Si pArray es una matriz bidimensional, puede ver cualquiera de los elementos de la segunda dimensión utilizando la siguiente sintaxis:
fuente
Puede encontrar una lista de muchas cosas que puede hacer con las variables en la ventana de observación en esta joya en los documentos: https://msdn.microsoft.com/en-us/library/75w45ekt.aspx
Para una variable a, están las cosas ya mencionadas en otras respuestas como
pero hay muchos otros especificadores para formato y tamaño, como:
fuente
No he encontrado una manera de usar esto con una matriz multidimensional. Pero al menos puede (si conoce el índice de su entrada deseada) agregar un reloj a un valor específico. Simplemente use el operador de índice.
Para un Array llamado current, que tiene un Array llamado Attribs adentro, que tiene un Array llamado Attrib adentro, debería verse así si desea tener la posición 26:
También puedes usar un desplazamiento
mostrará ne "próximos" 25 elementos. (Estoy usando VS2008, esto muestra solo 25 elementos como máximo).
fuente