2016-04-14 48 views
2

在Visual Studio 2015調試器中啓動Visual C++ ATL/WTL應用程序時,有時只要啓動調試,Visual Studio就會斷開一個不存在的斷點,經典例外窗口:Visual Studio在調試時隨機啓動時斷點

「Appname.exe已經命中一個斷點」
Break |取消|繼續

沒有其他信息提供有關例外。當我闖入,有時它說

沒有可用的源代碼

,而另外一些時候是

框架不是模塊

無論哪種方式,當我點擊「Show disassembly」,這是我看到的:

... 
77038EFD ?? ?? 
77038EFE ?? ?? 
77038EFF dec   dword ptr [ecx-76FBDBBCh] 
77038F05 pop   esp 
77038F06 and   al,8 
77038F08 jmp   [email protected] (77025D93h) 
77038F0D lea   ecx,[ecx] 
[email protected]: 
77038F10 mov   edx,esp 
77038F12 sysenter 
77038F14 lea   esp,[esp] 
77038F1B jmp   [email protected] (77038F20h) 
... 

它打破正是在

77038EFF dec   dword ptr [ecx-76FBDBBCh] 

如果我跨過去,步入或繼續,應用程序啓動並正常工作。

應用程序編譯時沒有優化,並且所有調試標誌都打開。 正如我在開始時所說的那樣,它有時只會發生,比方說1/3的時間。啓動之間的應用程序始終是相同的。

如果我在VS之外啓動了相同的應用程序,它可以正常工作。

有什麼想法可能會導致這種奇怪的行爲?

+0

嘗試刪除所有斷點,清理並重建項目。 – 2016-04-14 13:00:40

+0

@RawN完成,沒有區別 –

+0

你能看到哪個模塊處於斷點嗎?這可能是一些DLL得到加載到過程故障 – zeromus

回答

0

事實證明,這種奇怪的行爲似乎是通過啓用條件斷點觸發的。

即使斷點被禁用,行爲仍然保持,直到VS重新啓動。

+1

更多優質的微軟工程。 – Owl

相關問題