BugSplat Native Windows DLL  3.3.4.0
BugSplat crash reporting for native Windows applications
Classes | Macros | Typedefs | Functions
BugSplat.h File Reference
#include <Windows.h>

Go to the source code of this file.

Classes

class  MiniDmpSender
 The MiniDmpSender class is used to add BugSplat crash reporting to your app. More...
 

Macros

#define MDS_EXPORT   __declspec(dllimport)
 
#define MDSF_NONINTERACTIVE   0x0001
 This flag automatically submits a crash report, without prompting the user with a dialog box. More...
 
#define MDSF_FORCEEXIT   0x0002
 This flag will force the application to exit after posting a BugSplat report. The default behavior is to continue calling the other unhandled exception filters in the unhandled exception chain. More...
 
#define MDSF_PREVENTHIJACKING   0x0004
 This flag prevents other threads in the process from hijacking the Exception filter. It is useful when you want to prevent 3rd party libraries included with your application or the Operating System from disabling BugSplat integration. It is recommended that you use this setting. More...
 
#define MDSF_DETECTHANGS   0x0008
 This flag launches the BugSplatHD.exe process with the current process id. The process runs in low priority, and periodically performs tests on the main process id to determine if it has hung. The burden on the OS is extremely low, and will only consume a few CPU cycles each minute. More...
 
#define MDSF_USEGUARDMEMORY   0x0010
 The guard memory flag causes the BugSplat library to pre-allocate a 4MB chunk of data on the heap. When a crash is encountered, this heap data is deleted and might be useful in low memory scenarios. More...
 
#define MDSF_CUSTOMEXCEPTIONFILTER   0x0020
 BugSplat operates using the SetUnhandledExceptionFilter method. Use this flag if you want to use your own exception handling mechanism instead. To initiate a BugSplat crash report, you need to call unhandledExceptionHandler within your own exception filter method. More...
 
#define MDSF_SUSPENDALLTHREADS   0x0800
 EXPERIMENTAL Use this flag to suspend all threads in the process prior to capturing the crash report data. This might be used to prevent security libraries from detecting the debugging commands used by BugSplat and terminating the app before the crash has a chance to be reported. More...
 
#define MDSF_LOGCONSOLE   0x1000
 These flags control output of the BugSplat log output, typically used for development/debugging. If MDSF_LOGCONSOLE is set, logging information is sent to the debugger console. If MDSF_LOGFILE is set, logging information is added to the file 'bugsplat.log' in the system temp directory and included in the crash report zip file. More...
 
#define MDSF_LOGFILE   0x2000
 
#define MDSF_LOG_VERBOSE   0x4000
 
#define MDSCB_EXCEPTIONCODE   0x0050
 Definitions for the BugSplat exception call back codes. More...
 

Typedefs

typedef bool(__cdecl * MiniDmpSenderCallback) (UINT nCode, LPVOID lVal1, LPVOID lVal2)
 If a callback function is registered with MiniDmpSender it is notified when data or information is required from the main app A list of callback codes appears at the end of this file... More...
 

Functions

int CreateMiniDmpSender (const char *szDatabase, const char *szApp, const char *szVersion, const char *szAppId, unsigned int dwFlags)
 
void DestroyMiniDmpSender (int handle)
 
unsigned int MDSGetFlags (int handle)
 
void MDSSetFlags (int handle, unsigned int dwFlags)
 
void MDSResetVersionString (int handle, const char *szVersion)
 
void MDSResetAppIdentifier (int handle, const char *szDescription)
 
void MDSStoreUserLog (int handle, const char *szPath)
 

Macro Definition Documentation

#define MDS_EXPORT   __declspec(dllimport)
#define MDSCB_EXCEPTIONCODE   0x0050

Definitions for the BugSplat exception call back codes.

nCode: MDSCB_EXCEPTIONCODE lVal1: EXCEPTION_RECORD*, pointer to the exception record responsible for the crash Note: this might be NULL if report created using 'void createReport()' method lVal2: Reserved

#define MDSF_CUSTOMEXCEPTIONFILTER   0x0020

BugSplat operates using the SetUnhandledExceptionFilter method. Use this flag if you want to use your own exception handling mechanism instead. To initiate a BugSplat crash report, you need to call unhandledExceptionHandler within your own exception filter method.

#define MDSF_DETECTHANGS   0x0008

This flag launches the BugSplatHD.exe process with the current process id. The process runs in low priority, and periodically performs tests on the main process id to determine if it has hung. The burden on the OS is extremely low, and will only consume a few CPU cycles each minute.

#define MDSF_FORCEEXIT   0x0002

This flag will force the application to exit after posting a BugSplat report. The default behavior is to continue calling the other unhandled exception filters in the unhandled exception chain.

#define MDSF_LOG_VERBOSE   0x4000
#define MDSF_LOGCONSOLE   0x1000

These flags control output of the BugSplat log output, typically used for development/debugging. If MDSF_LOGCONSOLE is set, logging information is sent to the debugger console. If MDSF_LOGFILE is set, logging information is added to the file 'bugsplat.log' in the system temp directory and included in the crash report zip file.

#define MDSF_LOGFILE   0x2000
#define MDSF_NONINTERACTIVE   0x0001

This flag automatically submits a crash report, without prompting the user with a dialog box.

#define MDSF_PREVENTHIJACKING   0x0004

This flag prevents other threads in the process from hijacking the Exception filter. It is useful when you want to prevent 3rd party libraries included with your application or the Operating System from disabling BugSplat integration. It is recommended that you use this setting.

#define MDSF_SUSPENDALLTHREADS   0x0800

EXPERIMENTAL Use this flag to suspend all threads in the process prior to capturing the crash report data. This might be used to prevent security libraries from detecting the debugging commands used by BugSplat and terminating the app before the crash has a chance to be reported.

#define MDSF_USEGUARDMEMORY   0x0010

The guard memory flag causes the BugSplat library to pre-allocate a 4MB chunk of data on the heap. When a crash is encountered, this heap data is deleted and might be useful in low memory scenarios.

Typedef Documentation

typedef bool(__cdecl * MiniDmpSenderCallback) (UINT nCode, LPVOID lVal1, LPVOID lVal2)

If a callback function is registered with MiniDmpSender it is notified when data or information is required from the main app A list of callback codes appears at the end of this file...

Function Documentation

int CreateMiniDmpSender ( const char *  szDatabase,
const char *  szApp,
const char *  szVersion,
const char *  szAppId,
unsigned int  dwFlags 
)
void DestroyMiniDmpSender ( int  handle)
unsigned int MDSGetFlags ( int  handle)
void MDSResetAppIdentifier ( int  handle,
const char *  szDescription 
)
void MDSResetVersionString ( int  handle,
const char *  szVersion 
)
void MDSSetFlags ( int  handle,
unsigned int  dwFlags 
)
void MDSStoreUserLog ( int  handle,
const char *  szPath 
)