Я создаю разделяемую библиотеку на C, которую используют другие программы.Иногда эти другие программы аварийно завершают работу из-за ошибки в моей общей библиотеке.При воспроизведении подобных ошибок мне очень полезно знать, какие функции из моей библиотеки вызываются, с какими аргументами и в каком порядке.Конечно, я могу добавить printf()
вызовы ко всем моим функциям или добавить точки останова для всех них, но я думаю, что просто должен быть лучший способ определить это.
Редактировать: так как я делаюна OSX dtrace и связанный с ним скрипт dapptrace кажутся многообещающими.Однако, покопавшись в документации, я все еще немного растерялся.
Скажем, моя библиотека / path / to / libmystuff.so и у меня есть программа test , который ссылается на эту библиотеку.Используя dtrace , как вызвать список всех вызовов функций, находящихся в libmystuff.so ?