โดยปกติในการแนบดีบักเกอร์กับ jvm ที่รันอยู่คุณจะต้องเริ่ม jvm ด้วยอาร์กิวเมนต์ดังต่อไปนี้:
> java -Xdebug -Xrunjdwp:transport=dt_socket,address=1000,server=y,suspend=n
ตอนนี้ถ้าฉันต้องการดีบักกระบวนการที่ไม่ได้เริ่มในโหมดดีบักฉันจะทำอย่างไร?
สถานการณ์นี้เกิดขึ้นเมื่อระบบการผลิต (เช่นเริ่มต้นโดยไม่มีอาร์กิวเมนต์ดีบัก) แสดงข้อผิดพลาด 'สุ่ม' (ฉันใช้คำว่าหลวม ๆ ) ดังนั้นฉันจึงไม่สามารถรีสตาร์ท jvm ด้วยอาร์กิวเมนต์ที่เหมาะสมได้เพราะไม่มีใครรู้วิธีสร้างจุดบกพร่องอีกครั้ง เป็นไปไม่ได้ที่จะแนบ JVM ในสถานการณ์นี้หรือไม่?
เพียงเพื่อชี้แจงว่าเป็นไปไม่ได้ที่จะใช้เครื่องมือเช่น jdb เพื่อแนบกับ JVM ที่รันอยู่แล้วเว้นแต่จะเริ่มต้นในโหมดดีบัก
จากหน้า JVM man
อีกวิธีในการใช้ jdb คือการเชื่อมต่อกับ Java VM ที่กำลังทำงานอยู่ VM ที่จะดีบักด้วย jdb ต้องเริ่มต้นด้วยตัวเลือกต่อไปนี้: