Foro de elhacker.net

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
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(){
  5.    int *x = new int[2];
  6.    x[0] = 100;
  7.    x[1] = 222;
  8.  
  9.    return 0;
  10. }
  11.  

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:
Código:
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:
Código:
output x[0]@10
y te saldria algo como esto:
Código:
{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