Можно ли получить подпись функции из библиотеки? - PullRequest
0 голосов
/ 05 января 2019

Предположим, что nm сообщает символ функции в утилитах библиотеки:

$ nm --defined-only utils.so
T function_symbol

Можно ли определить сигнатуру этой функции (тип возвращаемого значения и параметры)? Или хотя бы количество параметров и размер каждого параметра?

1 Ответ

0 голосов
/ 05 января 2019

Эту информацию можно получить из отладочной информации DWARF. Но если отладочная информация недоступна (либо потому, что она была удалена, либо не была сгенерирована во время компиляции в первую очередь), это невозможно. ELF-объект не содержит эту информацию.

Для функциональных символов C ++ в календаре показан тип аргументов функции, но даже там тип результата функции отсутствует, поэтому картинка все еще неполная.

...