Можно ли прочитать таблицу символов файла vmlinux?

Я пытаюсь прочитать таблицу символов ядра Linux, файл vmlinux, пока я пробовал readelf,

readelf -s vmlinux

Но ничего не печаталось.

Перечисляя все строки, хранящиеся внутри, с помощью команды strings я мог найти имена символов, такие как sys_close, поэтому я думаю, что должно быть работающее решение.

ОБНОВЛЕНИЕ

У меня нет System.map, я думаю, что он находится внутри vmlinux, иначе как вы могли бы собрать модуль ядра с экспортированными именами, такими как sys_close?


person daisy    schedule 04.10.2012    source источник
comment
Вы построили его с прикрепленными символами?   -  person stsquad    schedule 04.10.2012
comment
nm -g /path/to/yourmodule.ko   -  person debug    schedule 29.04.2018


Ответы (2)


Бинарный код ядра немного отличается. Его символы расположены внутри файла System.map, который должен находиться в том же каталоге, что и ядро ​​(/boot).

Википедия содержит дополнительную информацию о System.map.

person mbarthelemy    schedule 04.10.2012

Попробуйте сделать
objdump -t vmlinux
objdump -t vmlinux
Это то же самое, что и readelf
Проверьте свой make-файл и посмотрите, как подготовлен vmlinux.
Я уверен, что там есть флаги. Или выложите сюда свой make файл

person New to Rails    schedule 15.08.2013