[XCODE] Visualiser le contenu d'un tableau en deboggage

Moi aussi j'étudie progressivement la manière dont fonctionne Xcode, et voici un détail intéressant :

Lorsque je rentre des informations à l'intérieur d'un CFDictionaryRef, au débogage il me répond : 10 entries. Clique sur cette ligne pour la mettre en évidence, ensuite tu fais un clique droit et tu sélectionne l'option 'Print description to Console' : sur la console de débogage, il affichera le contenu inscrit dans le dictionnaire !!

Si c'est un tableau conventionnel du style : int tab[10]; il suffit au débogage de cliquer sur la petite flèche devans la variable locale 'tab' pour obtenir tout son contenu.

même si cela ne correspond pas tout à fait à ton attente, j'espère que cela aura au moins le mérite de t'avoir aidé un petit peu.
 
Moi aussi j'étudie progressivement la manière dont fonctionne Xcode, et voici un détail intéressant :

Lorsque je rentre des informations à l'intérieur d'un CFDictionaryRef, au débogage il me répond : 10 entries. Clique sur cette ligne pour la mettre en évidence, ensuite tu fais un clique droit et tu sélectionne l'option 'Print description to Console' : sur la console de débogage, il affichera le contenu inscrit dans le dictionnaire !!

Si c'est un tableau conventionnel du style : int tab[10]; il suffit au débogage de cliquer sur la petite flèche devans la variable locale 'tab' pour obtenir tout son contenu.

même si cela ne correspond pas tout à fait à ton attente, j'espère que cela aura au moins le mérite de t'avoir aidé un petit peu.


Merci de ta réponse. En fait, le probleme est que la zone memoire est dynamique et non de taille fixe. Sur Codewarrior c'est simplissime, "view>As array" et on donne le nombre d'elements à visualiser.
J'ai trouvé une question similaire sur la mailing-list d'Apple et apparemment, ce n'est pas possible. Cela va etre tres difficile de se passer de cela.

Cordialement
 
Apparemment sous Xcode, c'est presque la même option... sauf que :

au même endroit que je t'ai déjà décrit, il y a une option 'View value as ....' : en fait, il suffit de rentrer le type du pointeur de structure pour qu'il en affiche le contenu.
 
Apparemment sous Xcode, c'est presque la même option... sauf que :

au même endroit que je t'ai déjà décrit, il y a une option 'View value as ....' : en fait, il suffit de rentrer le type du pointeur de structure pour qu'il en affiche le contenu.


Non désolé, je n'y arrive pas, cela me donne la premiere entree du tableau et non le tableau complet. Comment t'y prends tu ?

Cordialement
 
printf ? ;-)


plus sérieusement il y a les performances tools (présent ds Developer/Applications) qui peuvent probablement t'aider.
 
oups dsl. en fait j'ai installé ds ce dossier valgrind et ddd auquel je pensais.

mais en fait je ne vois pas ce qui te pose pb ds le visualiseur xcode..

tu as un ex de ton code dynamique problématique?

Bon, imagine que tu declare une structure.

typedef struct
{
short a;
short b;
} MyData;

Et un pointeur local

MyData * p=(MyData *)NewPtr(sizeof(MyData)*100);

Maintenant comment fais tu pour visualiser "p" sous la forme d'un tableau de 100 elements ?

Cordialement
 
effectivement.. c'est problématique! ;)

et je n'ai rien trouvé non plus..
à part utiliser la console gdb bien sur..

il y a bien aussi la colonne summary qui te permet d'accéder à la variable
Bloc de code:
{$VAR[1].a} {$VAR[1].b}
qui te renvoie le second élément et ainsi de suite.
tu peux ainsi naviguer et afficher plusieurs variables du tableau mais c sur que si tu t'intéresses vraiment aux 100 éléments c'est un peu lourd...

sinon à tt hasard, via gdb, tu peux appeler n'importe quelle fonction de ton code dc pourquoi pas une fonction qui génère l'affichage du tableau en question.

et dc sinon, ddd! interface X11 pas terrible certes mais outil très efficace!

bon courage en tt cas!
 
effectivement.. c'est problématique! ;)

et je n'ai rien trouvé non plus..
à part utiliser la console gdb bien sur..

il y a bien aussi la colonne summary qui te permet d'accéder à la variable
Bloc de code:
{$VAR[1].a} {$VAR[1].b}
qui te renvoie le second élément et ainsi de suite.
tu peux ainsi naviguer et afficher plusieurs variables du tableau mais c sur que si tu t'intéresses vraiment aux 100 éléments c'est un peu lourd...

sinon à tt hasard, via gdb, tu peux appeler n'importe quelle fonction de ton code dc pourquoi pas une fonction qui génère l'affichage du tableau en question.

et dc sinon, ddd! interface X11 pas terrible certes mais outil très efficace!

bon courage en tt cas!


Hmmm... Cela me semble difficile a utiliser, mes structures sont completement arborescentes et naviguer dans ce genre de données via une ligne de commande ne se fait plus depuis les années '80. La derniere fois que j'ai fait cela, ce devait etre sous CPC 128...
Esperons qu'XCode v3.0 fera évoluer ce probleme vers une solution satisfaisante car le deboggeur est quasiment inutilisable pour moi.

Cordialement
 
j'ai le même type de problème avec Xcode. Impossible de visualiser les valeurs dans des tableaux (y compris ceux déclarés dans la pile) pendant le debugging... grrr Xcode, c'est beau mais c'est pas très professionnel :rolleyes:
 
je me suis aperçu que je ne peux consulter le contenu d'un tableau déclaré dans la pile uniquement si celui a une taille fixée par une constante (et pas par une variable)

ainsi

int distrib (int C)
{
int nsta = 500; /* nb max d'etats observes de la file */
double
p[500], /* probas des etats 0 a nsta-1 */
u[nsta]; /* debit de sortie de la file pour l'etat n */
....
....
}

dans ces conditions-là, je peux visualiser le contenu de p mais pas de u (qui n'apparait pas dans les variables)... apparement c'est lié à gdb, car celui-ci ne "reconnait pas" u comme variable !
:confused:
 
Bonjour,

Certains savent que j'ai souvent la dent dure contre Apple...

Mais la je dois dire, chapeau !

A tout hasard, j'ai rempli un "bug report" sur leur site. Sans trop d'espoir. J'en ai qui sont là depuis 2004...
Et dans les 24 h, une réponse. J'y croyait pas ! Depuis 6 ans que je poste des rapports de problemes, une réponse, une vraie... Je me pince tres fort, je lit et je vous traduit :

Pour visualiser un pointeur comme un tableau il suffit d'ouvrir la fenetre des expressions :
"Debug>Tools>Expression"
Et dans le champ tout en bas d'entrer variable@# où variable est le nom de la variable et # le nombre d'elements du tableau. Par exemple pour mon exemple plus haut :

p@100

Cordialement
 
Céroce;4209859 a dit:
Bof... C'est sûr si tu aimes les outils qui te pondent des tonnes de code que tu ne maîtrises pas, tu préfères Visual.

Précision : je ne parle pas du compilateur, en ce qui concerne ma remarque précédente, mais plutôt de l'environnement de développement.
L'interfaçage de gdb dans XCode a encore beaucoup à progresser, me semble-t-il...
Visual reste un outil des plus abouti et d'une efficacité remarquable dans son usage quand on code. Après le compilateur... c'est une autre histoire !