ho un char buffer[100]
e sto provando a usare gdb per leggere il contenuto da esso in varie fasi del runtime.stampa gdb non stamperà qualcosa leggibile dal mio array CA
io uso p buffer
e ottengo
"/*\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"
Come faccio ad avere p
per convertirlo in un formato leggibile ???
Verificare che nel buffer siano presenti dati stampabili (leggibili)? GDB stampa ciò che è presente, non ciò che vorresti essere lì. Al momento, 'strcmp (buffer,"/* ") == 0'. –
hmm, quindi sono decisamente nuovo in questo, e come commento laterale, perché è strcmp (buffer, "/ *") == 0 importante? ovviamente, c'è molto di più in questo buffer che solo "/ *" quindi mi sembra ovvio che lo strcmp restituisca 0 ... – sepiroth
È il "\ 000" che rappresenta il "nulla" che segna la fine della stringa C . Quindi il tuo buffer, visto come contenere una stringa C, contiene davvero la stringa "/ *" (è ciò che Jonathan Leffler sta ottenendo con la sua equazione 'strcmp' - nota che' strcmp' restituisce 0 quando le stringhe sono le stesse). –