「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
debug
release
unit
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.