2009-10-01 147 views
7

這究竟是什麼原因引起的......visual studio 2008瘋狂調試器跳過!

我正在開發我的C#3.5 ASP.NET MVC web應用程序,就像我每天都在做一樣。沒有做任何高明,只是類調用其他方法的標準方法...

我建我的項目,啓動在Chrome瀏覽器的URL,並獲得我期待的迴應。我將調試器附加到w3wp.exe,在Chrome中設置斷點和f5。調試器就像我期望的那樣在斷點處停止....

我點擊f11以逐步執行代碼,它將移動到下一行/部分行,執行幾次,它將隨機跳過到執行路徑中的任意一行!!!

它跳到該行是將被執行的線,它不跳過任何舊線,它只是決定錯過了一大堆線在??之間!

我從來沒有見過這個,到底如何做我調試這是怎麼回事???

有一段時間我想也許鉻是使兩個請求,和心不是真的跳過調試器,它只是請求的線程之間交換使它看起來像它一下蹦,但那不是吧!如果我在每一行設置斷點我可以部分地防止,但採取以下:

1. public string Method() 
2. { 
3.  string s; 
4.  s = OtherMethod(); 
5.  return s; 
6. 
7. } 

行爲即時看到的類型(與上述每一行一個斷點)是1,2,3,4- ,5,6,7(即它不會步入OtherMethod();

即時看到的其他行爲是1,2,3,然後這就是它,返回到所謂的Method()或甚至更遠的地方:s

謝謝

+0

調試/釋放? ____ – EFraim 2009-10-01 19:04:39

+0

debug mode______ – 2009-10-01 19:05:53

回答

6

您是否嘗試過清理你的解決方案?
- (項目文件夾中的bin和obj文件夾)

從臨時asp.net文件文件夾中刪除文件?

  • (通常爲C:\ windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP。NET文件)
  • 你可能需要在命令提示符下運行「IISRESET /停止」,然後再與IISRESET重新啓用/啓動
+0

wheres那個位置? – 2009-10-01 19:17:12

+0

做這一切,Atom的建議似乎已經修復它,謝謝 – 2009-10-01 19:34:53

+0

標記爲答案? – Sameer 2009-10-06 16:02:07

0

聽起來就像你試圖穿過一個已經優化的二進制文件。優化可以做很多事情,使人們很難調試,包括但不限於:

  • 重新排序報表
  • 內聯函數
2

不知道這會有所幫助。在相關程序集中的編譯代碼與調試器認爲的不匹配之前,我遇到了問題。我總是解決這個問題的方式是先關閉VS,然後重新啓動並重新加載項目,然後重新完成解決方案。然後將構建模式從debug-> release或release-> debug更改,然後重新進行最後一次重建。我真的從來沒有想過是什麼原因造成的。只有偶爾發生。

+0

這樣做和Jeff的建議似乎已經修好了,謝謝 – 2009-10-01 19:31:15

0

我見過類似的東西在2.0的時候,不確保我的瀏覽器緩存清除。

0

打開反彙編程序,看看你的腳步是否更有意義。如果你確定你沒有在線程之間跳躍,那麼編譯器可能已經決定你的一些代碼不夠重要(即不做任何事情)。