Skip to content
Advertisement

Integrating Crashpad with Qt on Linux

I am trying to integrate Crashpad into Qt application on Linux. I am using Bugsplat database for testing and I followed this tutorial and managed to build this “dummy” application, which should serve as an example of using Qt with Crashpad.

I have made minor adjustments of files to fix build for my Linux platform, primarily making change of version easier and fixed creating directory & crashpad files next to application binaries.

All of the changes are listed below as a diff file:

JavaScript

Build generates both myQtCrasher.debug, and externaly generated myQtCrasher.sym symbols file.

Using their dummy database (the creditals are fred@bugsplat.com and Flintstone as a password), I have managed to report crash, but I for some reason, the bug do not contain uploaded symbols. I have tried to manualy upload them using dump_syms and then symupload applications by sending request onto https://fred.bugsplat.com/post/bp/symbol/breakpadsymbols.php?appName=myQtCrasher&appVer=4.9, but without success.

The symupload application output is

JavaScript

How can I properly upload *.sym and view stack trace on crash?

Thanks for your help!

Advertisement

Answer

We were able to get the symbols to resolve for this crash report. Right after the symupload warning Failed to open curl lib from binary, use libcurl.so instead it says successfully sent the symbol file. I confirmed the symbol file was uploaded correctly.

I found 2 issues with the symbol file. When minidump_stackwalk was looking for the corresponding symbols it was looking for:

JavaScript

The file that was uploaded to BugSplat was myQtCrasher.debug.sym and the module on the first line of the sym file was myQtCrasher.debug. I changed the file name to myQtCrasher.sym and the module name to myQtCrasher and the symbols for the myQtCrasher stack frames displayed function names and line numbers.

I’m not sure if these issues with mismatched symbols were due to your script changes but it seems like our script attempts to set the following variables:

JavaScript

Therefore the script expects the user to generate sym files from the .debug file, but name them based on the corresponding executable.

User contributions licensed under: CC BY-SA
7 People found this is helpful
Advertisement