Rozvíjam OCaml programy v Emacs, kompilovať a spúšťať binárne terminály.
Je možné backtrace "failwith" chyba v Emacs ako tento príspevok, Ale väčšinu času, "failwith" chyby sú zvýšené, keď som spustiť binárne v termináli. Existuje len málo informácií okrem
my error message
Fatal error: exception Failure("my error message")
Vie niekto, či je možné to spätne sledovať? Porozumenie, ktoré súbory .ml sa podieľajú na takomto vykonaní?
odpovede:
1 pre odpoveď č. 1Ak kompilujete s podporou ladenia, môžete požiadať o spätnú väzbu OCAMLRUNPARAM=b
.
$ cat bt.ml
let g x = failwith "error"
let f x = g x
let main () = f 14
let () = main ()
$ ocamlopt -g -o bt bt.ml
$ OCAMLRUNPARAM=b bt
Fatal error: exception Failure("error")
Raised at file "pervasives.ml", line 30, characters 22-33
Called from file "bt.ml", line 7, characters 9-16
V takýchto malých príkladoch inliner urobí správu o niečo menej užitočnou. V programoch reálneho sveta je to pravdepodobne užitočnejšie.
(Ale stále to nemusí byť také podrobné ako vy).