El lenguaje Object Caml solo producirá seguimientos de pila si los solicita exactamente: ¿cuáles son los requisitos tanto para bytecode como para código nativo?¿Cómo obtengo un seguimiento de pila en OCaml?
Respuesta
compilar con OCAMLRUNPARAM variable de entorno -g y establecer = b
Algunos Printexc funciones le permiten hacer esto mediante programación.
Específicamente 'Printexc.record_backtrace true'. –
Como parece que solo puede obtener rastros de las excepciones en Unix, puede bifurcar y lanzar la excepción en el segundo proceso. De esta manera el proceso principal puede continuar:
export OCAMLRUNPARAM=b
# compile with -g
flush_all(); let r = Unix.fork() in if r == 0 then raise Exit
Si está utilizando Ocamlbuild en lugar de invocar el compilador directamente, puede utilizar la etiqueta debug
. Desde el manual:
Con OCamlbuild, sólo tiene que añadir la etiqueta de depuración de los objetivos de su programa, y va a resolver cuando para insertar la bandera -g o no.
Por ejemplo, si usted está construyendo un archivo con el paquete foo.ml
bar
entonces su archivo _tags
tendrá una línea:
<foo.ml>: package(bar), debug
Esto insertará los -g
banderas apropiadas, mientras que la construcción de los archivos de código de bytes/nativos. Sin embargo, aún necesita establecer la variable de entorno usando export OCAMLRUNPARAM=b
como se menciona en las otras respuestas.
- 1. ¿Cómo obtengo el seguimiento de la pila de un objeto de excepción en Python?
- 2. ¿Cómo obtengo el seguimiento de la pila de un objeto de excepción en Python 2.7?
- 3. ¿Cómo obtengo un seguimiento de pila en Windows sin usar dbghelp.dll?
- 4. OCaml en la pila empresarial
- 5. Cómo salida de un seguimiento de pila profunda en Node.js?
- 6. ¿Cómo imprimir un seguimiento de pila en Node.js?
- 7. Obtención de un seguimiento de pila de SBT con Scala
- 8. Error de seguimiento de pila
- 9. Cómo obtener el seguimiento de la pila de un hilo
- 10. Excepción recurrente sin un seguimiento de pila: ¿cómo restablecerlo?
- 11. forja de un seguimiento de la pila en Java
- 12. Excepción sin seguimiento de pila en Java
- 13. Assert.DoesNotThrow con NUnit: cómo obtener el seguimiento de pila?
- 14. ¿Qué significa esto en un seguimiento de pila?
- 15. ¿Cómo imprimir el seguimiento completo de pila en la excepción?
- 16. Encontrar el seguimiento de la pila real de Java desde un seguimiento de la pila de JavaScript
- 17. Imprimir un seguimiento de pila de otro hilo
- 18. Objective-C Seguimiento de la pila
- 19. Impresión del seguimiento de pila desde un manejador de señal
- 20. programación C# obtener Seguimiento de la pila
- 21. ¿Cómo funciona Microsoft Detours y cómo lo uso para obtener un seguimiento de pila?
- 22. ¿Cómo obtengo una pila de llamadas en Haskell?
- 23. "este" puntero se corrompe en el seguimiento de la pila
- 24. Necesito ayuda para descifrar un seguimiento de la pila C#
- 25. ¿Cómo puedo incluir números de línea en un seguimiento de pila sin un pdb?
- 26. "Excepción al cargar la aplicación" sin un seguimiento de pila
- 27. Xcode: seguimiento de la pila de llamadas en assert?
- 28. Cómo registrar el seguimiento de la pila usando log4net (C#)
- 29. Cómo obtener un seguimiento de pila en todos los subprocesos de ruby en pasajero
- 30. ¿Cómo obtener un seguimiento de pila cuando falla el programa C++? (usando msvc8/2005)
Para el código nativo, creo que esto solo funciona para OCaml v3.10 o posterior. –