mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-27 01:28:46 +00:00
* gdbarch.sh (FRAME_CHAIN_VALID): Set default to
generic_func_frame_chain_valid. * gdbarch.h, gdbarch.c: Re-generate. * blockframe.c (generic_func_frame_chain_valid): Only check PC_IN_CALL_DUMMY when generic dummy frames. Don't worry about passing FP to PC_IN_CALL_DUMMY. Fix PR gdb/360.
This commit is contained in:
@@ -414,6 +414,15 @@ get_prev_frame (struct frame_info *next_frame)
|
||||
start go curfluy than have an abort called from main not show
|
||||
main. */
|
||||
address = FRAME_CHAIN (next_frame);
|
||||
|
||||
/* FIXME: cagney/2002-06-08: There should be two tests here.
|
||||
The first would check for a valid frame chain based on a user
|
||||
selectable policy. The default being ``stop at main'' (as
|
||||
implemented by generic_func_frame_chain_valid()). Other
|
||||
policies would be available - stop at NULL, .... The second
|
||||
test, if provided by the target architecture, would check for
|
||||
more exotic cases - most target architectures wouldn't bother
|
||||
with this second case. */
|
||||
if (!FRAME_CHAIN_VALID (address, next_frame))
|
||||
return 0;
|
||||
}
|
||||
@@ -1298,7 +1307,8 @@ generic_file_frame_chain_valid (CORE_ADDR fp, struct frame_info *fi)
|
||||
int
|
||||
generic_func_frame_chain_valid (CORE_ADDR fp, struct frame_info *fi)
|
||||
{
|
||||
if (PC_IN_CALL_DUMMY ((fi)->pc, fp, fp))
|
||||
if (USE_GENERIC_DUMMY_FRAMES
|
||||
&& PC_IN_CALL_DUMMY ((fi)->pc, 0, 0))
|
||||
return 1; /* don't prune CALL_DUMMY frames */
|
||||
else /* fall back to default algorithm (see frame.h) */
|
||||
return (fp != 0
|
||||
|
||||
Reference in New Issue
Block a user