Как мне сделать функции печати GDB интересными при их вызове, с отступом в зависимости от того, как глубоко они в стеке?
Я хочу иметь возможность сказать что-то вроде (выдуманное):
(gdb) trace Foo* Bar* printf
И пусть GDB напечатает все функции, начинающиеся с Foo или Bar, как они называются. Вроде как в gnu cflow, за исключением того, что используются символы отладки и только те функции печати, которые действительно вызываются, а не все возможные потоки вызовов.
Инструменты, которые не помогут, включают cachegrind, callgrind и oprofile, которые упорядочивают результаты, по которым функции вызывались чаще всего. Мне нужно сохранить порядок звонков.
Подстановочный знак (или его эквивалент) имеет важное значение, так как есть много функций Foo и Bar. Хотя я бы согласился на запись абсолютно всех функций. Или, возможно, сказать GDB записать все функции в конкретной библиотеке.
У некоторых мастеров GDB должен быть скрипт для этой обычной работы!