2016-04-22 95 views
7

我正在調試在Windows下使用MSVC編譯的C++程序。 我想調查與多線程相關的問題。所以我把ASSERT放入我的代碼中,當程序到達ASSERT時,它會顯示關於ASSERT(Standart [Abort],[Retry],[Ignore]窗口)的窗口,並建議在調試器中暫停程序。我按下[重試]按鈕並暫停程序。但是當我按下按鈕時,其他線程繼續執行。 所以問題是如何在程序到達某個點時立即停止該程序,以查看當時還有其他線程在做什麼?強制C++程序在Visual Studio調試器中暫停

回答

2

您可能需要設置一個條件斷點,而不是使用assert的:

breakpoint visual studio

2

如果你想這樣做編程,使用DebugBreak。 (C#有一個相當於api的System.Diagnostics.Debugger.Break)

如果你想從ide執行它,從msdn page你可以把一個斷點(或斷開所有的應用程序,ctrl + alt + B)從visual studio,然後使用線程窗口中的「凍結」和「解凍」控制線程執行。

+1

有時編譯器固有的__debugbreak()優於DebugBreak(這是一個kernel32導出),因爲當MS系統符號未加載到調試器時,內在依然可靠。 –

相關問題