2011-09-20 20 views

Trả lời

18

Ngăn xếp cuộc gọi thường là "chồng hoạt động hiện tại" - tức là trong khi đang chạy.

Theo dõi ngăn xếp thường là bản sao của ngăn xếp cuộc gọi được ghi lại ở một số loại lỗi, ví dụ: một ngoại lệ.

Nói cách khác, trong khi bạn đang gỡ lỗi, bạn sẽ nhìn vào ngăn xếp cuộc gọi hiện tại - nhưng khi bạn xem nhật ký, bạn sẽ nhận được một dấu vết ngăn xếp. Ít nhất, đó là giải thích của tôi về các điều khoản :)

+0

Tôi xem nó là dấu vết ngăn xếp giống như kết quả (cố gắng nghĩ ra một từ tốt hơn) về tiến trình của bạn dọc theo ngăn xếp cuộc gọi? Hay là sai? – AndrewC

+0

@AndyC: Tôi không chắc tôi hiểu "tiến trình dọc theo ngăn xếp cuộc gọi" có nghĩa là gì. –

+0

Hmm, tôi có khả năng sai sau đó (hoặc đó là hoặc tôi thực sự xấu giải thích :)). Sắp xếp như thể ngăn xếp cuộc gọi là tuyến đường bạn sẽ thực hiện thông qua ứng dụng thì theo dõi ngăn xếp cho bạn biết bạn đã thực hiện như thế nào? – AndrewC

9

Ngăn xếp cuộc gọi là cấu trúc dữ liệu lưu trữ thông tin về các chương trình con đang hoạt động trong một chương trình đang chạy. Theo dõi ngăn xếp là biểu diễn của ngăn xếp cuộc gọi.

6

Tôi nghĩ Wikipedia làm một công việc khá tốt ở phân biệt giữa chúng:

một cuộc gọi stack là một cấu trúc dữ liệu ngăn xếp lưu trữ thông tin về các chương trình con hoạt động của một chương trình máy tính

Một stack trace là báo cáo về các khung chồng đang hoạt động tại một thời điểm nhất định trong khi thực hiện chương trình.

Nói cách khác, ngăn xếp cuộc gọi là cấu trúc dữ liệu thực trong bộ nhớ, trong khi theo dõi ngăn xếp là ảnh chụp nhanh cấu trúc dữ liệu đã nói.

+3

+1 cho "ảnh chụp nhanh" – pencilCake

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