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, dass strcmp 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!
InformationsquelleAutor Tony Stark | 2010-04-11
Schreibe einen Kommentar