Signal handlers sometimes need to know whether the signal occurred
in ocamlopt-generated code, as opposed to runtime or C library code.
Today this determination uses a page table lookup to keep track
of dynamically-loaded modules, plus ad-hoc tests for the main program.
This PR uses the code fragment table instead. That's more reliable,
less ad-hoc, and independent of the page table.
i386nt.asm: add caml_system__code_{begin,end}, ,like in the other ports.
This makes it possible to get a core dump in case of a fatal error,
which makes debugging easier.
This also
- turns a use of exit(2) to call to caml_fata_error
- replaces some uses of caml_fatal_error to a call to exit(127), when
the error results in misuse of the runtime
- removes some useless calls to exit(-1)