3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-20 04:43:39 +00:00

more detailed tracing of where unmaterialized exceptions happen

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2024-11-19 18:15:42 -08:00
parent 7de0c29f12
commit 012fc1b72b
4 changed files with 14 additions and 15 deletions

View file

@ -18,11 +18,11 @@ Notes:
--*/
#include "solver/check_sat_result.h"
void check_sat_result::set_reason_unknown(event_handler& eh) {
void check_sat_result::set_reason_unknown(event_handler& eh, char const* what) {
switch (eh.caller_id()) {
case UNSET_EH_CALLER:
if (reason_unknown() == "")
set_reason_unknown("unclassified exception");
set_reason_unknown(what);
break;
case CTRL_C_EH_CALLER:
set_reason_unknown("interrupted from keyboard");
@ -46,7 +46,7 @@ void check_sat_result::set_reason_unknown(event_handler& eh, std::exception& ex)
set_reason_unknown(ex.what());
break;
default:
set_reason_unknown(eh);
set_reason_unknown(eh, ex.what());
break;
}
}

View file

@ -68,7 +68,7 @@ public:
virtual proof * get_proof_core() = 0;
virtual std::string reason_unknown() const = 0;
virtual void set_reason_unknown(char const* msg) = 0;
void set_reason_unknown(event_handler& eh);
void set_reason_unknown(event_handler& eh, char const* msg);
void set_reason_unknown(event_handler& eh, std::exception& ex);
virtual void get_labels(svector<symbol> & r) = 0;
virtual ast_manager& get_manager() const = 0;