JDB - เซสชัน

บทนี้อธิบายถึงวิธีการเริ่มเซสชัน JDB ด้วยวิธีต่างๆ การเรียกใช้ JDB เป็นเทคนิคที่ใช้บ่อยในการเริ่มเซสชัน JDB

มีสองวิธีที่แตกต่างกันในการเริ่มเซสชัน JDB:

  • เริ่มต้นเซสชัน JDB โดยเพิ่มคลาส (ชื่อคลาสหลัก) เข้าไป
  • การเพิ่ม JDB เพื่อรัน JVM เพื่อเริ่มเซสชัน

เริ่มเซสชันโดยการเพิ่มคลาส

คำสั่งต่อไปนี้เริ่มเซสชัน JDB:

ไวยากรณ์

\>jdb <classname>

ตัวอย่าง

สมมติว่าเรามีคลาสชื่อ TestClass. คำสั่งต่อไปนี้เริ่มต้นเซสชัน JDB จาก TestClass

\>jdb TestClass

หากคุณทำตามคำสั่งนี้จะเริ่ม Java VM ใหม่ด้วยพารามิเตอร์ที่ระบุ หลังจากนั้นจะโหลดคลาสและหยุดก่อนที่จะดำเนินการคำสั่งแรกของคลาส

เริ่มเซสชันโดยการเพิ่ม JDB ไปยัง JVM ที่กำลังรันอยู่

ด้านล่างนี้คือไวยากรณ์และตัวอย่างในการเริ่มต้นเซสชัน JDB โดยการเพิ่ม JDB ให้กับ JVM ที่รันอยู่

ไวยากรณ์

ไวยากรณ์ต่อไปนี้ใช้สำหรับเซสชัน JDB:

-agentlib:jdwp=transport=dt_shmem,address=
      
       ,server=y,suspend=n 
      

ตัวอย่าง

ให้เราถือว่าชื่อชั้นหลักคือ TestClassและ JVM อนุญาตให้ JDB เชื่อมต่อในภายหลัง ต่อไปนี้เป็นคำสั่งเพื่อเพิ่ม JDB ให้กับ JVM:

\>java
-agentlib:jdwp=transport=dt_shmem,address=jdbconn,server=y,suspend=n TestClass

ตอนนี้คุณสามารถแนบ JDB กับ JVM ด้วยคำสั่งต่อไปนี้:

\> jdb -attach jdbconn

Note: ที่นี่ TestClass ไม่ถูกเพิ่มลงในคำสั่ง JDB เนื่องจาก JDB เชื่อมต่อกับ VM ที่รันอยู่แทนที่จะเรียกใช้งานใหม่