2012-10-31 104 views
2

並行處理是它的背景或任務在調試時會跳過。我最終在每一行添加了一個斷點。有沒有一種方法可以只執行任務,並在開始時放置一個斷點?步驟調試並行

回答

5

在調試器中暫停時,可以使用「線程」窗口更好地控制上下文切換。你可以右鍵單擊一個線程並選擇Freeze。這將阻止調試器在您逐步完成代碼時切換到該線程。您也可以按住Shift鍵選擇多個線程並將其全部凍結。如果你凍結了所有線程,而不是你正在步進的線程,那麼你可以不受其他處理的阻礙。

這有點尷尬,但您也可以通過明確解凍一個線程,然後強制活動線程在您想要測試的特定點上進行更改(使用「切換到線程」)來調查某些類型的競爭條件。這不會複製所有類型的線程同步問題(有些更加微妙,處理單獨CPU上的內存緩存等),但是您可以看到備用執行順序的效果(例如某些死鎖場景。)