В Linux вы можете проверить/proc/$ PID/pmaps, чтобы увидеть библиотеки, загруженные определенной программой, и программа может открыть/proc/self/pmaps, чтобы изучить библиотеки, которые она сама загрузила.
Я знаю, что pmaps будет содержать только динамические библиотеки, и, очевидно, ядро не может предсказать, какие библиотеки мы могли бы развернуть в более поздней точке, поэтому я ожидаю, что они не будут включены в/proc/self/maps. Но я уверен в нескольких других других сценариев:
ли библиотеки, которые были связаны во время сборки, но мы не вызвали какой-либо функции в еще включено? Мое понимание - задержки Linux, связывающие символы до первого использования, поэтому я не уверен, что они появятся.
Включены ли рэпапы во все библиотеки, используемые рекурсивно? Например. если я посмотрю на каждую библиотеку в pmaps и запустил ldd на ней, а затем запустил ldd на те, ad nauseum, я не должен находить какие-либо новые библиотеки, которые не были в исходных pmaps? Я попробовал это на двоичных файлах, и, похоже, это так, но, может быть, мне повезет.
Я знал об этом, но это хорошая информация, чтобы знать +1. –