นอกเหนือจากที่กล่าวไว้ในคำตอบก่อนหน้านี้นั่นคือคุณลักษณะ drop to frame ของ Eclipse ในมุมมองการดีบักซึ่งจะเริ่มการดีบักก่อนหน้านี้ในกรอบสแต็ก (แต่ไม่คืนค่าข้อมูลส่วนกลาง / แบบคงที่) และโปรแกรมดีบั๊ก Omniscientซึ่งค่อนข้างดิบและไม่มาก การพัฒนา - มีเครื่องมือที่ใช้ Eclipse สองสามตัวที่สามารถใช้เพื่อ "ย้อนกลับ" ในเวลา (รัน):
- JIVE : Java Interactive Visualization Environment
- Chronon : "เครื่องบันทึกข้อมูลการบิน" สำหรับโปรแกรม Java
- Diver (ถูกยกเลิก) : มุมมองแบบโต้ตอบแบบไดนามิกสำหรับวิศวกรรมย้อนกลับ
- จูบ : เฉพาะสำหรับ IntelliJ ตอนนี้ แต่การย้ายไปยัง Eclipse เป็นที่กล่าวถึงในแผนงาน
JIVE ขยาย Eclipse Java debugger ด้วยความสามารถในการบันทึกสถานะของโปรแกรม มุมมอง JIVE มีไดอะแกรม UML ที่เป็นประโยชน์ซึ่งได้รับการอัปเดตในขณะที่โปรแกรมกำลังทำงาน ไดอะแกรมเหล่านี้ให้ภาพรวมของสถานะของแอ็พพลิเคชัน (ออบเจ็กต์ไดอะแกรม) และการติดตามสแต็ก (แผนภาพลำดับ) คุณสามารถสืบค้นการติดตามที่จดจำไว้และย้อนเวลาและย้อนเวลาและดูไดอะแกรมที่เกี่ยวข้อง
Diver บันทึกเฉพาะการเรียกใช้เมธอดเท่านั้นและไม่ได้บันทึกสถานะของโปรแกรมเช่น JIVE เหตุการณ์การเรียกเมธอดทุกรายการจะถูกเก็บไว้เพื่อการเรียกค้นและวิเคราะห์ในภายหลัง ขยายการกำหนดค่า Java Run และ Debug เพื่อระบุตัวกรองเป็นหลัก การติดตามสามารถหยุดชั่วคราว / ดำเนินการต่อ / กรองได้ที่รันไทม์ เมื่อบันทึกแล้วมุมมองของนักดำน้ำสามารถแสดงในแผนภาพลำดับแบบโต้ตอบได้
JIVE และ Diver เป็นโครงการโอเพ่นซอร์สที่ออกจากงานวิจัยทางวิชาการ ณ เดือนพฤศจิกายน 2555 ทั้งสองโครงการกำลังดำเนินการอยู่
Chronon เป็นผลิตภัณฑ์เชิงพาณิชย์ แต่มีใบอนุญาตฟรีสำหรับนักเรียนและโครงการโอเพ่นซอร์ส จากสิ่งที่ถูกอ้างสิทธิ์บนเว็บไซต์ของพวกเขาอาจเป็นเครื่องบันทึกที่ครอบคลุมที่สุดเนื่องจากสามารถเล่นซ้ำประวัติที่บันทึกไว้ย้อนกลับไปกลับมาทำให้พวกเขาบอกว่าการแก้ไขจุดบกพร่องในการเดินทางข้ามเวลา นอกจากนี้ไม่จำเป็นต้องใช้ Eclipse ในการบันทึก
ปลั๊กอินทั้งหมดนี้ค่อนข้างโลภในทรัพยากรดังนั้นจึงควรมีเครื่อง spec ที่ดีและใช้คุณสมบัติตัวกรอง ข้อกำหนดที่ชัดเจนในการรันให้สำเร็จคือการขยายพื้นที่ฮีปใน eclipse.inieclipse.ini
ในกรณีของฉันฉันพยายามใช้ JIVE และ Diver เพื่อดีบักโปรแกรมแยกวิเคราะห์ XML แต่มักจะเกิดคราสค้างเนื่องจากไม่มีทรัพยากร นักดำน้ำอาจจะยุ่งยากในการทำงานบนลินุกซ์ 64bitก็ทำงานบน Ubuntu 32bit และอาจ distros 32bit อื่น ๆ โดยใช้เคล็ดลับเหล่านี้ นักประดาน้ำทำงานบน Windows, ยังดีกว่าใน Windows 64bit 64bit + JVM มิฉะนั้นคุณจะถูก จำกัด ให้ใช้พื้นที่กองสูงสุดของ 1.3-1.6Gb บน windows JIVE ใช้งานได้ดีบน linux 64bit ของฉันและดูเหมือนว่าจะทำงานได้ดีบนแพลตฟอร์มอื่น ๆ