调试使用catch..when时未加载的符号

时间:2016-10-28 17:30:48

标签: c# visual-studio-2015 c#-6.0

我有一个C#方法,其中包含如下代码:

try
{
  // Do whatever
}
catch (Exception2 ex)
{
  // Handle exception 1
}
catch (Exception2 ex)
{
  // Handle exception 1
}
catch (Exception3 ex)
{
  // Handle exception 3
}

当我尝试调试它时,我可以正常放置断点。但是,当其中一个catch语句使用when关键字时,例如:

catch (ArgumentOutOfRangeException ex) when (ex.Message.StartsWith("Whatever message"))

没有为该方法加载调试符号,我无法让调试器在其中进行分解。方法内的断点显示如下:

No debugging symbols loaded for method

知道为什么会这样吗?我正在使用VS2015 Update 3.

更新:其中一条评论要求我显示更多代码,但我最终将代码简化为以下内容:

using (var model = ContentInventoryModel.Create())
{
  try
  {
    Console.WriteLine("test");
  }
  catch (ArgumentOutOfRangeException ex) when (ex.Message.Contains("This email group can"))
  {
  }
}

使用此代码,不会为该方法生成任何符号,因此我不能在Console.WriteLine语句中设置断点。当我删除keyword时,会生成符号,我可以在Console.WriteLine语句处设置断点。

值得一提的是,我正在通过ReSharper的NUnit Test Runner进行调试。

0 个答案:

没有答案