測試併發應用(七)配置Eclipse來除錯併發程式碼
宣告:本文是《 Java 7 Concurrency Cookbook 》的第八章, 作者: Javier Fernández González 譯者:鄭玉婷 校對:方騰飛
配置Eclipse來除錯併發程式碼
當今,幾乎全部的程式設計師,不管使用什麼程式語言,都會用IDE來建立應用。在相同的應用裡,他們提供了很多有趣的功能來整合,例如:
- 任務管理
- 自動生成程式碼
- 自動生成文件
- 與版本控制系統整合
- debugger測試應用
- 建立不同型別的應用和專案
IDE最有用的特點其一就是debugger。你可以一步一步的執行你的應用並分析你的程式中全部物件和變數的值。
如果你使用 Java 程式語言,那麼 Eclipse 是最普遍的 IDE 之一。它有一個內建偵錯程式(integrated debugger)允許你測試你的應用。預設情況,等你試調併發應用,debugger 找到斷點( breakpoint), 它只是把有斷點(breakpoint)的執行緒停止,其他的執行緒都繼續他們的執行。
在這個指南,你將學習如何改變配置來幫助測試併發應用。
準備
你必須安裝好 Eclipse IDE。開啟並選擇一個實現的併發應用,例如,任何在這本書中實現的指南。
怎麼做呢…
按照這些步驟來實現下面的例子::
1. 選擇選單選項 Window | Preferences。
2. 在選單的左手邊,擴充套件 Java 選項。
3. 在選單的左手邊,選擇 Debug 選項。以下的截圖展示了視窗的樣子:
4. 改變 Default suspend policy 的值,為了 new breakpoints 把 Suspend Thread 改成 Suspend VM (在截圖中用紅色標記了)。
5. 單擊 OK 按鈕來確定修改。
它是如何工作的…
像我們在這個指南介紹裡提到的,預設情況,當你用Eclipse除錯併發Java 應用,除錯過程會尋找斷點,它只暫停最先碰到這個斷點的執行緒,其他執行緒將繼續他們的執行。
以下裁圖展示了例子的情況:
你可以發現只有 worker-21 被暫停了(在截圖中用紅色標記),而其他執行緒還在繼續執行。但是,如果你改變 Default suspend policy 到 Suspend VM,來獲得新的breakpoints,全部執行緒暫停他們的執行,當你正在debuggging 併發應用,然後試調過程碰到了斷點。 以下截圖展示了例子的情況:
有了這些改變,你可以發現全部的執行緒都被暫停了。你可以繼續任何你想debugging的執行緒。選擇最適合你需求的暫停方法。