เมื่อใช้ดีบักเกอร์ Java ใน Intellij“ Drop Frame” หมายความว่าอย่างไร


96

ฉันใช้โปรแกรมดีบักเกอร์ Java ภายใน Intellij 8 และสังเกตเห็นปุ่มที่มีข้อความว่า "drop frame" มีใครรู้บ้างไหมว่าสิ่งนี้ทำหน้าที่อะไร สิ่งนี้จะใช้อย่างไร / มีประโยชน์อย่างไร?

คำตอบ:


132

สามารถดูกลุ่มการโทรของแอปพลิเคชันของคุณได้ในดีบักเกอร์ การใช้ฟังก์ชัน "Drop Frame" คุณสามารถ "ถอยกลับ" ไปยังสแต็กเฟรมก่อนหน้าได้ในแง่หนึ่งย้อนเวลากลับไป การป้อนฟังก์ชันใหม่จะเป็นประโยชน์หากคุณพลาดจุดสำคัญที่ต้องการดูอีกครั้ง

ตามที่ชื่อ "Stack Frame" แนะนำการเปลี่ยนแปลงที่เกิดขึ้นกับสถานะส่วนกลางแล้ว (เช่นตัวแปรคงที่การเปลี่ยนแปลงค่าฟิลด์และสิ่งที่คล้ายกัน) จะไม่ถูกยกเลิกโดยจะรีเซ็ตเฉพาะตัวแปรภายในเครื่องเท่านั้น ซึ่งอาจนำไปสู่เส้นทางการดำเนินการที่แตกต่างจากเส้นทางเดิมที่นำไปสู่จุดพัก คุณต้องตระหนักถึงสิ่งนี้ - ฉันมักคิดว่าเป็นคุณสมบัติที่มีประโยชน์ในการสำรวจเส้นทางการดำเนินการต่างๆโดยไม่ต้องรีสตาร์ทแอปพลิเคชันหรือกระบวนการที่ยาวเป็นพิเศษซึ่งนำไปสู่สแต็กปัจจุบัน เมื่อรวมกับการเปลี่ยนแปลงค่าตัวแปรที่มีให้ผ่านดีบักเกอร์คุณสามารถทำสิ่งที่น่าสนใจได้ทุกประเภท

โปรดทราบว่าแน่นอนว่าผลข้างเคียงใด ๆ ที่อาจเกิดขึ้นเช่นการรับส่งข้อมูลเครือข่ายการปรับแต่งไฟล์เอาต์พุตคอนโซล ฯลฯ - ไม่สามารถกรอกลับได้


15

Drop Frame ภายในดีบักเกอร์จะแสดงสแต็กเฟรมปัจจุบันและทำให้การควบคุมกลับไปที่วิธีการเรียกรีเซ็ตตัวแปรโลคัล สิ่งนี้มีประโยชน์มากในการก้าวผ่านฟังก์ชันซ้ำ ๆ แต่ขอเตือน: การกลายพันธุ์ของสนามหรือการเปลี่ยนแปลงสถานะโลกจะยังคงอยู่

ดูข้อมูลเพิ่มเติมที่นี่


8

การทิ้งเฟรมจากสแต็กโดยใช้ดีบักเกอร์ช่วยให้คุณ "ย้อนกลับ" การดำเนินการแอปพลิเคชันของคุณเพื่อไปยังสถานะก่อนหน้าได้ ตัวแปรภายนอกสแต็กเฟรมจะไม่ถูกเปลี่ยนกลับ

ตามบันทึกด้านข้างฉันเชื่อว่าคุณลักษณะนี้เรียกว่า "Drop to Frame" ใน Eclipse แต่มีจุดประสงค์เดียวกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.