「view this page in B3 βῆτα server」

Revisions №60839

branch: master 「№60839」
Commited by: Rocco Moretti
GitHub commit link: 「88d8e7796e235c94」 「№2978」
Difference from previous tested commit:  code diff
Commit date: 2019-07-29 14:10:05

Merge pull request #2978 from RosettaCommons/roccomoretti/crash_report (Client-side code for) Crash Reporter System for Rosetta This PR merges a bunch of code which improves Rosetta's crash/error reporting handling. Some highlights * Backtrace printing is moved from stdout to another file (ROSETTA_CRASH.log). * This makes the tracer-outputted error message cleaner to see (not hidden behind backtrace gobbledygook), and sets us up to potentially collect the crash log information later. * This can be turned off by the NOCRASHREPORT compiler define, which is enabled in PyRosetta and BOINC builds. * Normal runs install a signal handler which should give better diagnostics in cases of segfaults and the like. * the `-run:nosignal` command line option (or the NOCRASHREPORT define) should turn this off, in case your debugger gives you issues with it. * New `user_fixable_issue_exit()` and `user_fixable_issue_assert()` macros (parallel to the `utility_exit_with_message()` macro) are provided which will cause an exit without printing the backtrace/creating the crash log. * Intended only for cases where you *know* that the user made a mistake, and can provide an error message which tells them exactly how to fix it. -- Not for cases where you get a residue number zero condition six levels deep and only infer that the user *probably* made a mistake "somewhere" in their setup. * There are some changes to the exception hierarchy to support this. Future directions are to build a system which can collect this info and summarize it (hopefully pointing out where common causes of errors in Rosetta are) and to clean up/improve our error handling and error messages so they're less obtuse.

...