Я работаю с алгоритмом, который использует 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