gdb impression de ne pas imprimer quelque chose de lisible à partir de mon tableau de char
j'ai un char buffer[100]
et je suis en train d'utiliser gdb pour lire le contenu des différentes étapes de l'exécution.
- je utiliser p buffer
et je reçois
"/*"/*\000\000\000\000\000\000????X?o\000\025\202\004\b", '\0' <repeats 12 times>, ".N=?", '\0' <repeats 24 times>, "`\203\004\b\000\000\000\000L\227\004\bX????\202\004\b?\017\204\000\f?\203\000\210???i\205\004\b??r"
0"/*\000\000\000\000\000\000????X?o\000\025\202\004\b", '\0' <repeats 12 times>, ".N=?", '\0' <repeats 24 times>, "`\203\004\b\000\000\000\000L\227\004\bX????\202\004\b?\017\204\000\f?\203\000\210???i\205\004\b??r"
0"/*\000\000\000\000\000\000????X?o\000\025\202\004\b", '\0' <repeats 12 times>, ".N=?", '\0' <repeats 24 times>, "`\203\004\b\000\000\000\000L\227\004\bX????\202\004\b?\017\204\000\f?\203\000\210???i\205\004\b??r"
0"/*\000\000\000\000\000\000????X?o\000\025\202\004\b", '\0' <repeats 12 times>, ".N=?", '\0' <repeats 24 times>, "`\203\004\b\000\000\000\000L\227\004\bX????\202\004\b?\017\204\000\f?\203\000\210???i\205\004\b??r"
0"/*\000\000\000\000\000\000????X?o\000\025\202\004\b", '\0' <repeats 12 times>, ".N=?", '\0' <repeats 24 times>, "`\203\004\b\000\000\000\000L\227\004\bX????\202\004\b?\017\204\000\f?\203\000\210???i\205\004\b??r"
0"/*\000\000\000\000\000\000????X?o\000\025\202\004\b", '\0' <repeats 12 times>, ".N=?", '\0' <repeats 24 times>, "`\203\004\b\000\000\000\000L\227\004\bX????\202\004\b?\017\204\000\f?\203\000\210???i\205\004\b??r"
0????X?o"/*\000\000\000\000\000\000????X?o\000\025\202\004\b", '\0' <repeats 12 times>, ".N=?", '\0' <repeats 24 times>, "`\203\004\b\000\000\000\000L\227\004\bX????\202\004\b?\017\204\000\f?\203\000\210???i\205\004\b??r"
052"/*\000\000\000\000\000\000????X?o\000\025\202\004\b", '\0' <repeats 12 times>, ".N=?", '\0' <repeats 24 times>, "`\203\004\b\000\000\000\000L\227\004\bX????\202\004\b?\017\204\000\f?\203\000\210???i\205\004\b??r"
4\b", '"/*\000\000\000\000\000\000????X?o\000\025\202\004\b", '\0' <repeats 12 times>, ".N=?", '\0' <repeats 24 times>, "`\203\004\b\000\000\000\000L\227\004\bX????\202\004\b?\017\204\000\f?\203\000\210???i\205\004\b??r"
' <repeats 12 times>, ".N=?", '"/*\000\000\000\000\000\000????X?o\000\025\202\004\b", '\0' <repeats 12 times>, ".N=?", '\0' <repeats 24 times>, "`\203\004\b\000\000\000\000L\227\004\bX????\202\004\b?\017\204\000\f?\203\000\210???i\205\004\b??r"
' <repeats 24 times>, "`3"/*\000\000\000\000\000\000????X?o\000\025\202\004\b", '\0' <repeats 12 times>, ".N=?", '\0' <repeats 24 times>, "`\203\004\b\000\000\000\000L\227\004\bX????\202\004\b?\017\204\000\f?\203\000\210???i\205\004\b??r"
4\b"/*\000\000\000\000\000\000????X?o\000\025\202\004\b", '\0' <repeats 12 times>, ".N=?", '\0' <repeats 24 times>, "`\203\004\b\000\000\000\000L\227\004\bX????\202\004\b?\017\204\000\f?\203\000\210???i\205\004\b??r"
0"/*\000\000\000\000\000\000????X?o\000\025\202\004\b", '\0' <repeats 12 times>, ".N=?", '\0' <repeats 24 times>, "`\203\004\b\000\000\000\000L\227\004\bX????\202\004\b?\017\204\000\f?\203\000\210???i\205\004\b??r"
0"/*\000\000\000\000\000\000????X?o\000\025\202\004\b", '\0' <repeats 12 times>, ".N=?", '\0' <repeats 24 times>, "`\203\004\b\000\000\000\000L\227\004\bX????\202\004\b?\017\204\000\f?\203\000\210???i\205\004\b??r"
0"/*\000\000\000\000\000\000????X?o\000\025\202\004\b", '\0' <repeats 12 times>, ".N=?", '\0' <repeats 24 times>, "`\203\004\b\000\000\000\000L\227\004\bX????\202\004\b?\017\204\000\f?\203\000\210???i\205\004\b??r"
0L7"/*\000\000\000\000\000\000????X?o\000\025\202\004\b", '\0' <repeats 12 times>, ".N=?", '\0' <repeats 24 times>, "`\203\004\b\000\000\000\000L\227\004\bX????\202\004\b?\017\204\000\f?\203\000\210???i\205\004\b??r"
4\bX????2"/*\000\000\000\000\000\000????X?o\000\025\202\004\b", '\0' <repeats 12 times>, ".N=?", '\0' <repeats 24 times>, "`\203\004\b\000\000\000\000L\227\004\bX????\202\004\b?\017\204\000\f?\203\000\210???i\205\004\b??r"
4\b?74"/*\000\000\000\000\000\000????X?o\000\025\202\004\b", '\0' <repeats 12 times>, ".N=?", '\0' <repeats 24 times>, "`\203\004\b\000\000\000\000L\227\004\bX????\202\004\b?\017\204\000\f?\203\000\210???i\205\004\b??r"
0\f?3"/*\000\000\000\000\000\000????X?o\000\025\202\004\b", '\0' <repeats 12 times>, ".N=?", '\0' <repeats 24 times>, "`\203\004\b\000\000\000\000L\227\004\bX????\202\004\b?\017\204\000\f?\203\000\210???i\205\004\b??r"
00???i5"/*\000\000\000\000\000\000????X?o\000\025\202\004\b", '\0' <repeats 12 times>, ".N=?", '\0' <repeats 24 times>, "`\203\004\b\000\000\000\000L\227\004\bX????\202\004\b?\017\204\000\f?\203\000\210???i\205\004\b??r"
4\b??r"
comment puis-je obtenir p
pour le convertir en un format lisible???
Assurez-vous qu'il est imprimable (lisible) de données dans la mémoire tampon? GDB imprime ce qui est présent - pas ce que vous voudrais être là. Pour le moment,
hmm, je suis nouveau à cela, et comme un commentaire, pourquoi est-strcmp(buffer, "/*") == 0 important? évidemment, il y a beaucoup plus dans ce tampon que juste "/*" il me semble évident que strcmp retourne 0...
C'est le "\000" que représente le "null" qui marque la fin de la chaîne. Si votre tampon, qui est considéré comme la tenue d'une chaîne C, vraiment contient la chaîne de caractères "/*" (c'est ce que Jonathan Leffler est avec son
oh, à droite. pour une raison que je suppose, il serait de retour 1. tant pis.... merci à vous deux!
strcmp(buffer, "/*") == 0
.hmm, je suis nouveau à cela, et comme un commentaire, pourquoi est-strcmp(buffer, "/*") == 0 important? évidemment, il y a beaucoup plus dans ce tampon que juste "/*" il me semble évident que strcmp retourne 0...
C'est le "\000" que représente le "null" qui marque la fin de la chaîne. Si votre tampon, qui est considéré comme la tenue d'une chaîne C, vraiment contient la chaîne de caractères "/*" (c'est ce que Jonathan Leffler est avec son
strcmp
équation de noter que strcmp
retourne 0 lorsque les chaînes sont les mêmes).oh, à droite. pour une raison que je suppose, il serait de retour 1. tant pis.... merci à vous deux!
OriginalL'auteur Tony Stark | 2010-04-11
Vous devez vous connecter pour publier un commentaire.
x/s buffer
devrait afficher le contenu du tableau en une chaîne terminée par null (qui est ce que je suppose que vous le souhaitez).OriginalL'auteur Michael Burr
Si vous voulez vous débarrasser de l'indésirable après la fin null (donc vous ne verrez
"/*"
pour cette chaîne de caractères), vous pouvez utiliser:Au moment
gdb
est l'impression de votre variable comme un tableau, c'est montrer tous les 100 caractères; un moulagechar*
rend l'imprimer comme une chaîne C.OriginalL'auteur Mike Dinsdale