Sự khác nhau giữa các thuật ngữ "Call Stack" và "Stack Trace" là gì?Sự khác nhau giữa Call Stack và Stack Trace là gì?
Trả lời
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 :)
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
@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ì. –
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
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.
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.
+1 cho "ảnh chụp nhanh" – pencilCake
- 1. erlang call stack
- 2. mvn -e Hoàn thành Stack Trace?
- 3. Stack Trace Console trong IntelliJ IDEA
- 4. Sự khác nhau giữa STATUS_STACK_BUFFER_OVERRUN và STATUS_STACK_OVERFLOW là gì?
- 5. thread exiting with uncaught exception: NO stack trace
- 6. Sự khác nhau giữa CALL và EXEC trong T-SQL là gì?
- 7. Sự khác nhau giữa $ .proxy và native js 'call'/'apply' là gì?
- 8. Thiếu stack trace trên Node.js uncaughtException tạo ra bởi ném()
- 9. WISC (stack) có nghĩa là gì?
- 10. Stack trong lắp ráp vs stack trong c?
- 11. sự khác nhau giữa AppDomain.CreateInstance và Activator.CreateInstance là gì?
- 12. Sự khác biệt giữa lớp Debug và lớp Trace là gì?
- 13. "Unknown Source" trong java stack trace, tuy nhiên số dòng là trong tập tin lớp
- 14. Sự khác nhau giữa WPF và WinForms là gì?
- 15. Sự khác nhau giữa JavaScript và Java là gì?
- 16. Sự khác nhau giữa ODBC và OleDB là gì?
- 17. Sự khác nhau giữa SGML và XML là gì?
- 18. Sự khác nhau giữa DefaultSelenium và RemoteWebDriver là gì?
- 19. Sự khác nhau giữa RMI và Corba là gì?
- 20. Sự khác nhau giữa scgi và wsgi là gì?
- 21. Sự khác nhau giữa wsHttpBinding và ws2007HttpBinding là gì?
- 22. Sự khác nhau giữa Pingback và Trackback là gì?
- 23. Trong Python, sự khác nhau giữa ".append()" và "+ = []" là gì?
- 24. Sự khác nhau giữa AxInterop và Interop là gì?
- 25. Sự khác nhau giữa CellClick và CellMouseClick là gì?
- 26. Sự khác nhau giữa .bashrc, .bash_profile và .environment là gì?
- 27. Sự khác nhau giữa JSP và Facelets là gì?
- 28. Sự khác nhau giữa hg quên và hg là gì?
- 29. Sự khác nhau giữa GDI và GDI + là gì?
- 30. Sự khác nhau giữa đá quý và plugin là gì?
Không thể nói tôi chưa tự hỏi bản thân mình –
Giới thiệu 3 chữ cái? tongueincheek> – Amber