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] |
Hello, I just realized that we are missing the nested subprograms in our partial symbol list. Normally, this should cause us to fail when trying to break on a nested procedure until we have loaded the full symbols for that unit. But there is in fact a bit of code that I couldn't understand in ada_lookup_symbol_list which works around this issue: It searches the minimal symbols for a match, derives the associated symbol address, then determines the associated psymtab, converts the psymtab into a symtab; Contrary to the partial symtab, the full symtab does contain a symbol for our nested procedure, and thus the lookup succeeds. I stumbled on this because I am about to remove the piece of code mentioned above (in ada_lookup_symbol_list), as it introduces a pretty significant performance penalty - I will post a separate patch with more details later on. But at the same time, I think it is important by itself, as I want the partial symtab and full symtab to be consistent. 2008-09-10 Joel Brobecker <brobecker@adacore.com> * dwarf2read.c (add_partial_subprogram): New procedure. (scan_partial_symbols): Use it. (load_partial_dies): Read in children of subprogram and lexical blocks. Tested on x86-linux. No regression. I would like to commit in a week if there are no objections. Thanks, -- Joel
Attachment:
03-nested_psym.diff
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |