Embodiments provide systems and methods for generating application binaries having self-
triage repair capabilities. For example, embodiments enable an independent
software vendor (ISV) to statically compile application
source code into a self-triaging application binary (STAB) having a release-time
executable. Should the release-time
executable generate runtime errors when executed, the STAB can apply one or more
triage approaches to itself to morph into a triaged
executable that executes without some or all of the
compiler optimizations that resulted in the errors (e.g., and without generating those errors on subsequent execution). Various implementations of the
triage approaches can include one or more levels of de-optimization of functions in the STAB, such as by de-optimizing the last function executed prior to the runtime failure, de-optimizing some or all of a
stack trace leading up to the last function executed prior to the runtime failure, de-optimizing all functions executed prior to the runtime failure, etc.