This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
[MI] -file-list-exec-source-files
- From: Bob Rossi <bob at brasko dot net>
- To: gdb at sources dot redhat dot com
- Date: Thu, 12 Feb 2004 20:29:46 -0500
- Subject: [MI] -file-list-exec-source-files
Hi,
I have been trying to implement -file-list-exec-source-files for some
time now. So far the command outputs the filename and fullname for each
symtab and psymtab. The fullname part only get's output if GDB knows
what it is.
The problem is, I recently discovered that the fullname can only be
retrieved from the symtab, it can't be retrieved with just a psymtab.
The reason is because the symtab has a 'dirname' member, which is
necessary in finding the absolute path to a source file. Obviously I
can't read in all the symtabs just to get the fullname for each psymtab.
So, I have 2 solutions,
1. Modify the psytmab to also have the 'dirname'. Which seems
difficult. Although I do think this is the best solution. (Not knowing
to much about psymtabs and symtabs)
2. Change -file-list-exec-source-file to receive an optional filename,
which when doing this causes GDB to read in the symtab associated with
the psymtab. Then the fullname can be retrieved.
I believe option 2 is how the CLI works.
If you do
list foo.c:1
info source
I am sure this reads in the symtab for foo.c and then it knows how to
get the fullpath. I don't really like this solution that much, so I
think it would be better to add the 'dirname' to the psymtab.
Any suggestions?
If your interested in poking around to see where symtab->dirname gets
set, look around buildsym.c:975. Does anyone know if there would be an
easy way into getting dirname set into the psymtab?
Thanks,
Bob Rossi