新聞中心
如何實現(xiàn)遠程調(diào)試java代碼
1. 遠程debug調(diào)試java代碼
目前創(chuàng)新互聯(lián)已為1000多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機、網(wǎng)站托管運營、企業(yè)網(wǎng)站設(shè)計、綏寧網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
1.1 主動連接調(diào)試
首先需要遠程服務(wù)配置啟動腳本:
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"
如果是啟動jar包,指令:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 -jar test.jar
這里-Xdebug是通知JVM工作在DEBUG模式下,-Xrunjdwp是通知JVM使用(java debug wire protocol)來運行調(diào)試環(huán)境。
transport是監(jiān)聽Socket端口連接方式(也可以dt_shmem共享內(nèi)存方式,但限于windows機器,并且服務(wù)提供端和調(diào)試端只能位于同一臺機)。
server=y表示當(dāng)前是調(diào)試服務(wù)端,=n表示當(dāng)前是調(diào)試客戶端。suspend=n表示啟動時不中斷(如果啟動時中斷,一般用于調(diào)試啟動不了的問題)。
address=8000表示本地監(jiān)聽8000端口。
遠程服務(wù)(tomcat/jboss)啟動成功后,本地Eclipse對需要調(diào)試的地方打上斷點,
然后項目右鍵啟動遠程調(diào)試:Debug as-Debug Configurations-Remote Java Application。
Host為遠程主機IP,Port為遠程監(jiān)聽調(diào)試端口,Connection Type為:Standard(Socket Attach),
點擊Debug,然后打斷點,遠程服務(wù)運行到斷點處本地就會中斷,然后進行調(diào)試。
1.2 被動連接調(diào)試
首先需要Eclipse配置監(jiān)聽,如主動連接調(diào)試的Eclipse配置圖片,Connection Type選擇:
Standard(Socket Listen),配置本地監(jiān)聽端口,比如默認8000。點擊Debug開始等待遠程連接調(diào)試。
然后配置遠程服務(wù)啟動腳本:
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000,suspend=y"
如果是調(diào)試jar包,指令:
java -Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000,suspend=y -jar remoting-debug.jar
參數(shù)含義和主動連接調(diào)試一樣,只是這里suspend=y表示啟動時就中斷,需要連接本地IDE調(diào)試啟動。
address=ip:port,ip需要修改為本地的對外IP。
這樣遠程項目啟動時就連接到本地,方便調(diào)試項目啟動不了的問題。
java怎么調(diào)試代碼?
步驟:
1、在cmd中切換到編寫的代碼所保存的目錄下;
2、在cmd中輸入javac然后點空格,再點擊文件名和包括后綴名確定后,在存放編寫代碼的文件下會生成一個class的字節(jié)碼文件;
3、在cmd中輸入java然后點空格,輸入第二步中生成的字節(jié)碼的文件名,不需要后綴名,點擊確定即可運行代碼。
代碼就是程序員用開發(fā)工具所支持的語言寫出來的源文件,是一組由字符、符號或信號碼元以離散形式表示信息的明確的規(guī)則體系。計算機代碼稱為源代碼,是相對目標代碼和可執(zhí)行代碼而言的。 源代碼就是用匯編語言和高級語言寫出來的地代碼,目標代碼是指源代碼經(jīng)過編譯程序產(chǎn)生的能被cpu直接識別二進制代碼。
如何用MyEclipse 調(diào)試Java程序代碼
1、以一個1到100求累加和的小程序為例進行說明。程序代碼,第一步,雙擊各行左側(cè)對應(yīng)區(qū)域添加斷點。
2、根據(jù)程序代碼,設(shè)置預(yù)期的端點,設(shè)置完畢后,左側(cè)會出現(xiàn)圖標作為標記。
3、在代碼窗口任意位置右擊鼠標,先選擇Debug As,再選擇Java Application進入調(diào)試界面。
4、調(diào)試界面,點擊左上方窗口上的綠色三角箭頭按鈕開始調(diào)試,每點擊一下,程序運行一步,即從開始運行到第一個斷點,在從第一個斷點到第二個,依次進行。
5、右上方窗口顯示每一步運行后變量的值,可與預(yù)期結(jié)果進行比較,以便修改。左上方的紅色按鈕是終止調(diào)試鍵,按此可結(jié)束調(diào)試。圖中所示是程序運行幾步后的情況。
6、調(diào)試結(jié)束返回Java編碼窗口。點擊右上方表格形按鈕,選擇Java選項,即返回Java編碼窗口,。
java如何調(diào)試
最基本的操作是:
1, 首先在一個java文件中設(shè)斷點,然后運行,當(dāng)程序走到斷點處就會轉(zhuǎn)到debug視圖下,
2, F5鍵與F6鍵均為單步調(diào)試,F(xiàn)5是step into,也就是進入本行代碼中執(zhí)行,F(xiàn)6是step over,
也就是執(zhí)行本行代碼,跳到下一行,
3,F7是跳出函數(shù)
4,F8是執(zhí)行到最后。
1.Step Into (also F5) 跳入
2.Step Over (also F6) 跳過
3.Step Return (also F7) 執(zhí)行完當(dāng)前method,然后return跳出此method
4.step Filter 逐步過濾 一直執(zhí)行直到遇到未經(jīng)過濾的位置或斷點(設(shè)置Filter:window-preferences-java-Debug-step Filtering)
5.resume 重新開始執(zhí)行debug,一直運行直到遇到breakpoint
6.hit count 設(shè)置執(zhí)行次數(shù) 適合程序中的for循環(huán)(設(shè)置 breakpoint view-右鍵hit count)
7.inspect 檢查 運算。執(zhí)行一個表達式顯示執(zhí)行值
8.watch 實時地監(jiān)視變量的變化
9.我們常說的斷點(breakpoints)是指line breakpoints,除了line
breakpoints,還有其他的斷點類型:field(watchpoint)breakpoint,method
breakpoint,exception breakpoint.
10.field breakpoint 也叫watchpoint(監(jiān)視點) 當(dāng)成員變量被讀取或修改時暫掛
11.添加method breakpoint 進入/離開此方法時暫掛(Run-method breakpoint)
12.添加Exception breakpoint 捕抓到Execption時暫掛(待續(xù)...)斷點屬性:
1.hit count 執(zhí)行多少次數(shù)后暫掛 用于循環(huán)
2.enable condition 遇到符合你輸入條件(為ture\改變時)就暫掛
3.suspend thread 多線程時暫掛此線程
4.suspend VM 暫掛虛擬機
13.variables 視圖里的變量可以改變變量值,在variables 視圖選擇變量點擊右鍵--change value.一次來進行快速調(diào)試。
14.debug 過程中修改了某些code后--〉savebuild--resume--重新暫掛于斷點
java程序調(diào)試的5種方法
1.debug。斷點調(diào)試。
2.輸出消息。system.out.println();來調(diào)試。
3.動態(tài)代理(Dynamic
Proxy)。動態(tài)代理是一個特定的Java特性,它允許開發(fā)者引入proxy類,加進某一給定類之前,并通過某一給定接口截獲所有調(diào)用。你可以在很短時間內(nèi)用一個普通代理設(shè)置一個虛擬事件處理器,來查看事件發(fā)生順序。當(dāng)需要理解事件處理器時這是最簡單和快捷的方法。
4.運行時剖析器(Run-time
Profiler)。剖析器是通過特定的JVM
hooks在系統(tǒng)中跟蹤所有調(diào)用的強大工具。但是用它來跟蹤執(zhí)行過程是大才小用。
5.Aspects。面向方面編程。它是截獲你的代碼執(zhí)行既快速又容易的方法。你可以圍繞方法、構(gòu)造器、屬性訪問等等有選擇地設(shè)置hook,而不需要修改原始代碼。在這些hook中,你可以打印調(diào)試消息。
1.2常用的。3.4.5網(wǎng)上找的。
文章標題:代碼調(diào)試java 代碼調(diào)試的過程是什么?
文章路徑:http://www.dlmjj.cn/article/hpcdpc.html