[RFA] [1/2] auto-loading scripts from .debug_gdb_scripts section

Eli Zaretskii eliz@gnu.org
Fri Apr 16 21:25:00 GMT 2010


> Date: Fri, 16 Apr 2010 11:06:44 -0700
> From: Doug Evans <dje@google.com>
> Cc: gdb-patches@sourceware.org
> 
> > The existing Python Auto-loading section is not too long, so how about
> > simply adding the description of this new feature to that section?  I
> > think ripping it out of "Python API" is not a good idea.
> 
> To me the Auto-loading section is not really part of the API.

Well, yes, but this feature is currently specific to Python, so why
move it out of the Python chapter?

> >> +If this file does not exist, and if the parameter
> >> +@code{debug-file-directory} is set (@pxref{Separate Debug Files}),
> >> +then @value{GDBN} will use for its each separated directory component
> >> +@code{component} the file named @file{@code{component}/@var{real-name}}, where
> >> +@var{real-name} is the object file's real name, as described above.
> >
> > I know you just copied this from the original text, but this is
> > confusingly complicated.  How about this rewording:
> >
> >  If this file does not exist, and if the parameter
> >  @code{debug-file-directory} is set (@pxref{Separate Debug Files}),
> >  then @value{GDBN} will look for the file in that directory and in
> >  all of its parents.
> 
> "all of its parents"?
> I *think* that comment is referring to the fact that
> "debug-file-directory" contains a colon-separated list of directories
> to try

Right you are.  So

  If this file does not exist, and if the parameter
  @code{debug-file-directory} is set (@pxref{Separate Debug Files}),
  then @value{GDBN} will look for the file in all of the directories
  mentioned in the value of @code{debug-file-directory}.

> bad option name of course

A terrible name.

> >> +  if (!input && debug_file_directory)
> >> +    {
> >> +      /* Also try the same file in the separate debug info directory.  */
> >> +      debugfile = xmalloc (strlen (filename)
> >> +                        + strlen (debug_file_directory) + 1);
> >> +      strcpy (debugfile, debug_file_directory);
> >> +      /* FILENAME is absolute, so we don't need a "/" here.  */
> >> +      strcat (debugfile, filename);
> >
> > What will that last strcat do if FILENAME has a drive letter?
> >
> >> +      strcpy (debugfile, gdb_datadir);
> >> +      strcat (debugfile, "/auto-load");
> >> +      /* FILENAME is absolute, so we don't need a "/" here.  */
> >> +      strcat (debugfile, filename);
> >
> > Ditto.
> 
> This is cut-n-pasted from the existing code to auto-load -gdb.py
> scripts.  I don't know if filename can have a drive letter here.

Yes, it can.  It depends how the files were called out in the
compilation command line.

I think we should strip the drive letter and the colon before
concatenating the rest with the leading directory.



More information about the Gdb-patches mailing list