如何在大型代码库中找到特定的功能?

时间:2010-12-14 02:04:22

标签: c++ search google-chrome project-management chromium

我对Chrome中的“按Tab键搜索站点”功能很着迷,所以很自然地我想知道它是如何在代码中实现的。

任何不熟悉此事的人的背景知识。在导航到某个站点(比如维基百科)并进行搜索之后,chrome会记住查询变量的名称,并允许您按Tab键并直接从地址栏搜索站点。整齐!

问题是chrome的代码库是巨大的,我没有找到处理这个问题的方法/函数。

当您在寻找特定功能的实现时,如何处理大型代码库?缩小范围的任何技巧?最好不要求使用调试符号构建软件并遵循程序流程。

3 个答案:

答案 0 :(得分:10)

这种问题没有一种适合所有方法。但对于这个,我会尝试这些:

  • 如果有任何与该操作关联的唯一消息,请grep该字符串的所有源文件。这种技术的一个常见缺陷是消息可能是从应用程序中的各个部分组合而成的,因此grep寻找一个独特的短语 - 甚至是一个单词 - 通常有助于识别消息的来源。找到文本后,找到引用文本通常需要更多的文本搜索。

  • 从易于查找的点跟踪执行,如命令处理和调度循环。我会寻找一个Tab关键案例,并按照它所处的位置进行操作。

  • 查看提示的源代码目录和文件名。软件通常是合理构建的,优秀的工程师以合理的方式划分和征服。

答案 1 :(得分:6)

测试覆盖率工具是一种很好的方法。他们告诉你应用程序的哪个部分 通过考试来行使。

检测应用程序以收集测试覆盖率。执行您关心的功能。记录执行的内容。执行类似的功能,但与您想要的功能不同。记录下来。取决于覆盖范围的设定差异。 diff选择感兴趣的功能中涉及的代码,不包括类似功能所共有的代码。

答案 2 :(得分:0)

Ask the Chromium team。他们不会给出积分或铜像素,但他们绝对是权威人士,也是正确的人们提出这类问题。