Visual Studio:使用源代码调试 Chrome?

Meh*_*dad 2 debugging google-chrome debug-symbols visual-studio-2008 visual-studio

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

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

Bru*_*son 5

使用符号服务器(如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/