У меня есть char buffer[100]
, и я пытаюсь использовать GDB для чтения содержимого из него на различных этапах выполнения.
Я использую p buffer
и получаю
"/*\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"
Как мне получить p
, чтобы преобразовать его в читаемый формат ???
буфер x / s
должен отображать содержимое массива в виде строки с завершающим нулем (что, как я полагаю, вам нужно).
Если вы хотите избавиться от мусора после завершающего нуля (так что вы увидите только "/ *"
для этой строки), вы можете использовать:
p (char*)buffer
На данный момент gdb
печатает вашу переменную как массив, поэтому он показывает все 100 символов; приведение его к char *
заставляет его печатать его как строку C.