-/* Re-set the skip list after symbols have been re-loaded. */
-void
-skip_re_set (void)
-{
- struct skiplist_entry *e;
-
- ALL_SKIPLIST_ENTRIES (e)
- {
- if (e->filename != 0)
- {
- /* If it's an entry telling us to skip a file, but the entry is
- currently pending a solib load, let's see if we now know
- about the file. */
- struct symtab *symtab = lookup_symtab (e->filename);
- if (symtab != 0)
- {
- xfree (e->filename);
- e->filename = xstrdup (symtab->filename);
- e->gdbarch = get_objfile_arch (symtab->objfile);
- e->pending = 0;
- }
- else
- {
- e->pending = 1;
- }
- }
- else if (e->function_name != 0)
- {
- char *func_name = e->function_name;
- struct symtabs_and_lines sals = { 0 };
- volatile struct gdb_exception decode_exception;
-
- TRY_CATCH (decode_exception, RETURN_MASK_ERROR)
- {
- sals = decode_line_1 (&func_name, DECODE_LINE_FUNFIRSTLINE, 0, 0);
- }
-
- if (decode_exception.reason >= 0
- && sals.nelts == 1 && strlen (func_name) == 0)
- {
- struct symtab_and_line sal = sals.sals[0];
- CORE_ADDR pc = sal.pc;
- CORE_ADDR func_start = 0;
- struct gdbarch *arch = get_sal_arch (sal);
- char *func_name;
-
- if (find_pc_partial_function (pc, &func_name, &func_start, 0))
- {
- e->pending = 0;
- e->function_name = xstrdup (func_name);
- e->pc = func_start;
- e->gdbarch = arch;
- }
- }
- else
- {
- e->pending = 1;
- }
- }
- }
-}