Погружение в технику и философию gdb

       

автоматическое отображение 3х инструкций при трассировке в формате AT&T


Для автоматического отображения значения регистров достаточно дать команду "display регистр", где регистр — $eax, $ebx, $ecx и т. д. Для регистра-указателя текущего положения стека существует специальное имя — $sp, которое можно использовать наравне с $esp (точно так же, как $pc <-->
$eip). Автоматических отображений может быть создано сколько угодно и любое из них всегда может быть уделено командой "undisplay n1 n2 .. nn", где nx – номер отображения, которой можно узнать по команде "info display". Временно выключить отображение помогает команда "disable display n1 n2 ... nn", а enable display – включает обратно.

Переключение режима дизассемблирования ATT&T|Intel. По умолчанию, gdb использует синтаксис AT&T, но может выводить инструкции и в формате Intel, для чего достаточно дать команду "set disassembly-flavor intel", а чтобы вернуться назад: "set disassembly-flavor att". Вот, сравните это с листингом 14.

(gdb) set disassembly-flavor intel

(gdb) display/3i $pc

1: x/3i $pc

0x200008:     mov    bl,0x2a

0x20000a:     jmp    0x200040

0x20000f:     add    BYTE PTR [edx],al

(gdb) ni

0x0020000a in ?? ()

1: x/3i $pc

0x20000a:     jmp    0x200040

0x20000f:     add    BYTE PTR [edx],al

0x200011:     add    BYTE PTR [ebx],al

(gdb)

0x00200040 in ?? ()

1: x/3i $pc

0x200040:     jmp    0x200046

0x200045:     mov    al,0xe8

0x200047:     movs   es:[edi],ds:[esi]



Содержание раздела