Free eBook - Glitch Free - an in-depth guide to tuning PCs for reliable real-time audio. Read More

Using Microsoft's ProcDump and Debug Diagnostics Tools

Sometimes (rarely) Cantabile or a plugin will crash in a way that the built-in crash reporter can't handle. In these cases you can use either the Microsoft ProcDump tool or the Microsoft Debug Diagnostics tool to capture a crash report that we can use to diagnose the problem.

ProcDump Tool

The ProcDump Tool is a command line tool for capturing crash reports.

  1. Download the ProcDump tool from Microsoft

  2. Extract the downloaded zip file to a working directory

  3. Start a command prompt as adminstriator

  4. Create a directory to store the captured crash dumps

    mkdir C:\Dumps

  5. Enter the following command to install ProcDump to capture crash reports

    procdump -mm -i C:\Dumps

  6. Start Cantabile and in Options -> Diagnostics turn off Generate Crash Reports and restart Cantabile

  7. Reproduce the problem, or continue to use Cantabile as per normal until the crash happens.

  8. When the crash occurs, zip the .dmp file from the C:\Dumps directory along with the Cantabile log file and settings file.

  9. Email the files along with a note explaining the problem. If the files are large you can upload them here.

Once installed, ProcDump will capture crash reports for any program that crashes (including Cantabile). You'll see a command prompt window temporarily appear as it captures the crash report and the file will be saved to the C:\Dumps directory.

The -mm command line option above creates crash mini-dumps. To instead capture a full crash dumps replace the -mm with -ma.

To stop ProcDump capturing crash reports run the following command from an Adminstrator command prompt:

procdump -u

After disabling procdump, don't forget to re-enable crash dumps in Cantabile's diagnostic options.

DebugDiag Tool

The follow steps describe how to use this DebugDiag.

  1. Download the Debug Diagnostics tool from Microsoft. Note that there are two versions available - one for x86 and one for x64. Be sure to download the one that matches the platform you're running.

  2. Install the Debug Diagnostics tool, accepting the default installation options.

  3. Run the DebugDiag 2 Collection program which can now be found in your start menu. (Hint: press the Windows start menu button and type "Debug" to find it quickly)

    Starting Debug Diag
  4. Follow the DebugDiag wizard as follows. Set the Rule Type to Crash, and click next

    DebugDiag Wizard 1
  5. Set the Target Type as "A specific process":

    DebugDiag Wizard 2
  6. On the next screen, ignore the list of processes and simply type "Cantabile.exe" (without the quotes) into the Selected Process field and leave "This process instance only" turned off, as shown below:

    DebugDiag Wizard 3
  7. The rest of the wizard steps you can simply click Next:

    DebugDiag Wizard 4
    DebugDiag Wizard 5
    DebugDiag Wizard 6
  8. You may be prompted about a "Symbol Search Path for Debugging". If so, click Yes.

    DebugDiag Wizard 7
  9. By the time you're finished it should look like this:

    DebugDiag Wizard 8
  10. The DebugDiag tool it now configured to capture any unhandled exceptions in Cantabile. If you can start Cantabile you should now disable Cantabile's built-in crash reporting by going to Options -> Diagnostics and turning off "Generate Crash dumps". If you can't start Cantabile, ignore this step.

    Disable Cantabile's Crash Reporting
  11. Reproduce the crash in Cantabile if you can. If the crash is random or occassional you can close the DebugDiag tool (the debug service will continue to run in the background) and continue using Cantabile until the problem occurs.

  12. Once the problem has occurred, start File Explorer (press Windows+E) and navigate to the following folder:

    C:\Program Files\DebugDiag\Logs\Crash rule for all instances of Cantabile.exe

    or if you're running on x86 platform:

    C:\Program Files (x86)\DebugDiag\Logs\Crash rule for all instances of Cantabile.exe

    (you can check which path to use by starting DebugDiag tool again and looking in the last column)

  13. In that folder you should find the files similar to the following:

    Crash Report Folder
  14. The files here will typically be too large to email. Instead zip them up and upload them here and drop us an email describing the problem.

Once you've captured the crash report:

  1. Disable the DebugDiag tools by starting it as shown in step 3 above.

  2. Right click on the rule and choose "Deactivate Rule".

  3. Go back into Cantabile -> Options -> Diagnostics and turn on "Generate Crash Dumps" to re-enable Cantabile's built-in crash reporting.