aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Enrico Tassi <Enrico.Tassi@inria.fr>2015-04-21 17:43:01 +0200
committerGravatar Enrico Tassi <Enrico.Tassi@inria.fr>2015-04-21 17:43:08 +0200
commit2a5fd12d597d4337810ae367ea3a49720ee3d80c (patch)
treedb33e0258a98e5e9715d0d2dc0bd4ecd3629b77c
parenta45bd5981092cceefc4d4d30f9be327bb69c22d8 (diff)
STM: print trace on "anomaly, no safe id attached"
-rw-r--r--lib/errors.ml2
-rw-r--r--lib/errors.mli1
-rw-r--r--stm/stm.ml2
3 files changed, 4 insertions, 1 deletions
diff --git a/lib/errors.ml b/lib/errors.ml
index a4ec357ee..13f391647 100644
--- a/lib/errors.ml
+++ b/lib/errors.ml
@@ -99,6 +99,8 @@ let iprint (e, info) = print ~info e
(** Same as [print], except that the "Please report" part of an anomaly
isn't printed (used in Ltac debugging). *)
let print_no_report e = print_gen (print_anomaly false) !handle_stack e
+let iprint_no_report (e, info) =
+ print_gen (print_anomaly false) !handle_stack e ++ print_backtrace info
(** Predefined handlers **)
diff --git a/lib/errors.mli b/lib/errors.mli
index 03caa6a9f..5bd572474 100644
--- a/lib/errors.mli
+++ b/lib/errors.mli
@@ -80,6 +80,7 @@ val iprint : Exninfo.iexn -> Pp.std_ppcmds
(** Same as [print], except that the "Please report" part of an anomaly
isn't printed (used in Ltac debugging). *)
val print_no_report : exn -> Pp.std_ppcmds
+val iprint_no_report : Exninfo.iexn -> Pp.std_ppcmds
(** Critical exceptions should not be caught and ignored by mistake
by inner functions during a [vernacinterp]. They should be handled
diff --git a/stm/stm.ml b/stm/stm.ml
index 38745e227..f36b757f2 100644
--- a/stm/stm.ml
+++ b/stm/stm.ml
@@ -2018,7 +2018,7 @@ let handle_failure (e, info) vcs tty =
end;
VCS.print ();
anomaly(str"error with no safe_id attached:" ++ spc() ++
- Errors.print_no_report e)
+ Errors.iprint_no_report (e, info))
| Some (safe_id, id) ->
prerr_endline ("Failed at state " ^ Stateid.to_string id);
VCS.restore vcs;