Khi sử dụng trình gỡ lỗi Java trong Intellij “Drop Frame” nghĩa là gì?


94

Tôi đang sử dụng trình gỡ lỗi Java trong Intellij 8 và nhận thấy một nút có nhãn "khung thả", có ai biết mục đích này phục vụ mục đích gì không? Làm thế nào / tại sao điều này sẽ được sử dụng / hữu ích?

Câu trả lời:


128

Ngăn xếp cuộc gọi của ứng dụng của bạn có thể được xem trong trình gỡ lỗi. Sử dụng chức năng "Drop Frame", bạn có thể "quay trở lại" khung ngăn xếp trước đó, theo nghĩa là quay ngược thời gian. Điều này có thể hữu ích để vào lại một chức năng nếu bạn bỏ lỡ một điểm quan trọng mà bạn muốn xem lại.

Như tên "Stack Frame" cho thấy, các thay đổi đã được thực hiện đối với trạng thái toàn cục (như biến tĩnh, thay đổi đối với giá trị trường và những thứ tương tự) sẽ không được hoàn tác, chỉ các biến cục bộ được đặt lại. Điều này có thể dẫn đến một đường dẫn thực thi khác với đường dẫn ban đầu dẫn đến điểm ngắt của bạn. Bạn cần lưu ý điều này - tôi thường coi đây là một tính năng hữu ích để khám phá các đường dẫn thực thi khác nhau mà không cần phải khởi động lại ứng dụng hoặc một quy trình dài cụ thể dẫn đến ngăn xếp hiện tại. Kết hợp với sự thay đổi của các giá trị biến cũng có sẵn thông qua trình gỡ lỗi, bạn có thể làm tất cả những điều thú vị.

Xin lưu ý rằng tất nhiên, bất kỳ tác dụng phụ nào có thể đã xảy ra - ví dụ như lưu lượng mạng, thao tác tệp, đầu ra bảng điều khiển, v.v. - không thể quấn lại.


14

Drop Frame trong trình gỡ lỗi sẽ bật khung ngăn xếp hiện tại và đưa quyền điều khiển trở lại phương thức gọi, đặt lại bất kỳ biến cục bộ nào. Điều này rất hữu ích để lặp đi lặp lại một chức năng, nhưng được cảnh báo: đột biến trường hoặc thay đổi trạng thái toàn cục sẽ vẫn còn.

Xem thêm thông tin tại đây .


7

Việc loại bỏ các khung hình khỏi ngăn xếp bằng cách sử dụng trình gỡ lỗi về cơ bản cho phép bạn "tua lại" quá trình thực thi ứng dụng của mình để đạt được trạng thái trước đó. Các biến bên ngoài khung ngăn xếp không được hoàn nguyên.

Lưu ý thêm, tôi tin rằng tính năng này được gọi là "Drop to Frame" trong Eclipse, nhưng nó phục vụ cùng một mục đích.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.