4
我有一个不停止的OUnit测试,我希望能够获得堆栈跟踪。在信号ocaml上转储线程堆栈
我在编译-g
,当测试异常完成时,我得到一个堆栈跟踪。
我试图捕捉的信号,但无法弄清楚如何转储栈活动线程
let() = begin
(* Report stacktraces in test failures *)
Printexc.record_backtrace true;
(* Exit on Ctrl-C. *)
let flush_and_abort _ =
prerr_string "aborted by signal\n";
(***** What do I do here to dump stacks for live threads? ****)
flush stderr;
flush stdout;
exit ~-1 in
Sys.set_signal Sys.sigint (Sys.Signal_handle flush_and_abort);
Sys.set_signal Sys.sigquit (Sys.Signal_handle flush_and_abort);
end