我最近在处理大量遗留代码时感到非常沮丧,我正试图熟悉这些代码。
假设我尝试搜索特定的函数调用,我得到了大量的结果,结果完全无关紧要;其中一些很容易被发现,例如评论说
// Fixed functionality in foo() so don't need to handle this here any more
但是其他人更难以手动发现,因为它们最终是来自模块中其他函数的调用,这些函数仅在某些情况下编译,或者是#if 0
'的更大代码块的一部分d完整。
我想要的是一个搜索工具,可以让我搜索一个术语,并让我选择包含或排除注释掉的或#if 0'd的代码。然后,搜索结果将与#defines列表一起显示,以便使该代码段相关。
我正在使用C / C ++,但除了特定的注释语法之外,我猜这些技术应该更普遍适用。
这样的工具是否存在?
答案 0 :(得分:1)
不完全是你所追求的,但我觉得这很方便。
GrepWin - 一个免费的视觉“grep”工具,用于搜索文件。
我发现它非常有用,因为:
答案 1 :(得分:1)
几乎所有体面的源浏览器都会让您转到定义函数的位置,和/或列出该函数的所有调用,并将您直接带到呼叫站点。这通常基于相当完整的源代码解析,因此它将忽略注释,预处理器排除的代码等等(实际上,至少在一种情况下,源浏览器使用的解析器几乎肯定是比编译器本身使用的更好。