diff options
Diffstat (limited to 'ocaml-binary-annot/testsuite/tests/backtrace/backtrace.ml')
| -rw-r--r-- | ocaml-binary-annot/testsuite/tests/backtrace/backtrace.ml | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/ocaml-binary-annot/testsuite/tests/backtrace/backtrace.ml b/ocaml-binary-annot/testsuite/tests/backtrace/backtrace.ml new file mode 100644 index 0000000000..d8755710a1 --- /dev/null +++ b/ocaml-binary-annot/testsuite/tests/backtrace/backtrace.ml @@ -0,0 +1,17 @@ +(* A test for stack backtraces *) + +exception Error of string + +let rec f msg n = + if n = 0 then raise(Error msg) else 1 + f msg (n-1) + +let g msg = + try + f msg 5 + with Error "a" -> print_string "a"; print_newline(); 0 + | Error "b" as exn -> print_string "b"; print_newline(); raise exn + | Error "c" -> raise (Error "c") + +let _ = + Printexc.record_backtrace true; + ignore (g Sys.argv.(1)) |
