Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Сб авг 19, 2017 9:25 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: CoffDump
СообщениеДобавлено: Пн июл 31, 2017 10:04 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 934
Программа выводит информацию из объектных модулей формата COFF в консоль. Скриншот вывода:
Спойлер: Показать
Вложение:
CoffDump1.PNG
CoffDump1.PNG [ 15.75 КБ | 95 просмотров ]

Не всегда все имена символов умещаются, поэтому есть опция, чтобы консоль была большего размера, например(ох уж это декорирование!):
Спойлер: Показать
Вложение:
CoffDump2.PNG
CoffDump2.PNG [ 41.44 КБ | 95 просмотров ]

Некоторые улучшения, которые можно сделать:
  • вместо значений показывать имена констант(0 -> UNDEF; -2 -> DEBUG; и т.п.)
  • декодировать поля flags
  • добавить возможность вывода в файл
  • обработка AUX-символов
К сожалению, в документации не про всё инфа есть.
В документации написано
Цитата:
typically not more than one auxiliary symbol-table
record follows a standard symbol-table record (except for .file records with long file
names).

но, как оказалось, не только "except for .file"
Например, существует "Relocation CRC", о котором objdump не знает и вместо этого показывает неверную информацию.

Или вот "line#"
Также и pedump(by Matt Pietrek).
Вот он пишет
Цитата:
I've written a PE and COFF OBJ file dumping program, PEDUMP (see Table 1), that I think provides more understandable output than DUMPBIN.

А выдаёт "<unhandled aux symbol>"

В то же время утилита от Microsoft неверно отображает, если в .file длина имени файла ровно 18 байт.
Она, видимо, считает, что это ASCIIZ, но это не так, а вот утилиты dumpobj от Digital Mars и objdump ведут себя правильно.

Вот эта документация:
'Microsoft Portable Executable and Common Object File Format Specification'
'Revision 11 – June 20, 2017
© 2017 Microsof t Corporation. All rights reserved. '
Вложение:
pecoff.pdf [788.95 КБ]
5 скачиваний


Можно считать, что эта программа — ещё один пример на Delphi под KolibriOS.

Для сборки надо в make.bat задать пути
KOLIBRIOS_PAS - path to KolibriOS.pas
KOLIBRIOS_LIB - path to KolibriOS.lib

KolibriOS.lib можно взять из темы "Delphi7 examples" viewtopic.php?f=33&t=3469

Вложение:
CoffDump.7z [6.41 КБ]
7 скачиваний


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB