У меня есть приложение на C++, которое использует стороннюю библиотеку. Каждый раз здесь и там в моем коде есть звонки в эту библиотеку. Я хотел бы проследить все такие звонки.Как проследить все вызовы на предопределенный набор функций в C++?
Было бы легко, если бы это были функции в моем коде - я бы ввел макрос, который бы получил текущее имя функции и время начала вызова и передал их локальному конструктору объекта, а затем по функции выхода объект был бы уничтожить и проследить необходимые данные. Макрос будет расширяться до пустой строки для конфигураций, где мне не нужна трассировка для устранения связанных служебных данных.
Есть ли простой способ надежно сделать что-то подобное для вызовов во внешнюю библиотеку? Весь интерфейс к моей библиотеке - это .h-файл с прототипами функций, включенных в мой код.
Если вы включаете заголовки внутри пространства имен, символы, определенные в заголовке, будут находиться в другом пространстве имен с символами, определенными в библиотеке. –
@Jon: Вы правы, использование пространства имен не решает проблему символа. Но в качестве альтернативы вы всегда можете использовать макрос aproach, который переименовывает вызываемую функцию и позволяет вашей библиотеке экспортировать имя переименованной функции. Затем переименованная функция вызовет исходную функцию, и нет конфликта символов. –