DoctorDumpSDK
Classes | Namespaces | Macros | Typedefs | Enumerations
CrashRpt.h File Reference
#include <windows.h>
#include <signal.h>
#include <stdlib.h>
#include <exception>

Go to the source code of this file.

Classes

struct  crash_rpt::ExceptionInfo
 Information about exception being processed. More...
 
struct  crash_rpt::custom_data_collection::ExceptionInfo
 Information about the exception. More...
 
struct  crash_rpt::custom_data_collection::IDataBag
 This interface used to add custom data to crash report. More...
 
struct  crash_rpt::custom_data_collection::Settings
 Contains data for optional custom data collection after the crash in context of sendrpt.exe process. More...
 
struct  crash_rpt::crt_error_handlers::Settings
 Setters for CRT error handlers. More...
 
struct  crash_rpt::ApplicationInfo
 Contains data that identifies your application. More...
 
struct  crash_rpt::HandlerSettings
 Contains crash handling behavior customization parameters. More...
 
class  crash_rpt::CrashRpt
 To enable crash processing you should create an instance of this class. More...
 

Namespaces

 crash_rpt
 This is namespace crash_rpt.
 
 crash_rpt::custom_data_collection
 Optional custom data collection after the crash in context of sendrpt.exe process.
 
 crash_rpt::crt_error_handlers
 This is namespace crash_rpt::crt_error_handlers.
 

Macros

#define CRASHRPT_ENABLE_RELEASE_ASSERTS   1
 

Typedefs

typedef CrashProcessingCallbackResult(CALLBACK * crash_rpt::PFNCRASHPROCESSINGCALLBACK) (CrashProcessingCallbackStage stage, ExceptionInfo *exceptionInfo, LPVOID userData)
 Client crash callback function prototype.
 
typedef Result(CALLBACK * crash_rpt::custom_data_collection::PFNCUSTOMDATACOLLECTIONCALLBACK) (const ExceptionInfo &exceptionInfo, IDataBag *dataBag)
 Client crash callback function prototype.
 
typedef void(__cdecl * crash_rpt::crt_error_handlers::_crt_signal_t) (int)
 
typedef _crt_signal_t(__cdecl * crash_rpt::crt_error_handlers::pfn_signal) (int sig, _crt_signal_t func)
 
typedef void(__cdecl * crash_rpt::crt_error_handlers::terminate_function) ()
 
typedef terminate_function(__cdecl * crash_rpt::crt_error_handlers::pfn_set_terminate) (terminate_function)
 
typedef void(__cdecl * crash_rpt::crt_error_handlers::_invalid_parameter_handler) (wchar_t const *, wchar_t const *, wchar_t const *, unsigned int, uintptr_t)
 
typedef _invalid_parameter_handler(__cdecl * crash_rpt::crt_error_handlers::pfn_set_invalid_parameter_handler) (_invalid_parameter_handler)
 
typedef void(__cdecl * crash_rpt::crt_error_handlers::_purecall_handler) (void)
 
typedef _purecall_handler(__cdecl * crash_rpt::crt_error_handlers::pfn_set_purecall_handler) (_purecall_handler)
 

Enumerations

enum  crash_rpt::CrashProcessingCallbackStage { crash_rpt::BeforeSendReport, crash_rpt::AfterSendReport }
 Stages when crash processing callback called. More...
 
enum  crash_rpt::CrashProcessingCallbackResult {
  crash_rpt::DoDefaultActions, crash_rpt::SkipSendReportReturnDefaultResult, crash_rpt::ContinueExecution, crash_rpt::ContinueSearch,
  crash_rpt::ExecuteHandler
}
 Result code for crash processing callback. More...
 
enum  crash_rpt::custom_data_collection::Result { crash_rpt::custom_data_collection::ShowUploadConfirmDialog, crash_rpt::custom_data_collection::DoUpload, crash_rpt::custom_data_collection::CancelUpload }
 Result of custom data collection. More...
 

Macro Definition Documentation

◆ CRASHRPT_ENABLE_RELEASE_ASSERTS

#define CRASHRPT_ENABLE_RELEASE_ASSERTS   1

To redefine C assert macro behavior define macro CRASHRPT_ENABLE_RELEASE_ASSERTS as 1 and include CrashRpt.h in each translation unit as soon as possible (precompiled header is the best place for that).

#define CRASHRPT_ENABLE_RELEASE_ASSERTS 1
#include <CrashRpt.h>

When _DEBUG define is not defined (it is Release configuration) assert macro evaluates an expression and, when the result is false, sends report and continues execution. When _DEBUG define is defined (it is Debug configuration) assert macro works as standard assert macro from assert.h header.

Note
All assert calls before CrashRpt.h inclusion would work as standard asserts.
See also
crash_rpt::CrashRpt::ExceptionAssertionViolated crash_rpt::CrashRpt::SkipDoctorDump_SendAssertionViolated