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

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

<分区>

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

为不熟悉此内容的任何人提供一些背景知识。导航到某个站点(比如维基百科)并进行搜索后,chromium 会记住查询变量的名称,并让您按 Tab 键并直接从地址栏搜索站点。整洁!

问题是 chromium 的代码库非常庞大,我一直没能找到处理这个问题的方法/函数。

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

最佳答案

对于此类问题,没有一种放之四海而皆准的方法。但是对于这个,我会尝试这些:

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

  • 从一个容易找到的点跟踪执行,例如命令处理和调度循环。我会寻找一个 Tab 键格并跟随它的引导。

  • 查看源代码目录和文件名以获得提示。软件通常是合理构建的,优秀的工程师以明智的方式分而治之。

关于c++ - 您如何在大型代码库中找到特定的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4435275/

相关文章:

JAVA:括号匹配方法不打印

mysql - 查找特定日期范围内的结果

html - 运行 HTML5 视频的 Chrome 性能不佳

javascript - 为什么 Firefox 在页面加载时触发 mouseenter 事件?

c++ - 构建 libsigc++ 失败(std::basic_ostream 显式实例化)

C++14。声明一个具有相同类型和固定长度参数列表的函数

c# - C++/CLI clr :safe for C# COM Interop 中的包装器 C++

django-haystack 排序 - 我该如何处理这个问题?

javascript - 在 Chrome 中,outerHeight 给出了错误的值,在 IE 和 FireFox 中则正常

c++ - TBB:可能获得线程ID?