From f614cb984534ce461161aa63230411dc58c72644 Mon Sep 17 00:00:00 2001 From: mmentovai Date: Fri, 12 Jan 2007 16:54:10 +0000 Subject: Pass the exception record (EXCEPTION_POINTERS*) to callback functions from ExceptionHandler on Windows. Patch by John Abd-El-Malek. r=me Interface change: post-dump and pre-dump (filter) callbacks now must accept an additional EXCEPTION_POINTERS* argument. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@103 4c0a9323-5329-0410-9bdc-e9ce6186880e --- src/client/windows/handler/exception_handler.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/client/windows/handler/exception_handler.h') diff --git a/src/client/windows/handler/exception_handler.h b/src/client/windows/handler/exception_handler.h index 8f4f50a2..33091189 100644 --- a/src/client/windows/handler/exception_handler.h +++ b/src/client/windows/handler/exception_handler.h @@ -79,19 +79,21 @@ class ExceptionHandler { // A callback function to run before Airbag performs any substantial // processing of an exception. A FilterCallback is called before writing // a minidump. context is the parameter supplied by the user as - // callback_context when the handler was created. + // callback_context when the handler was created. exinfo points to the + // exception record. // // If a FilterCallback returns true, Airbag will continue processing, // attempting to write a minidump. If a FilterCallback returns false, Airbag // will immediately report the exception as unhandled without writing a // minidump, allowing another handler the opportunity to handle it. - typedef bool (*FilterCallback)(void *context); + typedef bool (*FilterCallback)(void *context, EXCEPTION_POINTERS *exinfo); // A callback function to run after the minidump has been written. // minidump_id is a unique id for the dump, so the minidump // file is \.dmp. context is the parameter supplied - // by the user as callback_context when the handler was created. succeeded - // indicates whether a minidump file was successfully written. + // by the user as callback_context when the handler was created. exinfo + // points to the exception record, or NULL if no exception occurred. + // succeeded indicates whether a minidump file was successfully written. // // If an exception occurred and the callback returns true, Airbag will treat // the exception as fully-handled, suppressing any other handlers from being @@ -106,6 +108,7 @@ class ExceptionHandler { typedef bool (*MinidumpCallback)(const wchar_t *dump_path, const wchar_t *minidump_id, void *context, + EXCEPTION_POINTERS *exinfo, bool succeeded); // Creates a new ExceptionHandler instance to handle writing minidumps. -- cgit v1.2.1