ในฐานะผู้ดูแลระบบฉันบางครั้งต้องเผชิญกับสถานการณ์ที่โปรแกรมทำงานผิดปกติในขณะที่ไม่ได้สร้างข้อผิดพลาดหรือสร้างข้อความแสดงข้อผิดพลาดที่ไร้สาระ
ในอดีต - ก่อนที่จาวาจะเข้ามา - มีสองมาตรการต่อต้าน:
- หากไม่มีสิ่งใดช่วย - RTFM ;-)
- ถ้า 1. ไม่ช่วย - ติดตามการเรียกของระบบและดูว่าเกิดอะไรขึ้น
ฉันมักจะใช้strace -f
สำหรับงานนี้กับ Linux (ระบบปฏิบัติการอื่นมีเครื่องมือติดตามที่คล้ายกัน) ตอนนี้ในขณะนี้มักจะทำงานได้ดีสำหรับโปรแกรมที่ล้าสมัยการติดตามจะเลือนมากเมื่อทำแบบเดียวกันบนjava -process มีการเรียกระบบจำนวนมากดูเหมือนไม่เกี่ยวข้องกับการกระทำจริงใด ๆ ที่มันเป็นเรื่องยากที่จะค้นหาผ่านการถ่ายโอนข้อมูลดังกล่าว
มีวิธีที่ดีกว่าในการทำเช่นนั้น (หากซอร์สโค้ดไม่สามารถใช้ได้)?