国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

Java調試教程--使用Jikes進行調試

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

  摘要

  在本練習中,我們將調試 LinkTree.java 程序。其實代碼并沒有錯誤;然而我們完成調試過程只是為了把握這個過程。


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



  Java調試教程--使用Jikes進行調試(上)

  SUN Laura Bennett

  啟動 JD

  在本練習中,我們將調試 LinkTree.java 程序。其實代碼并沒有錯誤;然而我們完成調試過程只是為了把握這個過程。

  開始調試

  首先使用以下命令編譯程序:


javac -g LinkTree.java



  該命令將執行:


e:jdk1.1.6injava -verbose -nojit
-classpath %JD%;%JDK% jd.Main
-classpath %JD%;%JDK%;%CLASSPATH%
-sourcepath e:jikes %1 %2 %3 %4 %5 %6 %7 %8 %9



  調試器啟動并裝入 LinkTree 類,它包含了 main() 方法,安裝它以便調試。可以通過在命令 jd 后的命令行上輸入參數(如 URL,用于開始打印頁面鏈接)來傳遞這些參數。

  使用 Console 面板

  Console 面板顯示了所有運行時異常。所有錯誤流都打印到這里。當應用程序請求時,您也可以在這里輸入輸入信息。文本信息都打印到 Console 面板。

  在 Source editor 面板中逐行單步調試

  讓我們開始調試應用程序,使用的方法是逐行單步調試應用程序。從菜單或使用鼠標右鍵選擇 Step Into。步入程序將通知調試器開始執行當前源碼。始終從應用程序中的main() 方法開始執行。現在應該看到其它填充了信息的面板。我們將提供關于每個面板的討論和如何使用每個面板的描述。通過單擊窗口的右下方的 Step Over 按鈕,逐行單步調試代碼。將以白色突出顯示當前行。不幸的是,不能在左邊看到行號,所以我們將在內容中指出行號。下圖中顯示了用于單步調試的按鈕。假如將鼠標放在任何一個按鈕上,將出現一個彈出框,說明該按鈕的功能。Stepping into 單步進入方法。Stepping Over 轉到同一個方法中的下一個語句。Stepping Out 返回到當前方法的調用程序。Run 按鈕一直運行到下一個斷點或程序結束。

  在 Source editor 面板中設置斷點

  在某一行代碼上單擊鼠標左鍵來設置斷點。您將看到在所選擇行的左邊有一個紅色圓圈,當中有一個贊嘆號。設置斷點時,代碼將運行到用斷點符號標記的那行。假設您正在嘗試觀察一段特定代碼,而這段代碼很深,以至于逐行單步調試需要很長時間。解決方案是在希望程序停止的位置設置斷點。

  本例中,讓我們設置斷點來監控 links 的值。假如此時應用程序正在調試器中運行,單擊 Stop 按鈕以終止執行。應用程序終止后,轉至應用程序的源代碼并用鼠標左鍵單擊


Vector links = new Vector(); 語句(在以下代碼樣本中以粗體字顯示)。
// Recursive method to list all urls in site
PRivate void listAll( int depth )
{
Vector links = new Vector();
{
printURL( depth );
//links = parseHtmlContainsLinks(getName());
}
if( !((links =
parseHTMLContainsLinks(getName())).isEmpty(
)))
{
//links = parseHTMLContainsLinks(getName());
for( int i = 0; i < links.size(); i++ )
{
if
(!(excludedURLS.contains((String)links.elementAt(
i))))
{
LinksTree child = new
LinksTree((String)links.ele
mentAt(i));
child.listAll( depth + 1 );
}
}
}
}

  Source 編輯器窗口將顯示帶有以下斷點的代碼。

  運行應用程序,并觀察它在包含斷點的那行停止。可以對代碼的運行情況執行更深入的分析。下一屏中,我們將討論檢查變量。請注重,檢查了變量之后,可以使用 Run 或Step Into 按鈕執行逐行單步調試或繼續完整的、不間斷的執行。

在 Locals 面板中檢查變量設置了斷點且應用程序暫停之后,Local 面板將顯示所有局部變量引用。以下示例中顯示了局部變量在應用程序中當前設置的斷點位置的狀態。可以看到,顯示每個局部變量的同時,還顯示其相關的類型和值。

  在 Callers 面板中查看調用堆棧調用堆棧是一個列表,它列出了在執行的斷點位置之前已經調用或執行過的類。最近調用或執行的方法在堆棧的頂部。從上往下數第二個元素發出了一個調用來執行最頂部的方法,依次類推。在以下示例中,從 main() 方法中調用了 listAll()。

  在 Threads 面板中檢查線程由于 Java 代碼是多線程,因此它必須能夠監控個別線程的進程。Threads 顯示了當前正在執行的線程的狀態。在我們的代碼中,只有一個線程。在更復雜的應用程序中,可能會看到在 thread 面板中列出了多個線程。

  在 Classes 面板中查看已裝入的類Classes 面板中列出了在執行程序時裝入的類。選擇那些類中的任何一個以在 Source 面板中查看代碼。請記住,假如沒有使用 -g 選項來編譯類,就無法查看源碼。

  完成實例研究

  您已經了解如何有效使用 Jikes 調試設施來追捕和查明錯誤。我們使用相當簡單的示例來演示了調試器。我們建議使用更復雜的 Applet 或應用程序來增加您使用調試器的經驗。

  請記住,Jikes是一個開放源碼調試器,所以我們希望您更新并增強它。最后,但也是相當重要的,請與開發者社區共享您的更改

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 酉阳| 封丘县| 普格县| 鹤壁市| 海口市| 丹巴县| 徐州市| 汶上县| 安泽县| 林口县| 庆阳市| 山阴县| 霍林郭勒市| 故城县| 朔州市| 札达县| 渝中区| 乌鲁木齐市| 库伦旗| 会宁县| 甘谷县| 四子王旗| 玉溪市| 宁安市| 都昌县| 阿克陶县| 封开县| 镇原县| 渝北区| 华池县| 泊头市| 黑山县| 礼泉县| 岚皋县| 商城县| 安平县| 乐清市| 越西县| 澄城县| 枣阳市| 天峨县|