Как сделать так, чтобы GDB форматировал половинное запоминающее устройство как шестнадцатеричное? - PullRequest
0 голосов
/ 25 июня 2018

Я работаю с алгоритмом, который использует uint16_t в качестве типа данных.В массиве 4 половины слова, поэтому я пытаюсь отобразить четыре половины слова в шестнадцатеричном виде.Я не сделал ничего, кроме x/4h:

(gdb) x/4h master_key
0x7fffffffd330: u"Āईᄐᤘ桷"
0x7fffffffd33c: u"桷敥\xbe0@"
0x7fffffffd346: u""
0x7fffffffd348: u"ꆋ翿"

Согласно GDB |Память :

f, формат отображения

Формат отображения является одним из форматов, используемых при печати ('x', 'd', 'u', 'o ',' t ',' a ',' c ',' f ',' s ') и, кроме того,' i '(для машинных инструкций).По умолчанию это «x» (шестнадцатеричный) изначально.Значение по умолчанию меняется каждый раз, когда вы используете x или print.

Я не уверен, почему x пытается печатать строки, но я бы хотел напечатать половину слов в шестнадцатеричном формате.

GDB, похоже, не следует инструкции.Я думаю, что мне нужно изменить поведение x и сделать его постоянным.Как мне сказать GDB напечатать половинные слова в шестнадцатеричном формате?


В моем .gdbinit написано следующее, но похоже, что GDB его игнорирует ( не удивительно ).

(gdb) shell cat ~/.gdbinit
set output-radix 16

set history save on
set history size 256

set logging on
set logging overwrite on
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...