* dwarf2read.c (dw2_map_symbol_filenames): New parameter
`need_fullname'. * psymtab.c (map_symbol_filenames_psymtab): Ditto. (map_partial_symbol_filenames): Ditto. All callers updated. * psymtab.h (map_partial_symbol_filenames): Update prototype. * symfile.h (struct quick_symbol_functions, map_symbol_filenames): New parameter need_fullname.
This commit is contained in:
parent
3d88bd9200
commit
74e2f25548
@ -10,6 +10,14 @@
|
||||
|
||||
2011-11-10 Doug Evans <dje@google.com>
|
||||
|
||||
* dwarf2read.c (dw2_map_symbol_filenames): New parameter
|
||||
`need_fullname'.
|
||||
* psymtab.c (map_symbol_filenames_psymtab): Ditto.
|
||||
(map_partial_symbol_filenames): Ditto. All callers updated.
|
||||
* psymtab.h (map_partial_symbol_filenames): Update prototype.
|
||||
* symfile.h (struct quick_symbol_functions, map_symbol_filenames): New
|
||||
parameter need_fullname.
|
||||
|
||||
* psymtab.c (psymtab_to_fullname): Use cached copy if it exists.
|
||||
* source.c (symtab_to_fullname): Ditto.
|
||||
|
||||
|
@ -2811,7 +2811,7 @@ dw2_find_pc_sect_symtab (struct objfile *objfile,
|
||||
|
||||
static void
|
||||
dw2_map_symbol_filenames (struct objfile *objfile, symbol_filename_ftype *fun,
|
||||
void *data)
|
||||
void *data, int need_fullname)
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -2833,8 +2833,12 @@ dw2_map_symbol_filenames (struct objfile *objfile, symbol_filename_ftype *fun,
|
||||
|
||||
for (j = 0; j < file_data->num_file_names; ++j)
|
||||
{
|
||||
const char *this_real_name = dw2_get_real_path (objfile, file_data,
|
||||
j);
|
||||
const char *this_real_name;
|
||||
|
||||
if (need_fullname)
|
||||
this_real_name = dw2_get_real_path (objfile, file_data, j);
|
||||
else
|
||||
this_real_name = NULL;
|
||||
(*fun) (file_data->file_names[j], this_real_name, data);
|
||||
}
|
||||
}
|
||||
|
@ -109,7 +109,8 @@ mi_cmd_file_list_exec_source_files (char *command, char **argv, int argc)
|
||||
ui_out_end (uiout, ui_out_type_tuple);
|
||||
}
|
||||
|
||||
map_partial_symbol_filenames (print_partial_file_name, NULL);
|
||||
map_partial_symbol_filenames (print_partial_file_name, NULL,
|
||||
1 /*need_fullname*/);
|
||||
|
||||
ui_out_end (uiout, ui_out_type_list);
|
||||
}
|
||||
|
@ -1082,7 +1082,8 @@ read_psymtabs_with_filename (struct objfile *objfile, const char *filename)
|
||||
|
||||
static void
|
||||
map_symbol_filenames_psymtab (struct objfile *objfile,
|
||||
symbol_filename_ftype *fun, void *data)
|
||||
symbol_filename_ftype *fun, void *data,
|
||||
int need_fullname)
|
||||
{
|
||||
struct partial_symtab *ps;
|
||||
|
||||
@ -1094,7 +1095,10 @@ map_symbol_filenames_psymtab (struct objfile *objfile,
|
||||
continue;
|
||||
|
||||
QUIT;
|
||||
fullname = psymtab_to_fullname (ps);
|
||||
if (need_fullname)
|
||||
fullname = psymtab_to_fullname (ps);
|
||||
else
|
||||
fullname = NULL;
|
||||
(*fun) (ps->filename, fullname, data);
|
||||
}
|
||||
}
|
||||
@ -1921,13 +1925,15 @@ expand_partial_symbol_names (int (*fun) (const char *, void *), void *data)
|
||||
}
|
||||
|
||||
void
|
||||
map_partial_symbol_filenames (symbol_filename_ftype *fun, void *data)
|
||||
map_partial_symbol_filenames (symbol_filename_ftype *fun, void *data,
|
||||
int need_fullname)
|
||||
{
|
||||
struct objfile *objfile;
|
||||
|
||||
ALL_OBJFILES (objfile)
|
||||
{
|
||||
if (objfile->sf)
|
||||
objfile->sf->qf->map_symbol_filenames (objfile, fun, data);
|
||||
objfile->sf->qf->map_symbol_filenames (objfile, fun, data,
|
||||
need_fullname);
|
||||
}
|
||||
}
|
||||
|
@ -33,7 +33,8 @@ extern struct bcache *psymbol_bcache_get_bcache (struct psymbol_bcache *);
|
||||
void expand_partial_symbol_names (int (*fun) (const char *, void *),
|
||||
void *data);
|
||||
|
||||
void map_partial_symbol_filenames (symbol_filename_ftype *fun, void *data);
|
||||
void map_partial_symbol_filenames (symbol_filename_ftype *fun, void *data,
|
||||
int need_fullname);
|
||||
|
||||
extern const struct quick_symbol_functions psym_functions;
|
||||
|
||||
|
@ -289,9 +289,11 @@ struct quick_symbol_functions
|
||||
|
||||
/* Call a callback for every file defined in OBJFILE whose symtab is
|
||||
not already read in. FUN is the callback. It is passed the file's
|
||||
FILENAME, the file's FULLNAME, and the DATA passed to this function. */
|
||||
FILENAME, the file's FULLNAME (if need_fullname is non-zero), and
|
||||
the DATA passed to this function. */
|
||||
void (*map_symbol_filenames) (struct objfile *objfile,
|
||||
symbol_filename_ftype *fun, void *data);
|
||||
symbol_filename_ftype *fun, void *data,
|
||||
int need_fullname);
|
||||
};
|
||||
|
||||
/* Structure to keep track of symbol reading functions for various
|
||||
|
@ -2881,7 +2881,8 @@ sources_info (char *ignore, int from_tty)
|
||||
"will be read in on demand:\n\n");
|
||||
|
||||
first = 1;
|
||||
map_partial_symbol_filenames (output_partial_symbol_filename, &first);
|
||||
map_partial_symbol_filenames (output_partial_symbol_filename, &first,
|
||||
1 /*need_fullname*/);
|
||||
printf_filtered ("\n");
|
||||
}
|
||||
|
||||
@ -4314,7 +4315,8 @@ make_source_files_completion_list (char *text, char *word)
|
||||
datum.list = &list;
|
||||
datum.list_used = &list_used;
|
||||
datum.list_alloced = &list_alloced;
|
||||
map_partial_symbol_filenames (maybe_add_partial_symtab_filename, &datum);
|
||||
map_partial_symbol_filenames (maybe_add_partial_symtab_filename, &datum,
|
||||
0 /*need_fullname*/);
|
||||
discard_cleanups (back_to);
|
||||
|
||||
return list;
|
||||
|
Loading…
Reference in New Issue
Block a user