Lớp ngoại lệ trong Delphi 2009 nhận được một số tính năng mới. Một số trong số họ có liên quan để nhận được một stacktrace:Lấy một Stacktrace ở Delphi 2009
- tài sản StackTrace: chuỗiđọc GetStackTrace;
- thuộc tính StackInfo: Pointer đọc FStackInfo;
- lớp var GetExceptionStackInfoProc: chức năng (P: PExceptionRecord): Con trỏ;
- lớp var GetStackInfoStringProc: chức năng (Thông tin: Pointer): chuỗi;
- lớp var CleanUpStackInfoProc: quy trình (Thông tin: Con trỏ);
Có ai đã sử dụng những thứ này để lấy dấu vết ngăn xếp chưa? Vâng, tôi biết có những cách khác để có được một dấu vết ngăn xếp, nhưng nếu nó được hỗ trợ nguyên bản trong lớp Exception tôi thà tận dụng điều đó.
Cập nhật: Có lãi blog post about this. Bao gồm nó trong rất nhiều chiều sâu.
Bạn đúng 100%. Các tính năng mới này dành cho khung công tác ngoại lệ của bên thứ ba. Bây giờ, có một cách làm tài liệu để làm một số công việc thay vì sử dụng hack và hooking. Plus, trường FStackInfo rất có giá trị cho phép kết hợp ngoại lệ với các thông tin khác, xuất phát từ công cụ truy tìm ngoại lệ (cuối cùng!). – Alex