【问题标题】:Visual Studio: Debugging Chrome with Source?Visual Studio:使用源代码调试 Chrome?
【发布时间】:2011-10-11 18:01:37
【问题描述】:

我已经设法在 Visual Studio 中为 Google Chrome(开发频道)设置了下载符号。这有助于理解反汇编,但是当我进入一个函数时,我想看C++源代码。 (它会打开一个对话框,让我找到源文件,我当然没有。)

是否有一个服务器可以让 Visual Studio 自动找到 C++ 源文件的匹配版本?

【问题讨论】:

    标签: visual-studio visual-studio-2008 debugging google-chrome debug-symbols


    【解决方案1】:

    使用符号服务器(如http://www.chromium.org/developers/how-tos/debugging 中所述)足以让您获得 PDB,但它本身并不能获得源代码。要获取源代码需要启用源索引。

    构建期间的源索引通过向 PDB 文件添加额外数据来工作(因此获取 PDB 文件是正确的第一步),它告诉调试器如何从版本控制中检索源文件。但是,在 windbg 和 Visual Studio 中,此功能默认关闭。也就是说,windbg 和 Visual Studio 默认会忽略 Chrome 添加的源索引信息。

    在 Visual Studio(自 2002 年以来的所有版本)中,您可以通过转到工具-> 选项-> 调试-> 常规-> 启用源服务器支持来启用它。您可能还需要检查“将源服务器诊断消息打印到输出窗口”以防它最初不起作用。

    在windbg中,您可以在命令窗口中输入“.srcfix”,或者转到文件->源文件路径并在源路径对话框中输入SRV*。如果您想要诊断,请在命令窗口中输入“!sym noise”。

    请注意,自 2014 年 12 月起,建议您使用 https 而不是 http 来检索 Chrome 符号,以提高安全性,因此请使用 https://chromium-browser-symsrv.commondatastorage.googleapis.com 作为符号服务器地址。

    有关源索引的更多详细信息,请参阅我写的这篇博文:

    https://randomascii.wordpress.com/2011/11/11/source-indexing-is-underused-awesomeness/

    【讨论】:

      【解决方案2】:

      根据this的文章,可以配置VS或者windbg从http://msdl.microsoft.com/download/symbolshttps://chromium-browser-symsrv.commondatastorage.googleapis.com下载符号

      其他解决方法是在您这边编译整个源代码...(但您已经知道 :))

      【讨论】:

      • 是的,但是当我这样做时,它只下载 PDB 文件——它仍然要求 C++ 源文件向我展示源代码。 (不,我不想重新编译整个东西,哈哈。)
      • 你能检查它是否正确加载了模块吗? Debug > WIndows > Modules。您可以尝试的另一件事是,如果它要求源 cpp 文件,请在源代码文件夹中手动浏览并指向它(假设您已将源代码下载到您身边的某个文件夹)。
      • 我会试着看看关于模块的事情。但是,assuming you've got downloaded the source code to some folder on your side --> 重点是避免这种情况,因为我不知道如何为我的构建找到源代码的正确版本。 VS 不能自动找到源文件,并以某种方式按需下载吗?
      • 好吧,如果您的调试符号可以正确加载,那么您就不是原始源,因为它们包含所有源信息。否则,VS 无法找到它们。不过很好奇,chrome build 不是与源代码捆绑在一起的吗?
      • 符号已正确加载:下载数百兆的 PDB 文件需要一段时间(我面前有它们),我可以看到反汇编中的标识符名称。但是,当我运行它时,它会弹出一个窗口,要求打开some_file.cc,而我当然没有。不知道你所说的与源代码“捆绑”是什么意思......源代码非常大,比〜120-MB的浏览器大得多。而且我不知道我需要哪个版本的源代码,这才是真正的问题——这就是我需要自动下载正确版本的原因。
      猜你喜欢
      • 2022-10-16
      • 2012-09-24
      • 1970-01-01
      • 1970-01-01
      • 2015-08-04
      • 2013-02-17
      • 2019-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多