我正在开发一个项目并尝试修复系统中发现的错误。我可以访问的代码没有构建(这是一个包含大量dll文件的巨大项目,其中一些在我的工作区中丢失)。我可以访问我正在尝试调试的部分代码,但无法构建它。所以我开始编译.exe
文件并在VS中附加到它。当我在代码中设置断点时,它被禁用并说No symbols have been loaded for this document.
所以我的问题是,调试器正在寻找哪些额外的信息/文件?我假设它正在寻找特定程序集的pdb
文件,这在我的机器上不存在。任何帮助表示赞赏。
修改
当我尝试附加到exe文件时,我收到此警告:
答案 0 :(得分:6)
调试器要查找哪些其他信息/文件?我假设它正在寻找特定程序集的pdb文件,这在我的机器上不存在。
你的假设是正确的。
感谢任何帮助。
您可以通过以下方式解决问题:
答案 1 :(得分:3)
它正在寻找pdb文件,没有它你将无法调试。我不知道你的情况的细节,但建立在你的系统上可能是最好的方法。根据我的经验,这种情况通常是由于在源树中占用了太深的节点。在处理大型项目时,在源代码控制中采用更浅的节点大大简化了我的生活。当你正在开展这样的项目时,你必须能够构建它,否则你可能无法到达任何地方。
如果您正在远程调试的东西来自官方版本,它将没有pdb文件,因此没有简单的解决方法,比如找到drop文件夹并复制pdb。
答案 2 :(得分:0)
我不明白你会通过运行任何可执行文件来做什么。你说你的代码没有构建。所以运行任何可执行文件都无法帮到你。您的代码无法编译是您所面临的比共享构建错误还是编译错误?对于缺少的程序集 - 从项目引用中删除并注释掉项目中可能引用任何此类程序集的代码。你可以在那之后建立你的代码吗?
一旦你可以构建代码,你就可以继续调试或附加任何可执行文件。
希望这有帮助!