目标Caml语言只会产生堆栈跟踪,如果你问他们是否正确 - 字节码和本地代码的要求是什么?如何在OCaml中获取堆栈跟踪?
23
A
回答
34
编译-g和设置环境变量OCAMLRUNPARAM = B
9
2
因为它看起来像你只能得到unix异常的痕迹,你可以在第二个过程中分叉和抛出异常。这样,主进程能够继续下去:
export OCAMLRUNPARAM=b
# compile with -g
flush_all(); let r = Unix.fork() in if r == 0 then raise Exit
0
如果您正在使用Ocamlbuild,而不是直接调用编译器,你可以使用debug
标签。从manual:
随着OCamlbuild,你可以简单的调试标记添加到您的程序的目标,这将挑选出何时插入-g标志或没有。
例如,如果你正在建设一个文件foo.ml
与包bar
那么你_tags
文件将有一行:
<foo.ml>: package(bar), debug
这将插入相应-g
标志,同时建立字节/本机文件。但是,您仍然需要使用export OCAMLRUNPARAM=b
设置环境变量,如其他答案中所述。
相关问题
- 1. 如何获取堆栈跟踪信息?
- 2. 在VB6中获取堆栈跟踪
- 3. 在Perl中获取堆栈跟踪?
- 4. 堆栈跟踪如何构建以及堆栈如何跟踪?
- 5. 从Visual Studio中获取堆栈跟踪
- 6. 如何堆栈跟踪extlib?
- 7. 如何获得正确的堆栈跟踪而不是反射堆栈跟踪?
- 8. 如何获得堆栈跟踪
- 9. 提取从堆栈跟踪
- 10. 如何获得包含在Ocaml中的尾部调用的堆栈跟踪?
- 11. 如何读取clojure堆栈跟踪?
- 12. 如何读取java.util.InputMismatchException堆栈跟踪
- 13. Python - 如何在新线程中获取堆栈跟踪
- 14. 如何在Netbeans C++ IDE中获取堆栈跟踪
- 15. 如何在正常执行的.NET中获取堆栈跟踪?
- 16. 如何在WinRT中从C++获取堆栈跟踪?
- 17. 从ZendFramework获取完整堆栈跟踪
- 18. 从NullPointerException获取堆栈跟踪
- 19. 从堆栈跟踪获取文件名
- 20. 使用cx_freeze获取Python堆栈跟踪
- 21. 获取堆栈跟踪参数的值?
- 22. 获取堆栈跟踪不通过USB
- 23. 在堆栈跟踪中捕获FileNotFound?
- 24. 如何在堆栈溢出后在OCaml中获得完整的非结构化堆栈跟踪?
- 25. 从javascript堆栈跟踪中查找Java实际堆栈跟踪
- 26. 堆栈跟踪3
- 27. 如何从Python中的异常对象获取堆栈跟踪?
- 28. 如何从堆栈跟踪中获取行号?
- 29. 如何从rails中的应用程序获取堆栈跟踪?
- 30. 如何获取ABAP中的程序调用堆栈跟踪?
对于本地代码,我相信这只适用于OCaml v3.10或更高版本。 – 2008-09-28 17:17:01