Compiling with crash reporter support

Updated 5 years ago
This page shows old instructions for MuseScore 1.
For MuseScore 4 users, see Compiling with crash reporter support.

    Starting from the 3.0.3 version, MuseScore has a built-in crash reporter based on Google Breakpad and libcrashreporter-qt that is able to handle crashes and gives a possibility for a user to send crash reports to the pre-defined URL. Below are the instructions on how to use or disable this crash reporting facility.

    Enabling or disabling crash reporter

    By default, the crash reporter facility is disabled on master branch and is enabled for release branches on Windows. If you would like to change it, it can be done by changing BUILD_CRASH_REPORTER CMake variable. The following options are available for this:
    1) If you use CMake directly, just add -DBUILD_CRASH_REPORTER=ON (or OFF) option:
    2) If you use the supplied Makefile or msvc_build.bat script, add that option to that script to the cmake command invocations.
    3) You can also edit CMakeCache.txt in the build.debug or build.release directory and change the BUILD_CRASH_REPORTER value, either manually or with cmake-gui. After editing it the following builds should use the value defined in CMakeCache.txt.

    Compiling with crash reporter support

    libcrashreporter-qt is stored in the MuseScore git repository as a submodule. If you cloned the source code from the repository you may need to pull that submodule. Use the following command to do it:
    git submodule update --init --recursive

    By default, the crash reporter sends crash reports to which may be useful while debugging it with a local copy of something like mini-breakpad-server. In order to change it edit the CRASH_REPORT_URL CMake variable as described above.

    In order for crash reports to be more useful you should extract debugging symbols for the binaries using dump_syms tool from Breakpad. Please refer to the Breakpad documentation for more details on how to do it. In brief, the process is approximately as follows:
    1) Ensure that your compiler generates debugging information (e.g. add the appropriate compiler flags or use the appropriate build types like Debug or RelWithDebInfo).
    2) Run dump_syms on the compiled binary (or on the separate debugging symbols file if available):
    dump_syms build.release/mscore/mscore > mscore.sym
    dump_syms.exe mscore\RelWithDebInfo\MuseScore3.pdb > MuseScore3.sym
    3) Upload it to a server that is supposed to collect the reports.