forked from Imagelibrary/binutils-gdb
* inflow.c (generic_mourn_inferior): Call reinit_frame_cache
instead of doing it ourself. * blockframe.c (reinit_frame_cache): Use code which was in generic_mourn_inferior so we can use this function even when we have switched targets. * corelow.c (core_detach): Call reinit_frame_cache. * target.c (target_detach): Don't call generic_mourn_inferior (revert yesterday's change, now handled by core_detach). * objfiles.c (free_objfile): Detach any core file if we call SOLIB_CLEAR. #include target.h.
This commit is contained in:
@@ -1,5 +1,10 @@
|
||||
Thu Sep 30 11:30:56 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
|
||||
|
||||
* inflow.c (generic_mourn_inferior): Call reinit_frame_cache
|
||||
instead of doing it ourself.
|
||||
* blockframe.c (reinit_frame_cache): Use code which was in
|
||||
generic_mourn_inferior so we can use this function even when
|
||||
we have switched targets.
|
||||
* corelow.c (core_detach): Call reinit_frame_cache.
|
||||
* target.c (target_detach): Don't call generic_mourn_inferior
|
||||
(revert yesterday's change, now handled by core_detach).
|
||||
|
||||
@@ -186,10 +186,17 @@ flush_cached_frames ()
|
||||
void
|
||||
reinit_frame_cache ()
|
||||
{
|
||||
FRAME fr = current_frame;
|
||||
flush_cached_frames ();
|
||||
if (fr)
|
||||
set_current_frame ( create_new_frame (read_fp (), read_pc ()));
|
||||
if (target_has_stack)
|
||||
{
|
||||
set_current_frame (create_new_frame (read_fp (), read_pc ()));
|
||||
select_frame (get_current_frame (), 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
set_current_frame (0);
|
||||
select_frame ((FRAME) 0, -1);
|
||||
}
|
||||
}
|
||||
|
||||
/* Return a structure containing various interesting information
|
||||
@@ -262,7 +269,7 @@ struct frame_info *
|
||||
get_prev_frame_info (next_frame)
|
||||
FRAME next_frame;
|
||||
{
|
||||
FRAME_ADDR address;
|
||||
FRAME_ADDR address = 0;
|
||||
struct frame_info *prev;
|
||||
int fromleaf = 0;
|
||||
char *name;
|
||||
@@ -725,7 +732,7 @@ find_pc_partial_function (pc, name, address, endaddr)
|
||||
}
|
||||
|
||||
/* Return the innermost stack frame executing inside of BLOCK,
|
||||
or zero if there is no such frame. If BLOCK is NULL, just return NULL. */
|
||||
or NULL if there is no such frame. If BLOCK is NULL, just return NULL. */
|
||||
|
||||
FRAME
|
||||
block_innermost_frame (block)
|
||||
@@ -733,12 +740,15 @@ block_innermost_frame (block)
|
||||
{
|
||||
struct frame_info *fi;
|
||||
register FRAME frame;
|
||||
register CORE_ADDR start = BLOCK_START (block);
|
||||
register CORE_ADDR end = BLOCK_END (block);
|
||||
register CORE_ADDR start;
|
||||
register CORE_ADDR end;
|
||||
|
||||
if (block == NULL)
|
||||
return NULL;
|
||||
|
||||
start = BLOCK_START (block);
|
||||
end = BLOCK_END (block);
|
||||
|
||||
frame = 0;
|
||||
while (1)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user