Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: mariyop en 7 Octubre 2011, 20:15 PM

Título: Ver matrices en debugger de Codeblocks
Publicado por: mariyop en 7 Octubre 2011, 20:15 PM
Hola a todos!

¿Hay algún modo de poder ver los valores de los elementos las matrices al usar el debugger de Codeblocks? He probado a añadir watches, pero me sigue mostrando solamente la dirección de memoria del primer elemento.

Gracias
Título: Re: Ver matrices en debugger de Codeblocks
Publicado por: El_Java en 7 Octubre 2011, 20:43 PM
Sí que se puede, investiga un poco, porque yo tampoco lo sabia y a partir de tu mensaje he tardado 3 minutos en descubrirlo:
Pon un codigo de prueba, como este:
Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

int main(){
    int *x = new int[2];
    x[0] = 100;
    x[1] = 222;

    return 0;
}


Coloca el breakpoint antes del return 0;
Haz debug y haz visible los watches, luego te aparecerá algo parecido a esto: "x = (int *)0x0230b4", haz click derecho sobre el y pincha en dereference pointer 'x' y te saldra el valor de x[0]

Si no, puedes hacerlo mucho más sencillo, dentro de la ventana watches haz click derecho y "add watch", en keyword pon la variable que quieres ver, por ejemplo, "x[1]" y ya está.

Un saludo.
Título: Re: Ver matrices en debugger de Codeblocks
Publicado por: mariyop en 7 Octubre 2011, 23:00 PM
Gracias, pero mis matrices pueden llegar a ser de 1000x1000. ¿Hay alguna manera de verlas de tirón sin tener que añadir los watches 1 a 1?
Título: Re: Ver matrices en debugger de Codeblocks
Publicado por: LearningSpanishProgrammer en 7 Octubre 2011, 23:11 PM
En su caso, 1000x1000 es muy muy grande para el debugger (mismo en el Eclipse o otra IDE), te recomiendo que busque una manera de grabalo en un fichero.
Título: Re: Ver matrices en debugger de Codeblocks
Publicado por: mariyop en 7 Octubre 2011, 23:21 PM
¿Cuál sería la dimensión máxima que podría verse en el debugger (si es que se puede)? Para que me entendáis, también programo en Matlab, y ahí puedes ver la matriz completa (aparece como en una tabla). A esto es a lo que me refiero. ¿Se puede hacer con Codeblocks de algún modo? Porque colocar watches uno por uno no me parece lógico
Título: Re: Ver matrices en debugger de Codeblocks
Publicado por: El_Java en 8 Octubre 2011, 01:06 AM
Si que se puede, cuando estés haciendo el debug, en la pestaña Debugger (la de la tuerca azul de debajo del editor) ahi una linea de comandos no?
Pues escribe:
output 'variable''inicial'@'tamaño' No se si el significado es justo asi, lo he tenido que deducir, pero por ejemplo, para ver los 10 primeros datos de un array 'x' tendrias que poner:
output x[0]@10 y te saldria algo como esto:
{100, 200, 300, 400, 500, 600, 700, 800, 900, 1000}
En la linea de comandos puedes ver los comandos poniendo help, ademas, existe la funcion sizeof(variable) para facilitar el tamaño.

Un saludo.
Título: Re: Ver matrices en debugger de Codeblocks
Publicado por: mariyop en 8 Octubre 2011, 09:22 AM
Ok, gracias. Lo probaré
Gracias por vuestra ayuda