我正在使用 Roslyn 和 MDbg 进行代码编辑器的调试。
在编辑器中,我的目标是设置断点的类似 Visual Studio 的行为。也就是说,用户可以点击一条线,我需要弄清楚
- 那是我可以实际设置断点的源位置吗?
- 如果是,应该在哪一行设置断点?
例如,假设用户有一个像这样的文档:
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 可能有一些有用的辅助方法,但我在它与断点相关的源代码中没有找到太多
再说一遍,我认为的基本问题归结为弄清楚
- 代码中的某一行是我可以实际设置断点的位置吗?
- 如果是,应该在哪一行设置断点?
谢谢!