This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]