2b9f94b PR#6270: remove need for -I directives to ocamldebug in common case

Authored and Committed by Gabriel Scherer 9 years ago
    PR#6270: remove need for -I directives to ocamldebug in common case
    
    (patch by Josh Watzman)
    
    Add absolute directory names to bytecode format for ocamldebug to use
    
    The need for a long list of -I directives makes interactively using
    ocamldebug a pain in the butt. Many folks have solved this with various
    `find` invocations or even Python wrappers, but those lead to other
    problems when it might include files you weren't expecting (or miss
    things you were). But all of this is really annoying since the tooling
    should be able to figure out itself, even heuristically, where your
    source files are -- gdb gets this right, why can't we?
    
    This patch implements one of the more important heuristics from gdb: you
    typically debug on the same machine you built on, so looking for the
    source files and built artifacts in the absolute paths where they were
    during compilation is a good first try. We write out absolute paths into
    a new structure at the beginning of the debug section and then
    automatically append those directories into the load path.
    
    This means mean that if you happen to be debugging on a machine
    where the original source and build artifacts are *not* available in
    their original absolute locations, things will work as before, using the
    standard load path mechanism. You can also explicitly use -I to prepend
    directories to the load path and override the defaults located by this
    new mechanism.
    
    I personally find this makes using ocamldebug much more pleasant :)
    
    git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@14533 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
    
        
file modified
+4 -2
file modified
+0 -0
file modified
+0 -0
file modified
+0 -0
file modified
+8 -0
file modified
+8 -0
file modified
+1 -0
file modified
+1 -1
file modified
+12 -3
file modified
+4 -0
file modified
+2 -0
file modified
+2 -0
file modified
+3 -3
file modified
+3 -3