Команда dis выдает на стандартный вывод листинг файлов на языке ассемблера. Файлы могут быть как об ектными, так и архивами (библиотеками) об ектных файлов. Листинг содержит команды ассемблера и их восьмеричное или шестнадцатеричное представление.
Дизассемблер интерпретирует следующие опции, которые можно указывать в произвольном порядке:
-o
Выводить числа в восьмеричном виде. По умолчанию используется шестнадцатеричная система счисления.
-V
Вывести в стандартный протокол номер версии дизассемблера.
-L
Найти в таблице имен метки исходной программы для вставки их в листинг. Данная опция работает только в том случае, если файл был откомпилирован с дополнительной отладочной информацией [например, с опцией -g для ]. Синтаксис выдаваемых меток C-подобен.
-s
Выполнять символьное дизассемблирование, то есть подставлять в качестве операндов имена там, где это возможно. Символьная информация будет располагаться на следующей строке после команды. Для того, чтобы было выполнено максимально возможное символьное дизассемблирование, файл должен быть откомпилирован с дополнительной отладочной информацией [например, с опцией -g для ]. Синтаксис выдаваемых имен C-подобен.
-d секция
Дизассемблировать поименованную секцию как секцию данных, выводя смещение данных относительно начала секции.
-da секция
Дизассемблировать поименованную секцию как секцию данных, выводя фактические адреса.
-F функция
Дизассемблировать в об ектных файлах, перечисленных в командной строке, только указанную функцию. Опция -F может быть указана в командной строке несколько раз.
-t секция
Дизассемблировать поименованную секцию как секцию команд.
-l цепочка
Дизассемблировать библиотечный файл, заданный цепочкой. Полное имя библиотечного файла формируется как LIBDIR/libцепочка.a. Например, команду dis -l x -l z можно применить для дизассемблирования библиотек libx.a и libz.a.
При наличии опций -d, -da или -t дизассемблируются только заданные в опциях секции файлов. В противном случае дизассемблируются все секции команд.
Число, стоящее в начале строки листинга и заключенное в квадратные скобки, например [5], означает, что строка C-программы с указанным номером, на которую можно установить точку прерывания, открывается машинной командой из данной строки. Эти номера строк будут выдаваться только в том случае, если файл был откомпилирован с дополнительной отладочной информацией [например, с опцией -g для ]. Выражение типа в поле операнда, следующее за относительным смещением в команде перехода, означает вычисленный адрес внутри секции, на который передается управление. Имя функции выводится с первой позиции, за ним стоят скобки ( ).
ФАЙЛЫ
LIBDIR Обычно это /lib.
СМ. ТАКЖЕ
as(1), , , a.out(4).
ДИАГНОСТИКА
Понятные без пояснений диагностические сообщения указывают на ошибки в командной строке или на некорректности, обнаруженные при обработке заданных файлов.
СЮРПРИЗЫ
Опция -s не обрабатывается данной версией дизассемблера.