From: Richard W.M. Jones Date: Thu, 6 Jan 2011 12:40:29 +0000 (+0000) Subject: main: Record and print full exception stack traces. X-Git-Tag: 1.0.5~5 X-Git-Url: http://git.annexia.org/?a=commitdiff_plain;h=d3def2ccdd0e1f25f4966eee8cfc4396861e4fb4;p=virt-top.git main: Record and print full exception stack traces. This turns on stack trace recording unconditionally (the same effect as if OCAMLRUNPARAM=b was always supplied), and also prints stack traces to the log file if there is an exception. See also: http://caml.inria.fr/pub/docs/manual-ocaml/libref/Printexc.html Note that this requires OCaml >= 3.11.0. --- diff --git a/README b/README index 0e56218..a3ef5dc 100644 --- a/README +++ b/README @@ -1,7 +1,7 @@ virt-top ---------------------------------------------------------------------- -Copyright (C) 2007-2009 Richard W.M. Jones, Red Hat Inc. +Copyright (C) 2007-2011 Richard W.M. Jones, Red Hat Inc. http://et.redhat.com/~rjones/virt-top/ http://libvirt.org/ocaml/ http://libvirt.org/ @@ -17,6 +17,9 @@ different virtualization systems. Building ---------------------------------------------------------------------- +Note that the minimum version of OCaml supported (since 1.0.5) is +OCaml 3.11.0. + ./configure # Checks that you have all the required bits. make all # Builds the bytecode version of the program. diff --git a/virt-top/virt_top_main.ml b/virt-top/virt_top_main.ml index 4e1c5b7..4e5c07b 100644 --- a/virt-top/virt_top_main.ml +++ b/virt-top/virt_top_main.ml @@ -34,6 +34,7 @@ let error = let ((_, _, script_mode, _, _, _, _) as setup) = start_up () in try + Printexc.record_backtrace true; main_loop setup; if not script_mode then endwin (); false @@ -41,10 +42,12 @@ let error = | Libvirt.Virterror err -> if not script_mode then endwin (); prerr_endline (Libvirt.Virterror.to_string err); + Printexc.print_backtrace stderr; true | exn -> if not script_mode then endwin (); prerr_endline (s_ "Error" ^ ": " ^ Printexc.to_string exn); + Printexc.print_backtrace stderr; true let () =