This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Relative source file search
- From: Craig Jeffree <craig dot jeffree at preston dot net>
- To: gdb-patches at sources dot redhat dot com
- Date: Tue, 04 Oct 2005 11:23:59 +1000
- Subject: Re: [PATCH] Relative source file search
- References: <1127806796.32709.17.camel@norman>
Hi all,
What needs to occur for a patch like this to be accepted? Is anyone
able to look at it and possibly commit it?
Cheers,
Craig.
On Tue, 2005-09-27 at 17:39 +1000, Craig Jeffree wrote:
> A while ago I reported problems locating source files that are specified
> with relative paths in the compile line, detailed here:
>
> http://sourceware.org/ml/gdb/2005-08/msg00066.html
>
> Since then I've had a play around with the code and come up with the
> attached diff which seems to solve the problem for me. I couldn't see
> any side effects as a result.
>
> Can someone run a second set of eyes over this so that it can get
> accepted to the mainline.
>
> Thanks,
> Craig.
>
Index: source.c
===================================================================
RCS file: /cvs/src/src/gdb/source.c,v
retrieving revision 1.70
diff -c -p -r1.70 source.c
*** source.c 29 Aug 2005 12:57:49 -0000 1.70
--- source.c 27 Sep 2005 07:27:26 -0000
*************** find_and_open_source (struct objfile *ob
*** 893,901 ****
--- 893,917 ----
int
open_source_file (struct symtab *s)
{
+ char *filename;
+
if (!s)
return -1;
+ /* Use the concatenation of dirname and filename if dirname isn't absolute */
+ if (s->filename && s->dirname && !IS_ABSOLUTE_PATH (s->dirname))
+ {
+ filename = (char *)
+ alloca (strlen (s->dirname) + strlen (SLASH_STRING) +
+ strlen (s->filename) + 1);
+
+ strcpy(filename, s->dirname);
+ strcat(filename, SLASH_STRING);
+ strcat(filename, s->filename);
+
+ return find_and_open_source (s->objfile, filename, NULL, &s->fullname);
+ }
+
return find_and_open_source (s->objfile, s->filename, s->dirname,
&s->fullname);
}
Index: ChangeLog
===================================================================
RCS file: /cvs/src/src/gdb/ChangeLog,v
retrieving revision 1.7365
diff -c -p -r1.7365 ChangeLog
*** ChangeLog 26 Sep 2005 22:31:16 -0000 1.7365
--- ChangeLog 27 Sep 2005 07:27:31 -0000
***************
*** 1,3 ****
--- 1,8 ----
+ 2005-09-27 Craig Jeffree <craig.jeffree@preston.net>
+
+ * source.c (open_source_file): Handle relative dirname during source
+ file search.
+
2005-09-26 Nick Roberts <nickrob@snap.net.nz>
* Makefile.in (HFILES_NO_SRCDIR): Remove minimon.h, symfile-mem.h.