2017-05-26 34 views
2

我正在使用Roslyn編寫代碼編輯器,並且正在調試MDbg。Roslyn:給出一個源位置/行,如何確定是否可以設置斷點?

在編輯器中,我的目標是設置類似於視覺工作室的行爲來設置斷點。也就是說,用戶可以點擊一條線,我需要弄清楚

  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行設置一個斷點,因爲這個事情只是一個語句。

說實話,目前我甚至沒有任何想法如何處理這個問題.. 有沒有人有任何指導如何從概念上解決這個問題? 我希望羅斯林可能有一些有用的輔助方法,但我沒有找到它的來源很大關係斷點

只是重複,基本的問題,我覺得可以歸結爲搞清楚

  1. 被代碼中的某一行是我可以實際設置斷點的位置?和
  2. 如果是,應在哪一行設置斷點?

謝謝!

+0

這似乎做的正是你需要的東西:http://source.roslyn.io/#Microsoft.VisualStudio.LanguageServices.CSharp/Debugging /CSharpBreakpointResolutionService.cs,6a9951745157788a – Tamas

+0

令人驚歎!絕對是,謝謝!隨意發佈這個答覆,我會將其標記爲答案 – Bogey

回答

相關問題