天天看點

測試并發應用(七)配置Eclipse來調試并發代碼

當今,幾乎全部的程式員,不管使用什麼程式語言,都會用ide來建立應用。在相同的應用裡,他們提供了很多有趣的功能來整合,例如:

任務管理

自動生成代碼

自動生成文檔

與版本控制系統內建

debugger測試應用

建立不同類型的應用和項目

ide最有用的特點其一就是debugger。你可以一步一步的執行你的應用并分析你的程式中全部對象和變量的值。

如果你使用 java 程式設計語言,那麼 eclipse 是最普遍的 ide 之一。它有一個内置調試器(integrated debugger)允許你測試你的應用。預設情況,等你試調并發應用,debugger 找到斷點( breakpoint), 它隻是把有斷點(breakpoint)的線程停止,其他的線程都繼續他們的運作。

在這個指南,你将學習如何改變配置來幫助測試并發應用。

準備

你必須安裝好 eclipse ide。打開并選擇一個實作的并發應用,例如,任何在這本書中實作的指南。

怎麼做呢…

按照這些步驟來實作下面的例子::

1. 選擇菜單選項 window | preferences。

2. 在菜單的左手邊,擴充 java 選項。

3. 在菜單的左手邊,選擇 debug 選項。以下的截圖展示了視窗的樣子:

測試并發應用(七)配置Eclipse來調試并發代碼

4. 改變 default suspend policy 的值,為了 new breakpoints 把 suspend thread 改成 suspend vm (在截圖中用紅色标記了)。

5. 單擊 ok 按鈕來确定修改。

它是如何工作的…

像我們在這個指南介紹裡提到的,預設情況,當你用eclipse調試并發java 應用,調試過程會尋找斷點,它隻暫停最先碰到這個斷點的線程,其他線程将繼續他們的運作。

以下裁圖展示了例子的情況:

測試并發應用(七)配置Eclipse來調試并發代碼

你可以發現隻有 worker-21 被暫停了(在截圖中用紅色标記),而其他線程還在繼續運作。但是,如果你改變 default suspend policy 到 suspend vm,來獲得新的breakpoints,全部線程暫停他們的運作,當你正在debuggging 并發應用,然後試調過程碰到了斷點。 以下截圖展示了例子的情況:

測試并發應用(七)配置Eclipse來調試并發代碼

有了這些改變,你可以發現全部的線程都被暫停了。你可以繼續任何你想debugging的線程。選擇最适合你需求的暫停方法。 

繼續閱讀