2012-04-08 3 views
4

Я пытаюсь показать GDB шестнадцатеричные значения для стека, поэтому я использовал команду x /48b $esp, которая является командой, которую я видел в Интернете, которая должна показывать шестнадцатеричные значения для 48 байт в стеке, начиная с места, на которое указывает указатель стека. Однако, когда я делаю эту команду, я получаю целочисленные значения (вместо этого некоторые отрицательные). Примером может служить показано ниже:GDB не отображает шестнадцатеричные значения для стека

(gdb) x /48b $esp 
0xbffff200: 40 -14 -1 -65 24 -114 4 8 
0xbffff208: 123 0 0 0 0 0 0 0 
0xbffff210: 16 0 0 0 -3 -112 17 0 
0xbffff218: -18 64 27 0 -1 -1 -1 -1 
0xbffff220: 88 40 19 0 45 -9 17 0 
0xbffff228: 38 38 -64 -14 -1 -65 -64 -14 

Я имел эту команду работать до (насколько я знаю, это был точно такой же команда), однако вдруг, кажется, не работает. Есть идеи?

+1

Я не очень хорошо с БГД, но я уверен, что это «Ъ», что вызывает это ... Попробуйте без него. И, возможно, попробуйте 'help x' ... –

ответ

4

Вы, вероятно, опечаток вашу команду:

Формат письма о (восьмеричное), х (шест), d (десятичное), и (беззнаковое десятичное), т (двоичный), F (float), a (адрес), i (инструкция), c (char) и s (строка).

Вы должны использовать эту команду для шестнадцатеричного вывода: x /48x $esp

Смежные вопросы