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

时间:2017-05-26 09:27:27

标签: c# debugging roslyn mdbg

我正在使用Roslyn编写代码编辑器,并且用于调试MDbg。

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

  1. 这是我可以实际设置断点的源位置吗?和
  2. 如果是,那么应该在哪一行设置断点?
  3. 例如,假设用户有一个类似的文档:

    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行设置一个断点,因为这只是一个声明。

    说实话,目前我甚至没有任何想法如何处理这个问题。 任何人都有任何指针如何在概念上接近这个? 我希望罗斯林可能有一些有用的助手方法,但我在源头上找不到与断点有关的内容

    重复一下,我认为基本问题归结为找出

    1. 是代码中的某一行,我可以在哪个位置实际设置断点?和
    2. 如果是,那么应该在哪一行设置断点?
    3. 谢谢!

1 个答案:

答案 0 :(得分:3)