mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-10-16 20:32:21 +08:00
* frame.c (frame_func_unwind): Delete.
(get_frame_func): Do not use it. * frame.h (frame_func_unwind): Delete prototype. * hppa-tdep.c (hppa_frame_cache): Update comment. * rs6000-tdep.c (rs6000_frame_cache): Update comment.
This commit is contained in:
@ -1,3 +1,11 @@
|
|||||||
|
2008-07-15 Daniel Jacobowitz <dan@codesourcery.com>
|
||||||
|
|
||||||
|
* frame.c (frame_func_unwind): Delete.
|
||||||
|
(get_frame_func): Do not use it.
|
||||||
|
* frame.h (frame_func_unwind): Delete prototype.
|
||||||
|
* hppa-tdep.c (hppa_frame_cache): Update comment.
|
||||||
|
* rs6000-tdep.c (rs6000_frame_cache): Update comment.
|
||||||
|
|
||||||
2008-07-14 Stan Shebs <stan@codesourcery.com>
|
2008-07-14 Stan Shebs <stan@codesourcery.com>
|
||||||
|
|
||||||
* remote-sim.c (init_gdbsim_ops): Remove
|
* remote-sim.c (init_gdbsim_ops): Remove
|
||||||
|
25
gdb/frame.c
25
gdb/frame.c
@ -461,27 +461,24 @@ frame_pc_unwind (struct frame_info *this_frame)
|
|||||||
}
|
}
|
||||||
|
|
||||||
CORE_ADDR
|
CORE_ADDR
|
||||||
frame_func_unwind (struct frame_info *fi, enum frame_type this_type)
|
get_frame_func (struct frame_info *this_frame)
|
||||||
{
|
{
|
||||||
if (!fi->prev_func.p)
|
struct frame_info *next_frame = this_frame->next;
|
||||||
|
|
||||||
|
if (!next_frame->prev_func.p)
|
||||||
{
|
{
|
||||||
/* Make certain that this, and not the adjacent, function is
|
/* Make certain that this, and not the adjacent, function is
|
||||||
found. */
|
found. */
|
||||||
CORE_ADDR addr_in_block = frame_unwind_address_in_block (fi, this_type);
|
CORE_ADDR addr_in_block = get_frame_address_in_block (this_frame);
|
||||||
fi->prev_func.p = 1;
|
next_frame->prev_func.p = 1;
|
||||||
fi->prev_func.addr = get_pc_function_start (addr_in_block);
|
next_frame->prev_func.addr = get_pc_function_start (addr_in_block);
|
||||||
if (frame_debug)
|
if (frame_debug)
|
||||||
fprintf_unfiltered (gdb_stdlog,
|
fprintf_unfiltered (gdb_stdlog,
|
||||||
"{ frame_func_unwind (fi=%d) -> 0x%s }\n",
|
"{ get_frame_func (this_frame=%d) -> 0x%s }\n",
|
||||||
fi->level, paddr_nz (fi->prev_func.addr));
|
this_frame->level,
|
||||||
|
paddr_nz (next_frame->prev_func.addr));
|
||||||
}
|
}
|
||||||
return fi->prev_func.addr;
|
return next_frame->prev_func.addr;
|
||||||
}
|
|
||||||
|
|
||||||
CORE_ADDR
|
|
||||||
get_frame_func (struct frame_info *fi)
|
|
||||||
{
|
|
||||||
return frame_func_unwind (fi->next, get_frame_type (fi));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -99,7 +99,7 @@ struct frame_id
|
|||||||
lifetime of the frame. While the PC (a.k.a. resume address)
|
lifetime of the frame. While the PC (a.k.a. resume address)
|
||||||
changes as the function is executed, this code address cannot.
|
changes as the function is executed, this code address cannot.
|
||||||
Typically, it is set to the address of the entry point of the
|
Typically, it is set to the address of the entry point of the
|
||||||
frame's function (as returned by frame_func_unwind().
|
frame's function (as returned by get_frame_func).
|
||||||
|
|
||||||
This field is valid only if code_addr_p is true. Otherwise, this
|
This field is valid only if code_addr_p is true. Otherwise, this
|
||||||
frame is considered to have a wildcard code address, i.e. one that
|
frame is considered to have a wildcard code address, i.e. one that
|
||||||
@ -300,11 +300,6 @@ extern CORE_ADDR frame_sp_unwind (struct frame_info *);
|
|||||||
that function isn't known. */
|
that function isn't known. */
|
||||||
extern CORE_ADDR get_frame_func (struct frame_info *fi);
|
extern CORE_ADDR get_frame_func (struct frame_info *fi);
|
||||||
|
|
||||||
/* Similar to get_frame_func, find the start of the function which
|
|
||||||
logically called NEXT_FRAME, assuming it is a THIS_TYPE frame. */
|
|
||||||
extern CORE_ADDR frame_func_unwind (struct frame_info *next_frame,
|
|
||||||
enum frame_type this_type);
|
|
||||||
|
|
||||||
/* Closely related to the resume address, various symbol table
|
/* Closely related to the resume address, various symbol table
|
||||||
attributes that are determined by the PC. Note that for a normal
|
attributes that are determined by the PC. Note that for a normal
|
||||||
frame, the PC refers to the resume address after the return, and
|
frame, the PC refers to the resume address after the return, and
|
||||||
|
@ -1894,9 +1894,9 @@ hppa_frame_cache (struct frame_info *this_frame, void **this_cache)
|
|||||||
in hppa_skip_prologue will return a prologue end that is too early
|
in hppa_skip_prologue will return a prologue end that is too early
|
||||||
for us to notice any potential frame adjustments. */
|
for us to notice any potential frame adjustments. */
|
||||||
|
|
||||||
/* We used to use frame_func_unwind () to locate the beginning of the
|
/* We used to use get_frame_func to locate the beginning of the
|
||||||
function to pass to skip_prologue (). However, when objects are
|
function to pass to skip_prologue. However, when objects are
|
||||||
compiled without debug symbols, frame_func_unwind can return the wrong
|
compiled without debug symbols, get_frame_func can return the wrong
|
||||||
function (or 0). We can do better than that by using unwind records.
|
function (or 0). We can do better than that by using unwind records.
|
||||||
This only works if the Region_description of the unwind record
|
This only works if the Region_description of the unwind record
|
||||||
indicates that it includes the entry point of the function.
|
indicates that it includes the entry point of the function.
|
||||||
|
@ -2509,7 +2509,7 @@ rs6000_frame_cache (struct frame_info *this_frame, void **this_cache)
|
|||||||
/* If the function appears to be frameless, check a couple of likely
|
/* If the function appears to be frameless, check a couple of likely
|
||||||
indicators that we have simply failed to find the frame setup.
|
indicators that we have simply failed to find the frame setup.
|
||||||
Two common cases of this are missing symbols (i.e.
|
Two common cases of this are missing symbols (i.e.
|
||||||
frame_func_unwind returns the wrong address or 0), and assembly
|
get_frame_func returns the wrong address or 0), and assembly
|
||||||
stubs which have a fast exit path but set up a frame on the slow
|
stubs which have a fast exit path but set up a frame on the slow
|
||||||
path.
|
path.
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user