真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java工程代碼調(diào)試 如何調(diào)試代碼

如何實(shí)現(xiàn)遠(yuǎn)程調(diào)試java代碼

1. 遠(yuǎn)程debug調(diào)試java代碼

站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到崇義網(wǎng)站設(shè)計(jì)與崇義網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋崇義地區(qū)。

1.1 主動(dòng)連接調(diào)試

首先需要遠(yuǎn)程服務(wù)配置啟動(dòng)腳本:

JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"

如果是啟動(dòng)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)來(lái)運(yùn)行調(diào)試環(huán)境。

transport是監(jiān)聽(tīng)Socket端口連接方式(也可以dt_shmem共享內(nèi)存方式,但限于windows機(jī)器,并且服務(wù)提供端和調(diào)試端只能位于同一臺(tái)機(jī))。

server=y表示當(dāng)前是調(diào)試服務(wù)端,=n表示當(dāng)前是調(diào)試客戶(hù)端。suspend=n表示啟動(dòng)時(shí)不中斷(如果啟動(dòng)時(shí)中斷,一般用于調(diào)試啟動(dòng)不了的問(wèn)題)。

address=8000表示本地監(jiān)聽(tīng)8000端口。

遠(yuǎn)程服務(wù)(tomcat/jboss)啟動(dòng)成功后,本地Eclipse對(duì)需要調(diào)試的地方打上斷點(diǎn),

然后項(xiàng)目右鍵啟動(dòng)遠(yuǎn)程調(diào)試:Debug as-Debug Configurations-Remote Java Application。

Host為遠(yuǎn)程主機(jī)IP,Port為遠(yuǎn)程監(jiān)聽(tīng)調(diào)試端口,Connection Type為:Standard(Socket Attach),

點(diǎn)擊Debug,然后打斷點(diǎn),遠(yuǎn)程服務(wù)運(yùn)行到斷點(diǎn)處本地就會(huì)中斷,然后進(jìn)行調(diào)試。

1.2 被動(dòng)連接調(diào)試

首先需要Eclipse配置監(jiān)聽(tīng),如主動(dòng)連接調(diào)試的Eclipse配置圖片,Connection Type選擇:

Standard(Socket Listen),配置本地監(jiān)聽(tīng)端口,比如默認(rèn)8000。點(diǎn)擊Debug開(kāi)始等待遠(yuǎn)程連接調(diào)試。

然后配置遠(yuǎn)程服務(wù)啟動(dòng)腳本:

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ù)含義和主動(dòng)連接調(diào)試一樣,只是這里suspend=y表示啟動(dòng)時(shí)就中斷,需要連接本地IDE調(diào)試啟動(dòng)。

address=ip:port,ip需要修改為本地的對(duì)外IP。

這樣遠(yuǎn)程項(xiàng)目啟動(dòng)時(shí)就連接到本地,方便調(diào)試項(xiàng)目啟動(dòng)不了的問(wèn)題。

如何調(diào)試java程序

采用打斷點(diǎn)的方式,可以觀察變量值的變化,從而起到調(diào)式程序的作用。

在需要調(diào)試的代碼前面打斷點(diǎn)。

通過(guò)Debug Character方式運(yùn)行程序。

Step Over(F6)執(zhí)行下一步

注:執(zhí)行過(guò)程中將光標(biāo)移到變量下面,可以查看每一步變量的值。

如下圖:

java如何調(diào)試

最基本的操作是:

1, 首先在一個(gè)java文件中設(shè)斷點(diǎn),然后運(yùn)行,當(dāng)程序走到斷點(diǎn)處就會(huì)轉(zhuǎn)到debug視圖下,

2, F5鍵與F6鍵均為單步調(diào)試,F(xiàn)5是step into,也就是進(jìn)入本行代碼中執(zhí)行,F(xiàn)6是step over,

也就是執(zhí)行本行代碼,跳到下一行,

3,F7是跳出函數(shù)

4,F8是執(zhí)行到最后。

1.Step Into (also F5) 跳入

2.Step Over (also F6) 跳過(guò)

3.Step Return (also F7) 執(zhí)行完當(dāng)前method,然后return跳出此method

4.step Filter 逐步過(guò)濾 一直執(zhí)行直到遇到未經(jīng)過(guò)濾的位置或斷點(diǎn)(設(shè)置Filter:window-preferences-java-Debug-step Filtering)

5.resume 重新開(kāi)始執(zhí)行debug,一直運(yùn)行直到遇到breakpoint

6.hit count 設(shè)置執(zhí)行次數(shù) 適合程序中的for循環(huán)(設(shè)置 breakpoint view-右鍵hit count)

7.inspect 檢查 運(yùn)算。執(zhí)行一個(gè)表達(dá)式顯示執(zhí)行值

8.watch 實(shí)時(shí)地監(jiān)視變量的變化

9.我們常說(shuō)的斷點(diǎn)(breakpoints)是指line breakpoints,除了line

breakpoints,還有其他的斷點(diǎn)類(lèi)型:field(watchpoint)breakpoint,method

breakpoint,exception breakpoint.

10.field breakpoint 也叫watchpoint(監(jiān)視點(diǎn)) 當(dāng)成員變量被讀取或修改時(shí)暫掛

11.添加method breakpoint 進(jìn)入/離開(kāi)此方法時(shí)暫掛(Run-method breakpoint)

12.添加Exception breakpoint 捕抓到Execption時(shí)暫掛(待續(xù)...)斷點(diǎn)屬性:

1.hit count 執(zhí)行多少次數(shù)后暫掛 用于循環(huán)

2.enable condition 遇到符合你輸入條件(為ture\改變時(shí))就暫掛

3.suspend thread 多線程時(shí)暫掛此線程

4.suspend VM 暫掛虛擬機(jī)

13.variables 視圖里的變量可以改變變量值,在variables 視圖選擇變量點(diǎn)擊右鍵--change value.一次來(lái)進(jìn)行快速調(diào)試。

14.debug 過(guò)程中修改了某些code后--〉savebuild--resume--重新暫掛于斷點(diǎn)

java程序調(diào)試的5種方法

1.debug。斷點(diǎn)調(diào)試。

2.輸出消息。system.out.println();來(lái)調(diào)試。

3.動(dòng)態(tài)代理(Dynamic

Proxy)。動(dòng)態(tài)代理是一個(gè)特定的Java特性,它允許開(kāi)發(fā)者引入proxy類(lèi),加進(jìn)某一給定類(lèi)之前,并通過(guò)某一給定接口截獲所有調(diào)用。你可以在很短時(shí)間內(nèi)用一個(gè)普通代理設(shè)置一個(gè)虛擬事件處理器,來(lái)查看事件發(fā)生順序。當(dāng)需要理解事件處理器時(shí)這是最簡(jiǎn)單和快捷的方法。

4.運(yùn)行時(shí)剖析器(Run-time

Profiler)。剖析器是通過(guò)特定的JVM

hooks在系統(tǒng)中跟蹤所有調(diào)用的強(qiáng)大工具。但是用它來(lái)跟蹤執(zhí)行過(guò)程是大才小用。

5.Aspects。面向方面編程。它是截獲你的代碼執(zhí)行既快速又容易的方法。你可以圍繞方法、構(gòu)造器、屬性訪問(wèn)等等有選擇地設(shè)置hook,而不需要修改原始代碼。在這些hook中,你可以打印調(diào)試消息。

1.2常用的。3.4.5網(wǎng)上找的。


分享標(biāo)題:java工程代碼調(diào)試 如何調(diào)試代碼
URL鏈接:http://weahome.cn/article/hioiod.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部