答案 0 :(得分:4)
我已经阅读了这篇文章,并希望总结一下我对清晰度的理解
今天,调试器使用PDB获取文件和校验和的磁盘路径,该文件被编译为创建可执行文件的给定部分。然后,调试器尝试使用本地磁盘和可用符号服务器加载文件。根据这个提议,我们可以通过将文件本身嵌入到PDB中来跳过中间人。尤里卡,不再寻找来源!
作为以这种方式完成挖掘源代码的公平份额的人,我喜欢为所有调试需求提供一个软件包的想法。不过,有几个方面需要考虑这个提议。
第一个是将源代码实际嵌入到PDB中。这是非常可行的。 PDB本质上是轻量级文件数据库。它有编码的结构,但AFAIK可以将任何你想要的东西放入某些插槽(例如局部变量值/类型)。某些插槽可能存在大小限制,但我确信您可以发明一种编码方案来将大型文件分解为块。
第二个方面是调试器实际从PDB加载文件而不是在磁盘上搜索它。我不熟悉调试器的那部分,但据我所知,它只使用2条信息来定位文件
我很确定这是它传递给符号服务器的唯一信息。这使得实现符号服务器变得不可行,因为它无法访问PDB(假设我当然是对的)。
我挖到了希望有一个你可以覆盖的VS COM组件,这将允许你拦截给定路径的文件加载,但我找不到。
我认为可行的一种方法是
这不是你想要的。