2012-07-05 18 views
6

Tôi đang sử dụng google-breakpad. Đây là chương trình báo cáo lỗi chạy trong nền để báo cáo sự cố của một quá trình khác.Tại sao bảng điều khiển google không xử lý tất cả các sự cố? Làm thế nào tôi có thể gỡ lỗi các trường hợp này?

Nó hoạt động trong hầu hết mọi tình huống.

Tuy nhiên đôi khi nó không gặp sự cố. Không có báo cáo và không có tệp kết xuất. Nó chỉ bị treo. Các đầu mối cuối cùng cho vụ tai nạn là một thông báo sự kiện cửa sổ.

Tôi làm cách nào để gỡ lỗi các sự cố này? Điều gì sẽ khiến cho Breakpad không xử lý sự cố? Tôi có thể sử dụng phương pháp nào để gỡ lỗi tình huống?

+0

Đây có phải là ngoại lệ SEH không? Chúng có phải là những thứ như tràn ngăn xếp hoặc vi phạm truy cập không? –

+0

Tôi đoán nó có thể liên quan đến tràn ngăn xếp. Breakpad đã bị bắt vi phạm truy cập tốt. – Hybrid

+1

Bàn di chuột nói rằng nó sử dụng chức năng SetUnhandledExceptionFilter() (cửa sổ). Tôi không chắc chắn chức năng gọi lại cho SetUnhandledExceptionFilter thậm chí còn được gọi hay không trước khi quá trình chấm dứt trong tình huống này. – Hybrid

Trả lời

10

Thư viện thời gian chạy Visual C++ C/C++ sẽ xóa bộ móc có SetUnhandledExceptionFilter trong một số trường hợp nhất định; ví dụ, khi nó phát hiện tràn bộ đệm hoặc vấn đề bảo mật khác.

This Microsoft feedback page liệt kê cách dừng hành vi này cho hầu hết các trường hợp, nhưng nói rằng không thể xảy ra trường hợp tràn bộ đệm mà không đưa ra các vấn đề về bảo mật.

+0

Tôi không thể thấy trang phản hồi của Microsoft - có liên kết mới hay thứ gì đó mà tôi có thể xem không? –

+4

Trang này dường như đã biến mất 404. Tôi không nhớ chính xác những gì trên đó, nhưng hãy thử tài liệu MSDN cho _set_abort_behavior và _set_invalid_parameter_handler. –

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