Есть ли способ генерировать список методов C ++, вызываемых для исполняемого файла? У меня есть динамическая библиотека и я хотел бы увидеть, сколько методов вызывается из исполняемого файла. Я вижу, что методы C ++ экспортируются через dumpbin или readelf. Однако когда я запускаю эти инструменты на исполняемом файле, который вызывает динамическую библиотеку, в списке отображаются только методы C и один метод C ++. Есть ли что-то особенное в импорте C ++?
Вы можете построить свою библиотеку и программу с профилированием, затем вы можете получить список всех вызванных функций (и сколько времени уходит на каждую функцию).
Вы также можете добавить ручное ведение журнала трассировки, то есть добавить вызов, который пишет в консоль в начале и в конце каждой функции.
Профилирование, вероятно, самый простой и легкий путь. Посмотрите Вот для варианта, необходимого при строительстве, и, например, Вот для руководства программы gprof
необходимо для извлечения информации.
Вы можете использовать методы профилирования, например, скомпилируйте всю программу с -pg
флаг передан gcc
(и во время ссылки), затем используйте gprof
, (Существует также oprofile
).
Вы могли бы использовать ltrace
чтобы понять, что вызовы библиотеки сделаны.
Вас это может заинтересовать статья об инструментах обратного инжиниринга.