gdb drucken nicht ausdrucken, etwas lesbares aus meiner char-array
ich habe eine char buffer[100]
und ich versuche, verwenden Sie gdb, um die Inhalte zu Lesen aus es sich in verschiedenen Phasen der Laufzeit.
benutze ich p buffer
und ich bekomme
"/*\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"
wie bekomme ich p
konvertieren es in ein lesbares format um???
- Stellen Sie sicher, dass es druckbar ist (lesbaren) Daten in den Puffer? GDB druckt, was vorhanden ist - nicht das, was man möchte, dort zu sein. Im moment
strcmp(buffer, "/*") == 0
. - hmm, also ich bin absolut neu in diesem, und als eine Randnotiz, warum strcmp(buffer, "/*") == 0 wichtig? natürlich, es gibt viel mehr in diesem Puffer als nur das "/*" und es scheint mir offensichtlich, dass strcmp würde 0 zurückgeben...
- Es ist das "\000", dass die Vertreter der "null" markiert das Ende der C-saite. Also den Puffer, angesehen wenn man eine C-saite, wirklich enthält die Zeichenfolge "/*" (das ist, was Jonathan Leffler ist immer mit seiner
strcmp
Gleichung - beachten Sie, dassstrcmp
gibt 0 zurück wenn die strings gleich sind). - ach ja, richtig. aus irgendeinem Grund habe ich angenommen, es wäre 1 zurück. nevermind.... danke an Euch beide!
Du musst angemeldet sein, um einen Kommentar abzugeben.
x/s buffer
angezeigt werden sollen, die den Inhalt des Arrays als eine mit null beendete Zeichenfolge (das ist, was ich vermute, du möchtest).Wenn Sie wollen, um loszuwerden, die junk-nach dem abschließenden null (so sehen Sie nur
"/*"
string), die Sie verwenden können:Im moment
gdb
ist das drucken Ihrer Variablen als ein array, so ist es mit allen 100 Zeichen; Umwandlung zuchar*
macht es drucken, es als C-string.