如果我斷點多線程應用程序,會發生什麼情況。斷點多線程應用程序
它會停止所有的線程,只是一個斷點指向或整個程序崩潰?
如果有可能我只想停止一個線程,或者這會弄亂我的應用程序?
如果我不能斷點多胎面應用程序什麼是我可用的調試技術?
如果我斷點多線程應用程序,會發生什麼情況。斷點多線程應用程序
它會停止所有的線程,只是一個斷點指向或整個程序崩潰?
如果有可能我只想停止一個線程,或者這會弄亂我的應用程序?
如果我不能斷點多胎面應用程序什麼是我可用的調試技術?
它停止所有線程。
通常不可能停止一個線程。有關使用GDB調試線程的更多信息,請參閱本手冊的this part。
既然你沒有用特定的語言/平臺標記你的問題,我會給出一個Java相關的答案。
在大多數IDE中,您可以在斷點上設置屬性,特別是條件屬性。所以,如果你知道你的線程的名稱,你可以做這樣的事情:
"ThreadName".equals(Thread.currentThread().getName())
...並利用同一類(在其中設置斷點)所有其他線程將繼續暢通無阻。
在intellij中,至少,你也可以檢查選項「只停止這個線程,而不是所有」 – yshavit 2012-03-15 16:10:15
JAVA:就個人經驗而言,您可以通過停止所有線程或單個線程來調試多線程應用程序。這很可能會取決於您所使用的IDE,並且要連接到什麼應用程序,但對我來說它:
放置一個斷點在代碼中,轉到Eclipse的調試視角(有時會暫停但不切換透視圖)
在斷點窗口中,您將看到一個斷點列表。每一個你可以右鍵單擊並設置屬性...如果你想停止一個斷點上的所有線程,點擊Suspend VM單選按鈕。如果您只想停止單個線程,請單擊掛起線程。
我不確定您現在能否選擇使用單線程停止選項時要暫停的線程。在掛起虛擬機,你可以看看調試窗格,並看到你的線程...向下滾動,你可以在線程之間跳轉(守護線程10 vs守護線程9,類似的東西)
它會重新啓動所有線程if我繼續 ? – Skeith 2011-04-28 12:14:49
在某些情況下,您可以重新啓動所有線程,或者只是一個線程。 – James 2011-04-28 12:15:18