2010-08-18 32 views

Trả lời

3

Mỗi lần bạn gọi một phương thức, một mục nhập được đặt trên "ngăn xếp" cho chuỗi đó mô tả phương pháp và các tham số được sử dụng để gọi phương thức. Khi phương thức trả về, phương thức và các tham số của nó được loại bỏ khỏi ngăn xếp. Đó là cách môi trường hoạt động biết nơi để trở về khi một phương thức kết thúc. Nó chỉ xóa mục nhập trên cùng khỏi ngăn xếp, dọn sạch mọi biến cục bộ đã được tạo trong khung ngăn xếp đó và trở về phương thức trước đó. (Đó là quá đơn giản, nhưng thường là ý tưởng.)

Bạn có thể nghĩ về nó theo nghĩa đen là "ngăn xếp" của các hướng dẫn đưa bạn đến đây.

Đó là ý nghĩa của môi trường hoạt động.

Với nhà phát triển, mục đích thực tế là giúp bạn hiểu tại sao chương trình của bạn ở trạng thái của nó. Bất kỳ khi nào chương trình dừng lại trong trình gỡ rối, hoặc bằng breakpoint hoặc ngoại lệ được ném (tùy thuộc vào Cài đặt Visual Studio), bạn sẽ có quyền truy cập vào ngăn xếp hiện tại. Hãy nhớ rằng ngăn xếp này không hiển thị TẤT CẢ các phương pháp đã được gọi đến thời điểm này. Bất kỳ phương pháp nào đã hoàn thành đã bị xóa khỏi ngăn xếp. Nó không phải là một bản ghi.

Bạn có thể nhấp đúp vào bất kỳ mục nhập nào trong ngăn xếp để truy cập mã nguồn đó (nếu có sẵn trên máy của bạn). Trong khi bạn đang ở đó, bạn có thể kiểm tra các biến địa phương, vv Đó là một loại công cụ thám tử để giúp bạn tìm ra những gì đã xảy ra trong chương trình của bạn cho đến thời điểm này.

7

Khi mã của bạn bị hỏng (ví dụ, khi một ngoại lệ được ném), Stack Trace Window sẽ hiển thị cho bạn tất cả các phương thức đã được gọi trước phương pháp đã đưa ra ngoại lệ, bao gồm các tham số cho mỗi phương pháp và trạng thái của thông số. Điều này làm cho việc gỡ lỗi dễ dàng hơn, đặc biệt là trong các biểu đồ gọi phức tạp hơn (nghĩa là khi bạn không thể xác định bằng cách xem mã của mình, người đã gọi phương thức/thuộc tính/hàm khác).

Chỉ cần thử, đặt điểm ngắt ở đâu đó trong mã của bạn (F9), chạy mã của bạn, đợi đến điểm ngắt được nhấn và sau đó mở cửa sổ ngăn xếp. Bạn sẽ thấy tất cả các cuộc gọi đến dòng hiện tại. Bạn có thể nhấp đúp vào mỗi mục trong cửa sổ theo dõi ngăn xếp và con trỏ sẽ nhảy ngay tại đó.

Trong trường hợp bạn tự hỏi: các đường màu xám là các cuộc gọi phương thức không có mã nguồn hoặc biểu tượng nào được tải. Bạn có thể nhấp chuột phải vào những dòng này và chọn Load Symbols để tải các ký hiệu.

1

Mục đích trong ngăn xếp cuộc gọi là cho phép bạn xem chính xác cuộc gọi nào đã gây ra sự cố.

Khi bạn nhìn vào dấu vết ngăn xếp trong Ngoại lệ, bạn có thể thấy cuộc gọi ban đầu khiến lỗi xảy ra.

Khi gỡ lỗi trong Visual Studio, bạn có thể điều hướng lên và xuống ngăn xếp cuộc gọi để xem giá trị mà ứng dụng của bạn đang lưu trữ ở các cấp khác nhau. Nó hữu ích trong việc gỡ lỗi ứng dụng của bạn đến trạng thái như thế nào.

1

Mục đích của cửa sổ ngăn xếp cuộc gọi là cung cấp cho bạn quyền truy cập vào đường dẫn mã đầy đủ đã đưa bạn đến hướng dẫn hiện tại. Bạn có thể sử dụng nó để điều hướng đến các cuộc gọi hàm trước đó trong chương trình, kiểm tra biến cục bộ, tham số, v.v. Đây là một công cụ vô giá để xác định lý do mã của bạn đang làm những gì nó đang làm.

Các vấn đề liên quan