This is the mail archive of the gdb@sources.redhat.com 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]

[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


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