Roslyn:给定源位置/行,如何确定是否可以设置断点以及设置断点的位置



我正在使用Roslyn和MDbg进行调试的代码编辑器。

在编辑器中,我的目标是使用类似可视化工作室的行为来设置断点。也就是说,用户可以单击一行,我需要弄清楚

  1. 这是我可以实际设置断点的源位置吗?,以及
  2. 如果是,应在哪一行设置断点?

例如,假设用户有一个文档,例如:

line 01:  using System;
line 02: 
line 03:  public class SomeClass
line 04:  {
line 05:   public string someMethod()
line 06:   {
line 07:     return @"
line 08:       abcdefg
line 09:     ";
line 10:   }
line 11:  }

单击第 1 行时,应该什么都不会发生 - 无法真正在 using 语句上设置断点。

单击第 3 行时,它应在第 4 行设置断点(不能在方法定义本身上设置断点,而是在方法执行开始的开始大括号标记处设置断点)。

单击第 7、8 或 9 行时,它应该在第 7 行设置一个断点,因为这个东西只是一个语句。

老实说,目前我什至不知道如何处理这个问题。 有人会有任何指示如何在概念上解决这个问题吗? 我希望 Roslyn 可能有一些有用的帮助程序方法,但我在其源代码中没有找到太多与断点相关的内容

重复一遍,我认为基本问题归结为弄清楚

  1. 代码中的某一行是我实际可以设置断点的位置吗?,以及
  2. 如果是,应在哪一行设置断点?

谢谢!

如评论中所述,这完全符合您的需求:http://sourceroslyn.io/#Microsoft.VisualStudio.LanguageServices.CSharp/Debugging/CSharpBreakpointResolutionService.cs,6a9951745157788a

相关内容

  • 没有找到相关文章

最新更新