LINUX.ORG.RU

Ответ на: комментарий от Dark_SavanT

про pvtrace я уже несколько раз при подобных вопросах упоминал. а вот трейсить без выполнения простым способом я себе как-то не представляю.

beastie ★★★★★
()
Ответ на: комментарий от bakugan

не поможет, код железоспецифичный и выполняется на голом железе.

Dark_SavanT ★★★★★
() автор топика

Если в файле есть relocation-информация, то можно попробовать простой алгоритм:

1. Для каждой процедуры определяем адреса начала и конца.
2. В заданном диапазоне отлавливаем relocation-символы с сылками
на другие процедуры. Соотвественно строим граф.

Соответственно objdump вывод можно обрабатывать чем угодно, дцать лет
назад сам использовал awk.

Если relocation-символов нет, то нужен анализ кода и поиск переходов.

Неприятности:
1. Не определяются вызовы в стиле (*func)(), некоторые
инициализационные процедуры задаются таблицами.
2. Нужна relocation-таблица. При сборке и использовании отностительной
адресации (таки ARM) символы могут выдавливаться. Поэтому оптимально
генерировать по объектным файлам.

io ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.