Tôi đang cố gắng tạo tệp kết xuất cho ứng dụng của mình bất cứ khi nào nó gặp sự cố. Tôi hiện đang sử dụng procdump.exe với cờ -e để làm điều đó, vì vậy nếu tôi có ngoại lệ unhandled trong procdump ứng dụng của tôi tạo ra một tệp kết xuất cho tôi.Tạo tệp kết xuất cho một ứng dụng bất cứ khi nào nó gặp sự cố
Tôi nghĩ rằng tôi đã hoàn thành, nhưng sau đó tôi phát hiện ra rằng ứng dụng của tôi bị treo và procdump không tạo tệp kết xuất. Sau khi một số điều tra tôi đã phát hiện ra rằng việc sử dụng không hợp lệ của vector :: phía trước gây ra lỗi thời gian chạy. Tôi bật cờ _SECURE_SCL_THROWS và sau đó procdump.exe -e đã bắt gặp sự cố và tạo tệp kết xuất.
Bây giờ cho câu hỏi của tôi: Hiện tại procdump.exe -e sẽ luôn tạo tệp kết xuất khi ứng dụng của tôi gặp sự cố? Làm cách nào để đảm bảo rằng tôi không có bất kỳ tình huống nào khác mà procdump -e không tốt cho tôi?
Tại sao bạn sử dụng 'GetProcAddr' cho' MiniDumpWriteDump' khi bạn có thể chỉ cần bao gồm DbgHelp.h từ DebuggingTools SDK ?? –
Vì IAT (Bảng địa chỉ nhập) có thể đã bị hỏng khi xảy ra sự cố. Trong các trình xử lý sự cố như vậy, điều đáng tin cậy duy nhất cần thực hiện là liên kết với các thư viện của chính bạn! –
@ ПетърПетров Nhưng sau đó làm thế nào bạn sẽ gọi 'LoadLibrary'? Nếu IAT bị hỏng, thì có thể bạn đã bị say. – LHLaurini