停止しない OUnit テストがあり、スタックトレースを取得できるようにしたいと考えています。
でコンパイルし-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