【发布时间】:2009-02-12 18:43:17
【问题描述】:
在我的上一份工作(遗留 FORTRAN 77 代码)中,我们有交叉引用文件,其中列出了哪些子例程称为其他子例程、在哪些文件中定义了子例程、哪些公共块包含哪些变量、哪些子例程包含哪些公共块等. 然后,这些被用于 grep 交叉引用文件的 shell 脚本使用,并会告诉您有关程序设计的信息。
我现在在一家新公司工作(C++ 代码),我找到了 ctags 来替换其中的一些功能。我最想念的一件事是我们称为“who.calls”的命令,它列出了哪些子例程(我的意思是函数或方法,必须习惯于 OO 语言)调用给定的子例程。例如,如果子程序foo调用子程序bar:
>who.calls bar
foo
关于如何在不重新设计旧公司的编程环境的情况下做到这一点的任何建议?我正在寻找可以在命令行中使用的超级正则表达式或其他方法,但我对其他方法持开放态度,这些方法采用完全不同的方法为我提供相同的信息。我基本上想在不运行调试器的情况下发现一个调试函数堆栈。
【问题讨论】:
标签: shell ctags code-search-engine