У меня есть некоторый написанный на c ++ пакет. Linux, gcc. Я могу изменить процесс компиляции (изменить Makefile, флаги и т. Д.), Но могу не изменить исходный код C ++.
Один запускает пакет с другими параметрами, выполняет работу и завершает работу.
Как считать :
1) Количество вызовов функции с конкретным именем?
2) Количество вызовов функций с конкретной подписью?
3) Количество вызовов функций, в которых один из параметров имеет определенный тип, т. Е. Std :: string (тип определяется подписью)?
4) и extra Количество вызовов функций объектов STL, т. Е. Std :: string copy constructor?
(я имею в виду подсчет количества звонков во время пробега.)
Я думал сделать это с помощью GDB, но мне было очень трудно выполнить (1), и я вообще не нашел, как это сделать (2) - (4).
Все приемлемые ответы я напишу здесь для человечества.