Mach 4 Is Crashing; What do I do?

Though the crash itself usually provides little to no useful information to the user as to the real, underlying problem, there are some routine things we can check or do in order to isolate the problem.

Known Issues

There are some known issues that we cannot easily control. They are documented on the Known Mach 4 Crashes article.

Problem Isolation

Crash Types

There are a few different types of crashes, as well as some discernible phases Mach 4 goes through on startup or during normal operation. Know when the crash occurs will narrow down the possible sources we need to examine.

Startup

Startup refers to any time before the screen is finished loading and the Mach 4 GUI is stable and in its normal, operational state. Startup consists of several steps.

  1. Core initialization
    1. There's no way to know when this is finished, but any crash this early will be before any of our customizations takes effect.
  2. Loading Plugins
    1. Plugins are loaded and initialized after the core is finished.
  3. Screen Load
    1. Once all the plugins have been loaded and initialized, Mach4GUI begins to create the "screen" (the buttons, DROs, and other controls that the operator interacts with).
    2. Screen load starts when Mach 4 displays the progress indicator entitled, "Loading Screen Elements"

Mach4GUI_Loading_Screen_Elements.png

It is useful to know if the crash occurs before or after the screen elements have started loading. If it's before, then the problem is likely with plugins or the core. If it's after, it's more likely to do with the screen (including Lua screen code), ways in which the plugins interact with the screen (e.g. Dashboards), or something the plugins do asynchronously after Mach is running.

Isolation

System vs. Profile
  1. If you create a new (Sim) profile, does the problem still happen?
  2. If you create a copy of the regular profile, what can you change about it that results in a change of behavior?
    1. Enabled Plugins
    2. Selected Motion Controller
    3. Screen

Forensic Analysis

There are some files that can be collected from the system that's crashing that may enable us to discern some details about the nature of the problem.

  • Any crash dumps (Mach4GUI.*.dmp) in C:\Dumps
  • Log Files
    • <Mach_Dir>\MachMotion.log
    • <Mach_Dir>\rapidpath.verbose.log
  • Runtime Info Files
    • <Mach_Dir>\runtime.machmotion.properties
    • <Mach_Dir>\runtime.rapidpath.properties
  • Event Logs (esp. Application)
    • You can export them with the LogMeIn script "Export Eventlogs", then copy the exported files from C:\temp.
  • The (entire) profile directory.
    • Machine.ini (at least)
  • The <Mach_Dir>\subroutines directory (if they use any subs)

Revision #3
Created Tue, Feb 4, 2020 7:47 PM by Todd
Updated Tue, Feb 4, 2020 10:31 PM by Todd