2014-05-16 106 views
0

我有一個C#程序,其中調試程序在斷點方面具有非常特殊的行爲。Visual Studio 2010 C#調試器不會在新斷點上停止

  1. 如果我在「開始調試」時已經設置了斷點,那麼調試器停在斷點處。

  2. 如果我在程序運行時添加斷點,調試器將不會停在任何這些斷點處。但是,調試器將繼續停止在我啓動程序時已經設置的斷點處。爲了讓新斷點正常工作,我必須停止該程序,然後重新啓動或分離,然後重新連接調試器。另外,如果我在程序運行時禁用斷點,然後重新啓用斷點,則調試程序不再停止在該斷點上。爲了讓斷點再次正常工作,我必須停止該程序,然後重新啓動或分離,然後重新連接調試器。

我不希望每次添加新的斷點時都不得不分離並重新連接調試器。有誰知道爲什麼會發生這種情況,以及如何使調試器正確停止在運行時添加的斷點?這對任何其他程序都不會發生。只有這1個程序有這個問題。對於我曾經調試過的所有其他程序,我可以在運行時設置斷點,並且調試程序不會出現任何問題。

我正在使用Visual Studio 2010 Service Pack 1和.NET Framework 4.但是,當我使用較舊版本的.NET框架時,問題也存在。

+0

您是否使用項目引用作爲程序集引用或驅動器上某個路徑的程序集? –

+0

我在同一個解決方案中同時引用了其他項目,並且還引用了驅動器上另一個路徑中的程序集。 – LVBen

+0

其他路徑上的程序集是否也已更改/重建/重新部署。或者你的一個項目意外地通過路徑而不是項目引用來引用程序集?這些通常是唯一不能正確調試的奇怪情況。 –

回答

0

我終於明白了問題所在。我們使用從我們的.DLL中去除信息的工具。使用這些'剝離'.DLL導致調試問題。

使用未剝離的.DLL使所有這些斷點問題消失!

1

清理您的解決方案並重新重建。它將解決問題

+0

並非所有的時間。有時您必須手動刪除bin文件夾中的所有內容。 – Nath

+0

@Nath我重建了整個解決方案數百次,問題依然存在。我只手動刪除了所有的bin文件夾和其他輸出目錄,但這也沒有任何影響。 – LVBen

0

您的源代碼和程序集可能不同步 - 重新構建應用程序並重試。 PS:奇怪的是,我聽說了很多有關VS2010的這個問題:D

編輯:如果您使用某種如果dll,也許你不需要調試符號(「pdb」文件)在與dll相同的文件夾。

+0

我重新構建了整個解決方案多次,並且對此問題沒有影響。 – LVBen

相關問題