2013-05-19 33 views
1

我正在嘗試使用ocamldebug。我的程序做了很多事情,然後寫入一個文件。它編譯和工作正常,但是當我使用ocamldebug和到達的部分,它會寫入文件,以下異常引發:OCaml調試器:異常未捕獲

Uncaught exception: Unix.Unix_error (5, "waitpid", "") 

任何人都可以幫助我嗎?

回答

3

我對這些問題一點都不熟悉,但是當我做一些Google搜索時,我看到了Unix模塊中可能導致未被捕獲的SIGCHLD異常的錯誤的討論。我可以用OCaml的4.00.0重新創建我的OS X 10.8.2系統:

$ ocaml 
     OCaml version 4.00.0 

# #load "unix.cma";; 
# Sys.set_signal Sys.sigchld (Sys.Signal_handle ignore);; 
- : unit =() 
# Unix.system "true";; 
Exception: Unix.Unix_error (Unix.EINTR, "waitpid", ""). 

如果不設置SIGCHLD信號被忽略,你會得到一個正常終止的true。調試器可能會設置一些引發此錯誤的信號處理。

你是如何編寫輸出的?

+0

謝謝,我會試試你的解決方案。使用Printf.fprintf函數。 –