Comment on page
Breakpad (Deprecated)
Breakpad is the predecessor of Crashpad. If you are configuring a new integration, please consider using our Crashpad integration instead.
Breakpad is the predecessor of Crashpad. If you are configuring a new integration, please consider using our Crashpad integration instead.
In a few simple steps, your Breakpad-enabled application can be configured to send crash reports to BugSplat. This allows you to take advantage of BugSplat's reporting mechanisms.
Before continuing with the integration please complete the following tasks:
1.Configure Breakpad to post crashes to
https://{database}.bugsplat.com/post/bp/crash/postBP.php
. Be sure to specify your own value for the {database} portion of the URL, which corresponds to the BugSplat database used to store your crash reports.bool minidumpCallback(
const wchar_t* dump_path,
const wchar_t* minidump_id,
void* context,
EXCEPTION_POINTERS* exinfo,
MDRawAssertionInfo* assertion,
bool succeeded
)
{
...
wstring bugSplatUrl = L"https://" + database + L".bugsplat.com/post/bp/crash/postBP.php";
ReportResult reportResult = reportSender->SendCrashReport(bugSplatUrl, parameters, files, &exceptionCode);
}
- 1.Configure the Breakpad POST parameters
prod
for the BugSplat application name andver
for the BugSplat application version. You can optionally specify values for the POST parametersemail
andcomments
, which will be tracked with each crash report. Also, configure thefiles
parameter as shown below.
bool minidumpCallback(
const wchar_t* dump_path,
const wchar_t* minidump_id,
void* context,
EXCEPTION_POINTERS* exinfo,
MDRawAssertionInfo* assertion,
bool succeeded
)
{
...
map<wstring, wstring> parameters;
parameters[L"prod"] = L"MyApp";
parameters[L"ver"] = L"1.0";
parameters[L"email"] = L"[email protected]";
parameters[L"comments"] = L"BugSplat rocks!";
files[L"upload_file_minidump"] = MinidumpDescriptor.path();
ReportResult reportResult = reportSender->SendCrashReport(bugSplatUrl, parameters, files, &exceptionCode);
}
- 1.Create a new symbol store on our Versions page. You should do this for each released version of your product in order to ensure your crash reports contain function names and line numbers.
- 2.Trigger a crash in your application. The following code snippet can be used to generate an EXCEPTION_ACCESS_VIOLATION_WRITE crash:
int nullVal;
void crash()
{
*(volatile int *)0 = nullVal;
}
Upload your application's symbol files to BugSplat for symbolic call stack information. For more information on how to upload symbols manually please see this article. Alternatively, you can use symupload to automate the symbol upload process. Run the following symupload command replacing
{database}
, {appName}
and {appVersion}
with values specific to your BugSplat database and symbol store:symupload <file.exe|file.dll> "https://{database}.bugsplat.com/post/bp/symbol/breakpadsymbols.php?appName={appName}&appVer={appVersion}"
Breakpad symbol uploads for platforms other than Windows (e.g. Linux, Mac) require an additional step. You must first run the Breakpad utility dump_syms to create .sym files from your local executable files. Then use symupload to upload the .sym files to BugSplat.
Operating system symbol files can be uploaded in a similar manner. You may be able to find symbolic debug files for your operating system. If these are available when dump_syms is run, your OS call stack functions will be fully symbolicated.
BugSplat can process Breakpad crashes reported from Windows operating systems with our Windows backend, rather than the Breakpad backend. The advantage of this approach is that our backend will automatically resolve Windows OS symbols.
To configure your Breakpad crashes to be processed by our Windows backend, create unique AppName/AppVersion combinations for the Windows versions of your application and upload .pdb, .dll and .exe files (rather than .sym files). The presence of .pdb, .dll or .exe files in the symbol store is what triggers the use of the Windows backend. Uploading Windows symbols can be done via our manual symbol upload page or our automated tool SendPdbs.
Crashes can be posted manually using our test page at
https://{database}.bugsplat.com/post/bp/crash/Native/index.php
. Replace {database}
with the name of your BugSplat database. Viewing the source HTML of that page may help with the configuration.The BugSplat database for your crash reports is created on the Manage Database page in Settings. Typically you will create a new database for each major release of your product.
If you are sending symbols from symupload on macOS there is no command line option to increase the upload timeout. We have created a fork of symupload with the timeout increased to 100 seconds (from 10 seconds). You need to use a modified version of symupload to upload files larger than 100 MB. You can download the modified archive here.
Last modified 18d ago