BugSplat Crash Reporting Library for Windows (Native C++)
Overview 👀
This document explains how to modify your Microsoft Visual C++ application to provide full debug information to the BugSplat web application when it crashes.
Getting Started 🚦
To begin, download and unzip the BugSplat SDK for Microsoft Visual C++.
To get a feel for the BugSplat service before enabling your application, feel free to experiment with the myConsoleCrasher sample application, which is included as part of the software development kit.
Integration 🏗️
For WinUI 3 applications, BugSplat must be registered as a WER RuntimeExceptionModule. This process is demonstrated in our sample WinUI project that we can send upon request. If you are interested, please contact [email protected].
Add BugSplat to your application using the following steps:
Link with
BugSplat.libandBugSplatSharedMemory.libby adding these items toLinker > Input > Additional Dependencies.Add
BugSplatMonitor.exe,BugSplatWer.dll, andBugSplatRc.dllto your application's installer.Ensure your installer runs with Administrator privileges and creates a
RuntimeExceptionHelperModulesregistry key with a name containing the full path toBugSplatWer.dll. For more information about configuring WER see this doc.

Include
BugSplat.hin your application's source.Create an instance of
BugSplatfollowing the example in MyConsoleCrasher. The BugSplat constructor requires three parameters:database,application, andversion. A new BugSplat database can be created on the Database page. Choose values for application name and version to match your product release. These same values are typically used when uploading symbol files for your application. Learn more about symbol uploads at symbol-upload.
#include "BugSplat.h"
BugSplat g_BugSplat = BugSplat(BUGSPLAT_DATABASE, APPLICATION_NAME, APPLICATION_VERSION);Modify your build settings so that symbol files are created for release builds. Set
C/C++ > General > Debug Information FormattoProgram Database /Zi. Be sure to also setLinker > Debugging > Generate Debug InfotoYes (/DEBUG).Configure a Post-Build step to upload your application's symbol files. Your script should authenticate using OAuth Client Credentials. You can create credentials on the Integrations page under the OAuth tab.
symbol-upload-windows.exe -b your-database -a your-app -v your-version -i your-client-id -s your-client-secret -d "$(OutputDir)\"Verification ✅
Test your application by forcing a crash.
*(volatile int *)0 = 0;Verify that the BugSplat dialog appears, and that crashes are posted to your BugSplat account. Ensure that symbol names in the call stack are resolved correctly. If they aren’t, double-check that the correct version of symbol files and all executables for your application have been uploaded to BugSplat.
If everything was configured correctly, you should see a crash report that looks like this in your BugSplat database.

Crash Dialog
Instructions for modifying the default crash dialog can be found on the Windows Dialog Box page.
Dependencies
See technology dependencies on our dependencies page.
Last updated
Was this helpful?
