亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Java調試教程--客戶機端調試

2019-11-18 14:24:35
字體:
來源:轉載
供稿:網友

  摘要

  有許多調試技術可供選擇。請一定要檢查工具文檔以查看它是否支持這些技術。了解不同的調試技術有助于選擇符合您所有需要的調試器。


--------------------------------------------------------------------------------



  java調試教程(四)--客戶機端調試

  SUN Laura Bennett

  介紹客戶機端調試技術

  有許多調試技術可供選擇。請一定要檢查工具文檔以查看它是否支持這些技術。了解不同的調試技術有助于選擇符合您所有需要的調試器。

  使用 system.out.PRintln() 進行調試

  有必要提一下簡單化調試。假如有一小段代碼,應該使用 System.out.println(),不必浪費時間使用全功能調試器來裝入并單步調試這些代碼。在運行時期間,System.out.println() 會在控制臺或將輸出重定向到的位置上顯示消息、變量和狀態信息。所有對象都繼續了 toString() 方法。在開發新的對象時,覆蓋此方法并生成您自己的對象字符串表示法是個不錯的想法。

  Michael C. Daconta 的 Java Pitfalls(請參閱參考資料)共享了應用 println()方法的有用技術。Daconta 建議創建 DebugManager() 類,這個類答應您根據某些類或應用程序來設置一個調試標志。假如代碼中有許多 if(debug) 嵌套語句,那么可以使用DebugManager() 類作為代替。仍然可以選擇開始調試整個系統。

  一個示例方案就是答應您劃分單元和顯示背景的映射系統。在某些情況下,可能想查看只適用于 Plot Units 應用程序的調試語句,而在其它情況下,可能想要查看整個系統的調試。應該創建類似于下列代碼的 DebugManager() 類:


public class DebugManager
{
public static final String SYSTEM_DEBUG_KEY = "system.Debug";
public static final boolean debug;
static
{
debug = toBoolean(SYSTEM_DEBUG_KEY);
}
private static boolean toBoolean(String key)
{
String sDebug = System.getProperty(key);
if (sDebug != null && sDebug.equalsIgnoreCase("true"))
debug = true;
else
debug = false;
}
public static boolean getSystemDebug()
{
return debug;
}
public static boolean getSystemDebug(String applicationKey)
{
if (debug′ ′debugToBoolean(applicationkey))
return true;
else
return false;
}
}



  使用 system.out.println() 進行調試的練習

  使用上一屏中的代碼,應用程序會生成類似于以下的調用來查詢調試方式(“開”或“關”):boolean debug = DebugManager.getSystem.Debug(applicationkey);輸入以下命令行,對劃分工具或背景或者整個系統進行調試:


java -DplotTool.Debug=true -DbackgroundLoader.Debug=true
-Dsystem.Debug=false MapSystem



  以上的語句說明了對 plotTool 應用程序和背景顯示應用程序打開了調試,但對整個系統關閉了調試。每個應用程序的應用程序鍵是: plotTool ;應用程序密鑰是 plotTool.Debug;背景顯示程序應用程序鍵是 backgroundLoader.Debug;整個系統的應用程序鍵是 system.Debug。

  真正的代碼將封裝在 if(debug) 語句中。假如調試是真,則將執行封裝的代碼,然后打印 System.out.println() 方法的結果。

  總之,假如要調試少量代碼,只推薦使用 if(debug)。將 DebugManager() 創建成單獨的編譯類,以便在需要時能立即使用。

  使用注釋進行調試

  使用注釋是另一種調試方法。使用二分法搜索算法,開始時就注釋掉大部分代碼,然后縮?到錯誤重新出現。此時,就找到了出錯的位置。此外,建議不要在大規模的項目中使用二分法搜索算法。

  連接到正在運行的程序

  許多程序員使用連接到正在運行的進程的技術,作為遠程調試的替代技術,用于測試跨平臺兼容性??梢则炞C某個應用程序在不同的 JVM上是否正常運行。這種技術還可以讓您確保在另一個機器上有全部必需的系統資源。某些調試器可以讓您連接到多個 JVM,調試多層系統時,這樣做將變得價值連城。隨著一層變成活動的,調試器連接到它的 JVM,并開始徹底檢查它。

  將調試器連接到發生錯誤或故障的正在運行的程序或正在運行的 JVM。

  使用這種調試方法有兩個主要原因:

  預計程序中某個特定位置會有問題,但又不想單步調試程序或者設置斷點。

  正在開發或維護偶然會暫掛的程序,并且想要找出暫掛的原因。

  在這種情況下,可以連接調試器,并查找死循環或其它可能導致程序暫掛的問題。 正在連接的 JVM 必須正在以調試方式運行。它既可以是遠程系統,也可以是本地系統。源文件可以在任意一個系統上。

  遠程調試

  設想程序在另一個用戶的系統上運行與在您自己的系統上運行的運轉情況肯定會不同。從您的系統上,使用遠程調試功能來調試其它系統上的遠程程序。遠程調試要求在一個計算機上運行應用程序,并在另一個計算機上調試它。當調試復雜的GUI應用程序時,遠程調試會變得非常有用。調試設施本身的用法就象調試運行本地的代碼完全一樣。然而,設置和監控調試會話稍微復雜一些。請參考調試器文檔,以查看它是否支持遠程調試,以及如何設置環境。

  遠程調試的主要要求是訪問網絡機器。正在調試的類文件必須駐留在遠程機器上,并且已經編譯過以備調試。由于使用了 GUI 調試器,于是客戶機用戶界面在一個系統上運行,而調試引擎在另一個系統上運行。

  有兩種遠程調試:同類和異類。當本地和遠程系統都使用相同的操作系統時,將發生同類遠程調試。當本地和遠程系統使用不同的操作系統時,將發生異類遠程調試。

  為什么要使用遠程調試呢?

  當調試器用戶界面獨立于應用程序用戶界面時,易于調試使用圖形或有圖形用戶界面的應用程序。與應用程序的交互發生在遠程系統上,而與調試器的交互發生在本地系統上。已經針對一個平臺編譯了要調試的程序,而調試器用戶界面不在該平臺上運行??梢允褂眠h程調試功能在調試遠程應用程序時利用調試器用戶界面。

  按需求調試

  無論何時在程序中發生未處理的異?;虿豢杉m正的錯誤,按需求調試都可以讓您打開調試會話。調試器啟動,并連接到程序中發生故障的位置。這樣做可以節省時間,有兩種方法:不必重新創建錯誤,在碰到故障之前,程序可以全速運行而不會受到調試器的干擾。

  由于使用了按需求調試,可以找到并修復應用程序中的問題,讓應用程序繼續運行。

  優化代碼調試

  調試優化代碼有一點復雜,因為不能同時優化和調試代碼。有時,問題只在優化期間出現,從而指出存在邏輯錯誤。

  捕捉這些類型的錯誤的最佳方法是使用二分法搜索技術,如下所述:

  開始時,只優化一部分代碼,查看錯誤是否仍然存在。在每次更改優化模塊數量之后,假如錯誤仍然存在,則減少優化模塊的數量;假如錯誤消失了,則優化更多模塊。最后將錯誤范圍縮小到單個模塊或少數模塊。查找問題,如在變量被寫入之前讀取該變量,或超過存儲器范圍的數組下標。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩激情视频| 亚洲综合小说区| 欧美一区深夜视频| 久久国产精品久久久久久| 97色在线观看免费视频| 欧美高清视频免费观看| 亚洲天堂久久av| 91精品在线播放| 久久黄色av网站| 日韩在线观看成人| 久久99精品国产99久久6尤物| 欧美激情一级欧美精品| 日本一欧美一欧美一亚洲视频| 欧美一区二区三区精品电影| 国产美女精品免费电影| 日韩电视剧在线观看免费网站| 亚洲成人动漫在线播放| 欧美日韩国产黄| 国产做受高潮69| 久久久久久久久久国产精品| 国内精品久久久久久| 久久精品精品电影网| 国产91精品久久久久久久| 国产在线a不卡| 欧美一区二三区| 日日噜噜噜夜夜爽亚洲精品| 久久精品成人一区二区三区| 国产精品福利网站| 国产精品久久久久久久美男| 国产精品成人一区| 久久精品视频播放| 国产精品自在线| 久久97久久97精品免视看| 色777狠狠综合秋免鲁丝| 欧美成人自拍视频| 日韩精品在线视频| 亚洲一区av在线播放| 国产精品pans私拍| 欧美电影电视剧在线观看| 国产三级精品网站| 97在线精品国自产拍中文| 最新日韩中文字幕| 中文亚洲视频在线| 欧美精品国产精品日韩精品| 国产中文日韩欧美| 亚洲欧洲日产国产网站| 亚洲国产欧美一区| 777国产偷窥盗摄精品视频| 国产精品美女久久久久久免费| 亚洲理论在线a中文字幕| 国产成人福利夜色影视| 欧美视频在线视频| 国产精品久久久久久av下载红粉| 国产色婷婷国产综合在线理论片a| 欧美精品久久久久| 国产精品美女无圣光视频| 欧美极品少妇xxxxⅹ免费视频| 亚洲视频视频在线| 亚洲国产欧美久久| 国产91成人在在线播放| 欧美另类交人妖| 欧美大学生性色视频| 97在线看免费观看视频在线观看| 亚洲精品在线91| 日韩欧美综合在线视频| 日韩欧美在线看| 国产精品久久久久福利| 亚洲精品视频网上网址在线观看| 精品视频—区二区三区免费| 日韩欧美国产高清91| 国产成人中文字幕| 欧美精品免费在线| 亚洲国产日韩欧美在线动漫| 91在线视频精品| 成人精品久久一区二区三区| 国产精品青草久久久久福利99| 亚洲欧美日韩天堂一区二区| 欧美孕妇性xx| 亚洲片在线资源| 亚洲精品国产精品自产a区红杏吧| 成人网中文字幕| 91天堂在线观看| 久久精品99久久久久久久久| 最近更新的2019中文字幕| 欧美激情视频在线| 91精品国产乱码久久久久久久久| 久久91精品国产| 欧美午夜影院在线视频| 色久欧美在线视频观看| 91国产精品电影| 日韩一级黄色av| 亚洲国产精品推荐| 欧美日韩精品中文字幕| 精品久久久久久久久久ntr影视| 日韩小视频在线| 97久久超碰福利国产精品…| 粉嫩老牛aⅴ一区二区三区| 亚洲人线精品午夜| 精品露脸国产偷人在视频| 精品福利在线视频| 欧美在线视频观看免费网站| 午夜精品久久久久久久99热浪潮| 久久久久久国产精品久久| 91欧美视频网站| 欧美性理论片在线观看片免费| 日韩精品在线观看视频| 国产美女精品视频免费观看| 日韩av在线免费观看| 国产成人精品久久| 在线观看不卡av| 国产不卡精品视男人的天堂| 成人性教育视频在线观看| 伊人久久精品视频| 久久人91精品久久久久久不卡| 日韩高清a**址| 亚洲欧美国产视频| 美日韩精品免费观看视频| 亚洲精品www| 日韩av在线一区二区| 国产亚洲视频中文字幕视频| 久久久久久久国产精品视频| 亚洲xxx视频| 欧美一区亚洲一区| 欧美性xxxx极品hd满灌| 韩国精品美女www爽爽爽视频| 久久九九有精品国产23| 久久99精品国产99久久6尤物| 国产精品网站大全| 热99精品只有里视频精品| 亚洲高清av在线| 亚洲精品综合久久中文字幕| 国产精品高清网站| 亚洲人永久免费| 色妞在线综合亚洲欧美| 成人中心免费视频| 欧美俄罗斯乱妇| 久久成年人视频| 久久久久久久久91| 亚洲国产成人爱av在线播放| 国产精品久久久久久久久久东京| 国产精品尤物福利片在线观看| 久久久久久久网站| 97久久精品人人澡人人爽缅北| 成人国产精品一区二区| 久久人人爽人人爽人人片亚洲| 亚洲精品97久久| 亚洲iv一区二区三区| 成人精品aaaa网站| 中文精品99久久国产香蕉| 久久国产加勒比精品无码| 亚洲综合中文字幕在线观看| 日韩欧美在线第一页| 懂色av中文一区二区三区天美| 欧美日韩在线视频一区二区| 欧美精品少妇videofree| 亚洲第一福利网| 欧美在线视频在线播放完整版免费观看| 成人激情春色网| 国产精品久久久久久久av大片| 国产欧美日韩丝袜精品一区| 亚洲天堂av在线免费观看| 久久久久久国产| 国产精品人成电影在线观看| 亚洲曰本av电影|