哪些问题导致 Visual Studio 显示“此模块的调试信息中缺少源信息”?

Mas*_*ler 9 compiler-construction code-generation visual-studio pdb-files .net-core

我正在为 CLR 开发一个编译器,并且大部分情况下它都能工作。我正在尝试生成调试信息,并且可以让它在生成的程序集中创建一个嵌入式 PDB,其中所有调试元数据看起来都是正确的。当我加载程序集时,模块视图显示“符号已加载”。但我无法让调试器识别断点,如果我在代码中抛出异常,它会说:

来源不可用

该模块的调试信息中缺少源信息。

当我在 DotPeek 中查看程序集时,它并没有在程序集的主名称行上显示“调试”,这与使用调试信息构建的 C# 程序集的做法不同。但我不确定缺少什么。

什么会导致出现此错误?如果有人需要查看测试用例,这里有一个。

编辑:请阅读问题并记下标签。我在这里得到了几个不同的答案,它们是标准的“如何在正常情况下加载 PDB”答案。 这个问题与正常情况无关。 我正在构建编译器,它生成了不正确的 PDB。我需要一种方法来调试我自己生成的 PDB 代码的输出。