Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用 Visual c# 来调试一个大型 c# 项目。项目很大,只有部分pdb是我自己搭建的。我可以构建所有的 pdb,但它非常耗时。我正在调试回溯,但部分跟踪标有 [外部代码]。我知道缺少一些 pdb,但我怎么知道外部代码驻留在哪个 DLL 中?在 CI 中可以获取 EIP,然后查看过程映射以确定 EIP 所在的位置,但是如何在 .Net 环境中完成呢?
进入工具 | 选项 | 调试 | 常规,并取消选中“仅启用我的代码”复选框。现在 Visual Studio 将显示完整的调用堆栈(至少对于托管代码,您仍然可能在其中看到一些“本地到托管转换”)。
因此,如果您的项目真的很大,那么我假设您的所有类都沿您的命名空间很好地共享,并且所有程序集都以其包含的命名空间命名。因此,如果查看您的外部代码从哪里开始(或结束),您应该找出调用从哪里开始(或到哪里)并确定缺少的程序集 pdb。