我正在尝试使用 ocamldebug。我的程序做了很多事情,然后写在一个文件中。它编译并且工作正常,但是当我使用 ocamldebug 并到达它将写入文件的部分时,会引发以下异常:
Uncaught exception: Unix.Unix_error (5, "waitpid", "")
任何人都可以帮助我吗?
我对这些问题一点也不熟悉,但是当我进行一些谷歌搜索时,我看到了有关 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
. 可能调试器正在设置一些引发此错误的信号处理。
你是如何编写输出的?