Генерировать список методов C++, вызываемых из исполняемого файла

Есть ли способ генерировать список методов C++, вызываемых для исполняемого файла? У меня есть динамическая библиотека, и я хотел бы посмотреть, сколько методов вызывается из исполняемого файла. Я вижу, что методы C++ экспортируются через dumpbin или readelf. Однако когда я запускаю эти инструменты на исполняемом файле, который вызывает динамическую библиотеку, в списке отображаются только методы C и один метод C++. Есть ли что-то особенное в импорте C++?

2 ответа

Вы можете построить свою библиотеку и программу с профилированием, затем вы можете получить список всех вызванных функций (и сколько времени уходит на каждую функцию).

Вы также можете добавить ручное ведение журнала трассировки, то есть добавить вызов, который записывает в консоль в начале и конце каждой функции.

Профилирование, вероятно, самый простой и легкий путь. Посмотрите здесь для опции, необходимой при сборке, и, например, здесь для руководства программы gprof необходимо для извлечения информации.

Вы можете использовать методы профилирования, например, скомпилировать всю программу с помощью -pg флаг передан gcc (и во время ссылки), затем используйте gprof, (Существует также oprofile).

Вы могли бы использовать ltrace чтобы понять, что вызовы библиотеки сделаны.

Вас может заинтересовать эта статья об инструментах обратного проектирования.

Другие вопросы по тегам