/ / Je možné pri spustení binárnej chyby „backwith“ chybu? - ladenie, ocaml

Je možné spustiť binárnu chybu "failwith"? ladenie, ocaml

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ď č. 1

Ak 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).