我有一個基本問題。我正在調試應用程序,編輯器在一個時間點顯示20個線程。該控件有一個線程已經觸發了一個斷點。剩餘的19個線程是否會按照他們各自的指令進行維持,直到時間控制在第一個線程?或者,當我調試第一個線程時,其他線程可能會竊取一些執行?調試一個線程阻止其他線程?
回答
如果您詢問有關Visual Studio ...當它遇到斷點時,所有線程都暫停。但是,當您逐步完成代碼時,即使您打算調試單個線程,其他線程也有機會運行,這是默認行爲。
但是,您可以凍結線程窗口中的各個線程,右鍵單擊一個線程以查看上下文菜單。然後,當您逐步完成代碼時,「凍結」線程不會運行。
+1爲目前爲止的最佳答案,尤其是。有關特定IDE的資格。當遇到BP時,Eclipse/Java不會掛起其他線程。 –
感謝您的回覆和+1。當其他(解凍)線程在您逐步執行代碼時運行時,控件是否會返回到同一個位置,以便您可以重新開始執行?我使用Visual Studio2008,有時使用gdb。 gdb中的行爲與Visual Studio不同嗎?語言是C++。 –
關於VS2008,是的,當你單步執行代碼時,所有解凍的線程得到運行的一次機會,它們得到多少時間,以及它們是否實際運行,都由OS調度器決定。從應用程序運行到下一個斷點被觸發爲止的「瞬間」,或者直到當前行結束執行,如果單步執行一行代碼。不幸的是,我對gdb一無所知。 –
時。
的中斷調試過程通常暫停所有線程被掛起,所以所有線程被掛起。
- 1. C#ThreadPool一個線程阻塞其他?
- 2. ReentrantLock.lock()不會阻止其他線程
- 3. ActiveMQ OnMessage()方法阻止其他線程
- 4. 線程安全CXF調用是否阻止其他調用?
- 5. 從其他線程停止線程
- 6. 回調阻止線程
- 7. Apache Tomcat在Eclipse調試期間阻塞其他線程?
- 8. 如何在Eclipse中調試時阻止其他線程竊取焦點?
- 9. 從其他線程回調
- 10. 線程只阻塞第一個線程
- 11. 當一個線程被阻塞時,其他線程會發生什麼?
- 12. Java線程 - 等待返回的數據,但不會阻止其他線程
- 13. 如何阻止主線程,直到所有其他線程完成執行?
- 14. IO操作在其他線程中阻塞我的UI線程?
- 15. sem_wait上的線程阻塞導致其他線程掛起
- 16. Haskell Gtk:mainGUI函數阻塞其他線程
- 17. Socket select()阻塞其他UI線程
- 18. 阻止一個線程上的多個MessageBox而不會阻止
- 19. 調試多線程C#代碼:是否有可能闖入一個線程並保持其他線程運行?
- 20. SendBroadcast阻止來自ThreadPool的線程調用線程
- 21. 如何「嘗試啓動」從其他多個線程一個線程,JAVA
- 22. 阻止QApplication :: exec阻止主線程
- 23. 阻止程序終止的線程
- 24. Android ::在主線程中執行其他任務之前阻止主線程完成主線程
- 25. 從其他線程中阻止或吞嚥擊鍵
- 26. 同步方法不會阻止其他線程
- 27. 原子操作會阻止其他線程嗎?
- 28. C#阻止從其他線程訪問所有對象方法
- 29. 免費()阻止其他線程,系統減速
- 30. 阻止阻塞的線程阻塞
您可以添加一種語言並使用您的使用 – Manuel
它取決於調試器的類型和正在使用的調試環境,但通常的答案是肯定的,其他線程將被暫停。 –
哪個調試器? gdb? devenv? ... – VGE