乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      netbeans調(diào)試程序的方法

       Ethan的博客 2011-01-03
      調(diào)試是檢查應(yīng)用程序是否存在錯(cuò)誤的過程。您可以使用以下方法進(jìn)行調(diào)試:在代碼中設(shè)置斷點(diǎn)和監(jiān)視,然后在調(diào)試器中運(yùn)行代碼。您還可以通過逐行執(zhí)行代碼并檢查應(yīng)用程序狀態(tài)來查找任何問題。

      IDE 使用 Sun Microsystems JPDA 調(diào)試器來調(diào)試程序。在啟動(dòng)調(diào)試會(huì)話時(shí),所有相關(guān)的調(diào)試器窗口都將自動(dòng)出現(xiàn)在屏幕的底部。您可以調(diào)試整個(gè)項(xiàng)目、任何可執(zhí)行類以及任何 JUnit 測(cè)試。IDE 還允許您通過將調(diào)試器連接到應(yīng)用程序進(jìn)程來調(diào)試在遠(yuǎn)程計(jì)算機(jī)上運(yùn)行的應(yīng)用程序。

      運(yùn)行或調(diào)試 Web 應(yīng)用程序、JSP 頁或 Servlet 時(shí),您可以使用 HTTP 監(jiān)視器來監(jiān)視數(shù)據(jù)流。缺省情況下,將出現(xiàn) HTTP 監(jiān)視器,該監(jiān)視器收集有關(guān) Servlet 引擎處理的 HTTP 請(qǐng)求的數(shù)據(jù)。對(duì)于引擎處理的每個(gè) HTTP 請(qǐng)求,監(jiān)視器都會(huì)記錄關(guān)于傳入請(qǐng)求的數(shù)據(jù)、保留在服務(wù)器上的數(shù)據(jù)狀態(tài)和 Servlet 上下文。您可以查看數(shù)據(jù)、為將來的會(huì)話存儲(chǔ)數(shù)據(jù)、重新顯示和編輯以前的請(qǐng)求。有關(guān) HTTP 監(jiān)視器的詳細(xì)信息,請(qǐng)?jiān)谥鞑藛沃羞x擇“幫助”>“幫助內(nèi)容”。

      對(duì)于自由格式項(xiàng)目,您必須為“調(diào)試項(xiàng)目”命令編寫一個(gè) Ant 目標(biāo)。您還可以編寫用于調(diào)試特定文件的目標(biāo),并將這些目標(biāo)映射到項(xiàng)目的命令。

      在此部分中,您將了解以下內(nèi)容:

      基本調(diào)試

      在此部分,我們將使用一個(gè)簡(jiǎn)單的示例來說明如何啟動(dòng)調(diào)試會(huì)話、如何以手動(dòng)方式逐步執(zhí)行代碼以及如何監(jiān)視變量和方法調(diào)用。我們將在后面的部分介紹更高級(jí)的功能,如設(shè)置斷點(diǎn)和監(jiān)視。

      此部分的示例是 Array Fill 應(yīng)用程序。此應(yīng)用程序非常簡(jiǎn)單。它將創(chuàng)建一個(gè) sampleBeans 數(shù)組,每個(gè) Bean 包含兩個(gè)屬性:firstNamelastName。然后,它將為每個(gè) Bean 的屬性賦值并輸出這些值。

      首先需要運(yùn)行該應(yīng)用程序以確定它是否會(huì)拋出任何異常。下載并提取 ArrayFill 示例的 .zip 歸檔文件 (。要在 IDE 中打開 ArrayFill 項(xiàng)目,請(qǐng)按 CTRL-Shift-O 組合鍵找到提取的 ArrayFill 文件夾,然后單擊“打開項(xiàng)目文件夾”。將在 IDE 中打開 ArrayFill 項(xiàng)目,并可在“項(xiàng)目”窗口中看到該項(xiàng)目的邏輯結(jié)構(gòu)。http://www./files/documents/4/446/ArrayFill.zip)

      在“項(xiàng)目”窗口中,展開“源包”下的 arrayfill 包。arrayfill 包包含兩個(gè)類:ArrayFillSampleBean。右鍵單擊 ArrayFill.java,然后按 Shift-F6 組合鍵執(zhí)行它。在“輸出”窗口中出現(xiàn)的輸出應(yīng)該與如下所示類似:

      java.lang.NullPointerException
      at arrayfill.ArrayFill.loadNames(arrayFill.java:27)
      at arrayfill.ArrayFill.main(ArrayFill.java:34)
      Exception in thread "main"
      Java Result: 1

      啟動(dòng)調(diào)試會(huì)話

      在 IDE 中啟動(dòng)調(diào)試會(huì)話時(shí),IDE 將編譯所調(diào)試的文件,在調(diào)試模式下運(yùn)行它們,并在調(diào)試器窗口中顯示調(diào)試器輸出。要啟動(dòng)調(diào)試會(huì)話,請(qǐng)選擇要調(diào)試的文件,然后從“運(yùn)行”菜單中選擇以下某個(gè)命令:

      • 調(diào)試主項(xiàng)目 (F5)。運(yùn)行主項(xiàng)目,直至遇到第一個(gè)斷點(diǎn)。
      • 步入 (F7)。開始運(yùn)行主項(xiàng)目的主類,并在第一條可執(zhí)行語句處停止。
      • 運(yùn)行至光標(biāo) (F4)。啟動(dòng)調(diào)試會(huì)話,使應(yīng)用程序運(yùn)行至源代碼編輯器中的光標(biāo)位置,然后暫停應(yīng)用程序。

      如果在 IDE 中打開了多個(gè)項(xiàng)目,請(qǐng)確保使用以下方法將 Array Fill 設(shè)置為主項(xiàng)目:在“項(xiàng)目”窗口中右鍵單擊 ArrayFill 節(jié)點(diǎn),然后從上下文菜單中選擇“設(shè)置主項(xiàng)目”。按 F7 鍵步入主項(xiàng)目的主類。如果未設(shè)置項(xiàng)目的主類,則 IDE 將提示您設(shè)置它。然后,IDE 將在源代碼編輯器中打開文件,顯示“輸出”窗口和調(diào)試器窗口,并剛好在 main 方法內(nèi)部停止。

      調(diào)試器窗口

      讓我們簡(jiǎn)單了解一下調(diào)試器窗口。調(diào)試器窗口在每次啟動(dòng)調(diào)試會(huì)話時(shí)自動(dòng)打開,并在完成會(huì)話時(shí)自動(dòng)關(guān)閉。缺省情況下,IDE 將打開三個(gè)調(diào)試器窗口:“局部變量”窗口、“監(jiān)視”窗口和“調(diào)用棧”窗口。

      屏幕快照:“局部變量”窗口位于前端的調(diào)試器窗口

      “局部變量”窗口位于前端的調(diào)試器窗口

      通過從“窗 口”>“調(diào)試”菜單中進(jìn)行選擇,可以打開其他調(diào)試器窗口。如果在調(diào)試會(huì)話過程中打開了調(diào)試器窗口,該窗口將在您完成會(huì)話后自動(dòng)關(guān)閉。如果在未啟動(dòng)調(diào) 試會(huì)話的情況下打開調(diào)試器窗口,該窗口將一直保持打開狀態(tài),直到您手動(dòng)關(guān)閉它。您可以通過將調(diào)試器窗口拖動(dòng)到所需位置來對(duì)其進(jìn)行排列。

      下表列出了調(diào)試器窗口。

      名稱

      快捷鍵

      描述

      局部變量

      Alt-Shift-1

      列出了當(dāng)前調(diào)用中的局部變量。

      監(jiān)視

      Alt-Shift-2

      列出了選擇在調(diào)試應(yīng)用程序時(shí)進(jìn)行監(jiān)視的所有變量和表達(dá)式。

      調(diào)用棧

      Alt-Shift-3

      列出了在當(dāng)前線程執(zhí)行期間執(zhí)行的調(diào)用序列。

      Alt-Shift-4

      顯示了由當(dāng)前所調(diào)試的進(jìn)程裝入的所有類的分層結(jié)構(gòu)。

      斷點(diǎn)

      Alt-Shift-5

      列出了當(dāng)前項(xiàng)目中的斷點(diǎn)。

      會(huì)話

      Alt-Shift-6

      列出了當(dāng)前在 IDE 中運(yùn)行的調(diào)試會(huì)話。

      線程

      Alt-Shift-7

      列出了當(dāng)前會(huì)話中的線程組。

      Alt-Shift-8

      列出了項(xiàng)目類路徑上的源目錄。通過在此處取消選擇類的源文件夾,可以設(shè)置是步入還是越過這些類。IDE 將自動(dòng)越過 JDK 類;如果要步入這些類,請(qǐng)?jiān)诖舜翱谥羞x擇 JDK 源。

      逐步執(zhí)行代碼

      可以使用“運(yùn)行”菜單中的以下命令來控制代碼在調(diào)試器中的執(zhí)行方式:

      • 越過 (F8)。執(zhí)行一行源代碼。如果源代碼行包含調(diào)用,則執(zhí)行整個(gè)例程而不逐步執(zhí)行單個(gè)指令。
      • 步入 (F7)。執(zhí)行一行源代碼。如果源代碼行包含調(diào)用,則會(huì)剛好在執(zhí)行例程的第一條語句之前停止。
      • 步出 (Alt-Shift-F7)。執(zhí)行一行源代碼。如果源代碼行是某個(gè)例程的一部分,則會(huì)執(zhí)行該例程的其余各行,然后將控制權(quán)返回給例程的調(diào)用者。
      • 暫停。暫停執(zhí)行應(yīng)用程序。
      • 繼續(xù) (Ctrl-F5)。繼續(xù)執(zhí)行應(yīng)用程序。應(yīng)用程序?qū)⒃谙乱粋€(gè)斷點(diǎn)處停止。
      • 運(yùn)行至光標(biāo) (F4)。將當(dāng)前會(huì)話運(yùn)行到源代碼編輯器中的光標(biāo)位置,并暫停應(yīng)用程序。

      在本示例中,使用 F7 鍵按一次一行的方式逐步執(zhí)行代碼。loadNames 調(diào)用中出現(xiàn) NullPointerException,因此在步入該調(diào)用時(shí),將在“局部變量”視圖中監(jiān)視 names 數(shù)組的值。每個(gè) Bean 都包含一個(gè) null 值。可以繼續(xù)逐步執(zhí)行 loadNames 方法 - names Bean 始終為 null。

      屏幕快照:在調(diào)試器中步入代碼

      在調(diào)試器中步入代碼

      此處的問題是,當(dāng)代碼行

      SampleBean[] myNames=new SampleBean[fnames.length];

      啟動(dòng)包含這些 Bean 的數(shù)組時(shí),它不會(huì)實(shí)例化 Bean 自身。必須添加以下代碼,在 loadNames 方法中實(shí)例化各個(gè) Bean:


      names=new SampleBean();

      使其位于 loadNames 方法中的行 names.setLastName(lnames); 之前。

      使用斷點(diǎn)

      大多數(shù)應(yīng)用程序都太大,從而無法逐行進(jìn)行檢查。通常,在您認(rèn)為會(huì)出現(xiàn)問題的位置設(shè)置一個(gè)斷點(diǎn),然后將應(yīng)用程序運(yùn)行到該位置。您還可以設(shè)置更為專用的斷點(diǎn)(如僅當(dāng)指定條件為 true 時(shí)停止執(zhí)行的條件斷點(diǎn))或適用于某些線程或方法的斷點(diǎn)。

      在此節(jié)中,我們將使用上一個(gè)示例中的 ArrayFill 類,因此必須將上面添加的代碼注釋掉以便重現(xiàn)錯(cuò)誤。

      設(shè)置斷點(diǎn)

      如果僅希望設(shè)置簡(jiǎn)單的行斷點(diǎn),則可以單擊所需行的左旁注處。在旁注中將會(huì)出現(xiàn)行斷點(diǎn)圖標(biāo) (斷點(diǎn)圖標(biāo))。再次單擊此行斷點(diǎn)可以將其刪除。

      屏幕快照:在源代碼編輯器中設(shè)置斷點(diǎn)

      在源代碼編輯器中設(shè)置斷點(diǎn)

      對(duì)于更復(fù)雜的斷點(diǎn),請(qǐng)使用“運(yùn)行”菜單中的“新建斷點(diǎn)”(Ctrl-Shift-F8) 命令。“新建斷點(diǎn)”對(duì)話框?qū)⑹鼓軌蜻x擇要?jiǎng)?chuàng)建的斷點(diǎn)類型并設(shè)置斷點(diǎn)選項(xiàng),如中斷條件或斷點(diǎn)輸出到“輸出”窗口的信息。

      設(shè)置斷點(diǎn)條件

      僅當(dāng)指定的布爾表達(dá)式為 true 時(shí),條件斷點(diǎn)才停止執(zhí)行。如果要設(shè)置條件斷點(diǎn),請(qǐng)打開“新建斷點(diǎn)”對(duì)話框,然后在“條件”字段中輸入表達(dá)式。

      例如,打開 ArrayFill.java,在 main 方法的 loadNames 方法調(diào)用中設(shè)置插入點(diǎn),然后按 Ctrl-Shift-F8 組合鍵。在該對(duì)話框的“條件”字段中輸入 names!=null 并單擊“確定”。然后按 F5 鍵開始調(diào)試項(xiàng)目。此時(shí)會(huì)在 loadNames 方法內(nèi)中斷程序的執(zhí)行。

      定制斷點(diǎn)輸出

      在“新建斷點(diǎn)”對(duì)話框中,您還可以指定到達(dá)斷點(diǎn)時(shí)打印的信息。請(qǐng)?jiān)趯?duì)話框底部的“打印文本”字段中輸入任何消息。您可以使用變量引用要顯示的某些類型的信息。

      斷點(diǎn)類型

      下表列出了可用的不同斷點(diǎn)類型。

      類型

      描述

      可以在到達(dá)行時(shí)或在行中的元素滿足某些條件時(shí)中斷執(zhí)行。

      方法

      如果在方法名稱上設(shè)置了斷點(diǎn),則在每次執(zhí)行該方法時(shí)都會(huì)停止執(zhí)行應(yīng)用程序。

      異常

      具有多個(gè)用于設(shè)置異常斷點(diǎn)的選項(xiàng)。在捕獲到特定異常、源代碼中未處理特定異?;蛴龅饺魏萎惓#o論應(yīng)用程序是否處理錯(cuò)誤)時(shí)都可以中斷執(zhí)行應(yīng)用程序。

      變量

      可以在訪問(例如,將變量作為參數(shù)來調(diào)用方法)或修改特定類和字段中的變量時(shí)停止應(yīng)用程序的執(zhí)行。

      線程

      可以在啟動(dòng)和/或停止線程時(shí)中斷執(zhí)行應(yīng)用程序。

      如果設(shè)置了類斷點(diǎn),則可以在將類裝入虛擬機(jī)和/或從虛擬機(jī)中卸載類時(shí)停止調(diào)試器。

      設(shè)置監(jiān)視

      通過使用監(jiān)視,可以在應(yīng)用程序執(zhí)行期間跟蹤變量或表達(dá)式值的變化。要設(shè)置監(jiān)視,請(qǐng)?jiān)谠创a編輯器中選擇要設(shè)置監(jiān)視的變量或表達(dá)式,然后單擊鼠標(biāo)右鍵并選擇“新建監(jiān)視”(Ctrl-Shift-F7)。

      您還可以在“監(jiān)視”視圖中創(chuàng)建固定監(jiān)視。常規(guī)監(jiān)視描述的是變量的內(nèi)容,而固定監(jiān)視描述的則是當(dāng)前為變量指定的對(duì)象。要?jiǎng)?chuàng)建固定監(jiān)視,請(qǐng)右鍵單擊“局部變量”或“監(jiān)視”視圖中的任意項(xiàng),然后選擇“創(chuàng)建固定監(jiān)視”。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多