Skip to main content

Отладчики и дизассемблеры

objdump

Простейший дизассемблер, есть по умолчанию в linux. 

-d только секцию кода, -D все секции. -M intel в формате intel. 

objdump -d -M intel strswap

В секции .data пытается разобрать данные на команды.

GDB

Консольный отладчик.отладчик, не полноценный компилятор. Не работает без дополнительных файлов при компиляции. 

Загрузка программы для отладки: gdb <program> 

Консоль gdb:

Просмотр



list


Вывести 10 строк кода, повтор команды выводит следующие строки.


<число> Вывод конкретной строки.
x/s <адрес памяти> адрес, по которому размещена строка
x/c <адрес памяти> вывод одного символа
x/13с <адрес памяти> x/13c 0x000000 выведет 13 символов в виде строк
x/13d <адрес памяти> вывод 13 символов в виде чисел
x/13x <адрес памяти> 13 шестнадцатеричных символов
x/s  <имя ссылки> x/s &msg
Запуск

run
Выполнение загруженного приложения
disassemble <link> Дизассемблирование метки
break <link> Точка останова
info registers вывод значений регистров
step
следующий шаг 
continue
продолжение выполнения
print p <registr>

Вывод значения регистра 

print $rax
Дополнительно

quit
Выход
set <парам>

Настройка параметра. 

 set disassembly-flavor intel Установка формата отображения Intel