+Wed Apr 24 09:45:17 1991 Jim Kingdon (kingdon at cygint.cygnus.com)
+
+ * blockframe.c, frame.h (reinit_frame_cache): New function.
+ solib.c (solib_add), symfile.c ({,add_}symbol_file_command):
+ Use it.
+
Tue Apr 23 10:38:41 1991 Jim Kingdon (kingdon at cygint.cygnus.com)
* symtab.c (lookup_symbol): Add 3 more of those loops through
current_frame = (struct frame_info *) 0; /* Invalidate cache */
}
+/* Flush the frame cache, and start a new one if necessary. */
+void
+reinit_frame_cache ()
+{
+ FRAME fr = current_frame;
+ flush_cached_frames ();
+ if (fr)
+ set_current_frame ( create_new_frame (read_register (FP_REGNUM),
+ read_pc ()));
+}
+
/* Return a structure containing various interesting information
about a specified stack frame. */
/* How do I justify including this function? Well, the FRAME
#include "gdbcore.h"
#include "command.h"
#include "target.h"
+#include "frame.h"
/*
** local data declarations
else if (val = (char *) re_comp (arg_string)) {
error ("Invalid regexp: %s", val);
}
+
+ /* Getting new symbols may change our opinion about what is
+ frameless. */
+ reinit_frame_cache ();
printf_filtered ("All shared libraries");
if (arg_string)
return;
}
+ /* Getting new symbols may change our opinion about what is
+ frameless. */
+ reinit_frame_cache ();
+
symbol_file_add (name, from_tty, (CORE_ADDR)0, 1);
}
char *args;
int from_tty;
{
+ /* Getting new symbols may change our opinion about what is
+ frameless. */
+ reinit_frame_cache ();
+
target_add_syms (args, from_tty);
}