我能夠連接到遠程機器並進行調試並查看源代碼,但是當我設置一箇中斷點時,Visual Studio不會中斷它。使用Visual Studio進行遠程調試時可以設置斷點嗎?
那麼有什麼需要做的?
或者是在遠程調試時不能使用斷點?
我能夠連接到遠程機器並進行調試並查看源代碼,但是當我設置一箇中斷點時,Visual Studio不會中斷它。使用Visual Studio進行遠程調試時可以設置斷點嗎?
那麼有什麼需要做的?
或者是在遠程調試時不能使用斷點?
是的。在連接到遠程站點時,需要確保PDB(帶有行信息的調試信息)存在並加載到調試器中,因爲如果沒有它,調試器無法將源行與字節碼偏移相關聯,這是設置斷點所需的。
快速回答是是,但是有很多不同的事情可能會阻止斷點被觸發。很久以前,我貼這個清單作爲一個回答另一個問題,它可以幫助你現在:
Why does my C# debugger skip breakpoints?
特別檢查,看是否爲斷點的圖形是固體(表示斷點應,如果被擊中你到達它),或者如果斷點只是一個空的圓圈,旁邊有一個小驚歎號 - 如果你得到感嘆號,然後檢查你懸停在它上面的工具提示,它可能會告訴你問題是什麼。
最後,它完全有可能調試發佈版本,但是你需要確保當你建立你生產的符號 - 這些可以是在一個外部文件(.PDB),或有時它們可以嵌入到(雖然我自己從來沒有這樣做過)
是的,你可以。使用F9創建中斷點。要留意以下,而遠程調試的..
有兩個原因:遠程調試器不命中斷點
錯誤的符號。
在調試時使用錯誤的.Net框架(您可以在visual studio中的「attach to process」窗口中進行選擇)。
你說得對,它應該可以工作,但PDB不需要在遠程機器上。遠程調試監視器不需要訪問PDB。 PDB需要放在Visual Studio運行的機器上 - 它是Visual Studio,它使用PDB從源代碼行映射到地址,並將這些地址傳遞給遠程調試監視器。 – RichieHindle 2009-12-08 23:22:36
遠程構建必須是DEBUG構建還是可以構建爲RELEASE? – 2009-12-08 23:30:36
沒錯,那就是我想說的,但是輸入錯了。固定。我不明白爲什麼我會低調,因爲基本信息仍然正確。 – Lucero 2009-12-08 23:31:05