Java遠端偵錯原理與運用__知識(Knowledge)

來源:互聯網
上載者:User

Java遠端偵錯的原理是兩個VM之間通過debug協議進行通訊,然後以達到遠端偵錯的目的。兩者之間可以通過socket進行通訊。


首先被debug程式的虛擬機器在啟動時要開啟debug模式,啟動debug監聽程式。jdwp是Java Debug Wire Protocol的縮寫。

java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n zhc_application

這是jdk1.7版本之前的方法,1.7之後可以這樣用:

java -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n zhc_application


zhc_application是main程式,server=y表示是監聽其他debugclient端的請求。address=8000表示連接埠是8000

suspend表示是否在調試用戶端建立串連之後啟動 VM。如果為y,那麼當前的VM就是suspend直到有debug client串連進來才開始執行程式。如果你的程式不是伺服器監聽模式並且很快就執行完畢的,那麼可以選擇在y來阻塞它的啟動。


然後用一個debug用戶端去debug遠端程式了,比如用Eclipse內建的debug用戶端,填寫運行被debug程式的虛擬機器監聽的連接埠號碼和地址,選擇connect方式為attach。


Okay,現在就可以開始遠端偵錯了。


Eclipse debug快速鍵:

F5 Step into

F6 Step over

F7 Step out

F8 continue to the next breakpoint


Intellij debug的快速鍵

F7,Step into

F8,Step over

Shift+F8, Step out

Alt+F9,運行至游標處

F9,恢複程式

原文:http://blog.csdn.net/hongchangfirst/article/details/44191925

作者:hongchangfirst

hongchangfirst的首頁:http://blog.csdn.net/hongchangfirst

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.