На моей последней работе (устаревший код FORTRAN 77) у нас были файлы перекрестных ссылок, в которых перечисляется то, что подпрограммы называют другими подпрограммами, в каких файлах были определены подпрограммы, какие общие блоки содержат какие переменные, какие подпрограммы включают какие общие блоки и т. Д. Затем они использовались сценариями оболочки, которые обрезали файлы перекрестных ссылок и рассказывали вам о дизайне программы.
Я сейчас в новой компании (код C ++), и я нашел ctags, чтобы заменить некоторые из этих функций. Больше всего я скучаю по команде, которую мы назвали "who.calls", которая перечисляет то, что подпрограммы (я имею в виду функции или методы, которые должны привыкнуть к говорению на ОО) вызывают данную подпрограмму. Например, если подпрограмма foo
вызывает подпрограмму bar
:
>who.calls bar
foo
Есть какие-нибудь предложения, как это сделать без реорганизации среды программирования из моей старой компании? Я ищу супер регулярное выражение или какой-то другой метод, который я могу использовать в командной строке, но я открыт для других методов, которые используют совершенно другой подход, чтобы дать мне ту же информацию. Я в основном хочу обнаружить стек функций отладки без запуска отладчика.