Roslyn: 给定一个源的位置线,如何确定是否可以设置断点,以及在哪里设置断点。

问题描述 投票:2回答:1

我正在使用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. 如果是,断点应该设置在哪一行?

谢谢!我正在使用Roslyn和MDbg调试代码编辑器。

c# debugging roslyn mdbg
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.