#assembly #x86 #gdb
#gdb
Вопрос:
Это отображение моего gdb
(gdb) x/20bx 0xbffff2c0
0xbffff2c0: 0xd4 0xf2 0xff 0xbf 0x16 0x8f 0x04 0x08
0xbffff2c8: 0x05 0x00 0x00 0x00 0x00 0x00 0x0c 0x42
0xbffff2d0: 0x6b 0x00 0x00 0x00
Возможно ли изменить его на 4 байта подряд?
Ответ №1:
gdb
(по крайней мере, в источниках 7.1 и 7.6, которые я просмотрел) жестко определяет максимальное количество элементов в строке, которые x
будут печататься, в зависимости от формата.
maxelts = 8;
if (size == 'w')
maxelts = 4;
if (size == 'g')
maxelts = 2;
if (format == 's' || format == 'i')
maxelts = 1;
Обходной путь для получения желаемого — ввести x/4bx 0xbffff2c0
для печати 4 элементов, а затем ввести только enter для печати каждого последующего набора из 4 элементов.
Ответ №2:
Используйте x/20wx
(gdb) x/20bx amp;result
0x7fff5fbff5f4: 0xff 0x7f 0x00 0x00 0x5e 0x10 0xc0 0x5f
0x7fff5fbff5fc: 0xff 0x7f 0x00 0x00 0x10 0xf6 0xbf 0x5f
0x7fff5fbff604: 0xff 0x7f 0x00 0x00
(gdb) x/20wx amp;result
0x7fff5fbff5f4: 0x00007fff 0x5fc0105e 0x00007fff 0x5fbff610
0x7fff5fbff604: 0x00007fff 0x8994d5fd 0x00007fff 0x00000000
0x7fff5fbff614: 0x00000000 0x00000001 0x00000000 0x5fbff7e8
0x7fff5fbff624: 0x00007fff 0x00000000 0x00000000 0x5fbff804
0x7fff5fbff634: 0x00007fff 0x5fbff830 0x00007fff 0x5fbff847
Комментарии:
1. Ох. Я имею в виду строку 1, начинающуюся с
0xbffff2c0' row 2 start from
0xbffff2c4`.. Извините, что не прояснил ситуацию