estoy tratando de conseguir un StackTrace con Printexc.get_backtrace
, pero estoy recibiendo un error:¿Cuándo se debe usar -g para imprimir trazas de pila en OCaml?
(Program not linked with -g, cannot print stack backtrace)
Estoy compilando así:
ocamlfind ocamlc -g -o foo ... $(FOO_OBJS)
FOO_OBJS son recopilados con solo: ocamlc -c $OBJ
¿Qué pasa? ¿Debería compilarse cada .cmo
con -g
?
Si se produce una excepción en un objeto compilado sin -g
¿obtendré un stacktrace parcial, o no stacktrace en absoluto?
Por cierto, todas las librerías (cma y cmxa) se deben compilar con -g, de lo contrario, el usuario pobre obtiene retrocesos de pila incompletos. –
Tiene suerte de obtener trazas inversas parciales, a veces mezclando módulos con y sin marcas inversa completamente erróneas - vea PR # 5074 – ygrek
Hay una variable de entorno 'OCAMLRUNPARAM = b' que puede establecer, ¿cómo se relaciona esto? – Ptival