「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
linux.clang linux.gcc linux.srlz mac.clang
linux.PyRosetta.unit linux.gcc.python37.PyRosetta4.unit mac.PyRosetta.unit build.clean.debug cppcheck mysql postgres linux.clang.python36.build.debug linux.zeromq.debug mpi mpi.serialization linux.icc.build.debug OpenCL mac.clang.python36.build.debug build.header build.levels ninja graphics static linux.ui mac.ui build.xcode beautification code_quality.clang_analysis serialization integration.mpi integration.release_debug integration.ubsan integration.valgrind integration performance profile release.PyRosetta4.Release release.source scientific.mp_f19_energy_landscape.debug scientific.rna_denovo_favorites scientific.stepwise_rna_favorites linux.clang.score linux.gcc.score mac.clang.score linux.scripts.pyrosetta scripts.rosetta.parse scripts.rosetta.validate scripts.rosetta.verify linux.clang.unit.release linux.gcc.unit.release util.apps

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.