2004-04-30 Andrew Cagney <cagney@redhat.com>

* defs.h (deprecated_inside_entry_file): Delete declaration.
	* blockframe.c (deprecated_inside_entry_file): Delete function.
	(legacy_frame_chain_valid): Delete call.
	* sh64-tdep.c (sh64_frame_chain): Delete call.
	* objfiles.h: Update comments.
	* i386-interix-tdep.c (i386_interix_frame_chain_valid): Delete
	call.
	* frame.c (get_prev_frame): Delete call, update comments.
This commit is contained in:
Andrew Cagney 2004-04-30 20:44:59 +00:00
parent 283f90a7d0
commit 2f72f85088
7 changed files with 19 additions and 79 deletions

View File

@ -1,3 +1,14 @@
2004-04-30 Andrew Cagney <cagney@redhat.com>
* defs.h (deprecated_inside_entry_file): Delete declaration.
* blockframe.c (deprecated_inside_entry_file): Delete function.
(legacy_frame_chain_valid): Delete call.
* sh64-tdep.c (sh64_frame_chain): Delete call.
* objfiles.h: Update comments.
* i386-interix-tdep.c (i386_interix_frame_chain_valid): Delete
call.
* frame.c (get_prev_frame): Delete call, update comments.
2004-04-30 Brian Ford <ford@vss.fsi.com>
* MAINTAINERS (Write After Approval): Add myself.

View File

@ -43,34 +43,6 @@
void _initialize_blockframe (void);
/* Is ADDR inside the startup file? Note that if your machine has a
way to detect the bottom of the stack, there is no need to call
this function from DEPRECATED_FRAME_CHAIN_VALID; the reason for
doing so is that some machines have no way of detecting bottom of
stack.
A PC of zero is always considered to be the bottom of the stack. */
int
deprecated_inside_entry_file (CORE_ADDR addr)
{
if (addr == 0)
return 1;
if (symfile_objfile == 0)
return 0;
if (CALL_DUMMY_LOCATION == AT_ENTRY_POINT
|| CALL_DUMMY_LOCATION == AT_SYMBOL)
{
/* Do not stop backtracing if the pc is in the call dummy
at the entry point. */
/* FIXME: Won't always work with zeros for the last two arguments */
if (DEPRECATED_PC_IN_CALL_DUMMY (addr, 0, 0))
return 0;
}
return (addr >= symfile_objfile->ei.deprecated_entry_file_lowpc &&
addr < symfile_objfile->ei.deprecated_entry_file_highpc);
}
/* Test whether PC is in the range of addresses that corresponds to
the "main" function. */
@ -622,12 +594,5 @@ legacy_frame_chain_valid (CORE_ADDR fp, struct frame_info *fi)
if (legacy_inside_entry_func (get_frame_pc (fi)))
return 0;
/* If we're inside the entry file, it isn't valid. */
/* NOTE/drow 2002-12-25: should there be a way to disable this check? It
assumes a single small entry file, and the way some debug readers (e.g.
dbxread) figure out which object is the entry file is somewhat hokey. */
if (deprecated_inside_entry_file (frame_pc_unwind (fi)))
return 0;
return 1;
}

View File

@ -327,8 +327,6 @@ struct frame_info;
extern int inside_entry_func (struct frame_info *this_frame);
extern int deprecated_inside_entry_file (CORE_ADDR addr);
extern int inside_main_func (CORE_ADDR pc);
/* From utils.c */

View File

@ -1954,13 +1954,12 @@ get_prev_frame (struct frame_info *this_frame)
be allowed to unwind. */
/* NOTE: cagney/2003-02-25: Don't enable until someone has found
hard evidence that this is needed. */
/* NOTE: cagney/2003-07-07: Fixed a bug in inside_main_func() - wasn't
checking for "main" in the minimal symbols. With that fixed
asm-source tests now stop in "main" instead of halting the
/* NOTE: cagney/2003-07-07: Fixed a bug in inside_main_func() -
wasn't checking for "main" in the minimal symbols. With that
fixed asm-source tests now stop in "main" instead of halting the
backtrace in weird and wonderful ways somewhere inside the entry
file. Suspect that deprecated_inside_entry_file() and
inside_entry_func() tests were added to work around that (now
fixed) case. */
file. Suspect that tests for inside the entry file/func were
added to work around that (now fixed) case. */
/* NOTE: cagney/2003-07-15: danielj (if I'm reading it right)
suggested having the inside_entry_func test use the
inside_main_func() msymbol trick (along with entry_point_address()
@ -1981,35 +1980,6 @@ get_prev_frame (struct frame_info *this_frame)
return NULL;
}
/* If we're inside the entry file, it isn't valid. Don't apply this
test to a dummy frame - dummy frame PCs typically land in the
entry file. Don't apply this test to the sentinel frame.
Sentinel frames should always be allowed to unwind. */
/* NOTE: drow/2002-12-25: should there be a way to disable this
check? It assumes a single small entry file, and the way some
debug readers (e.g. dbxread) figure out which object is the
entry file is somewhat hokey. */
/* NOTE: cagney/2003-01-10: If there is a way of disabling this test
then it should probably be moved to before the ->prev_p test,
above. */
/* NOTE: vinschen/2003-04-01: Disabled. It turns out that the call
to deprecated_inside_entry_file() destroys a meaningful backtrace
under some conditions, e.g. the backtrace tests in the
asm-source testcase are broken for some targets. In this test
the functions are all implemented as part of one file and the
testcase is not necessarily linked with a start file (depending
on the target). What happens is that the first frame is printed
normally and following frames are treated as being inside the
entry file then. This way, only the #0 frame is printed in the
backtrace output. */
if (0
&& this_frame->type != DUMMY_FRAME && this_frame->level >= 0
&& deprecated_inside_entry_file (get_frame_pc (this_frame)))
{
frame_debug_got_null_frame (gdb_stdlog, this_frame, "inside entry file");
return NULL;
}
return get_prev_frame_1 (this_frame);
}

View File

@ -126,10 +126,7 @@ i386_interix_frame_chain_valid (CORE_ADDR chain, struct frame_info *thisframe)
be a signal handler caller). If we're dealing with a signal
handler caller, this will return valid, which is fine. If not,
it'll make the correct test. */
return ((get_frame_type (thisframe) == SIGTRAMP_FRAME)
|| (chain != 0
&& !deprecated_inside_entry_file (read_memory_integer
(thisframe->frame + 4, 4))));
return ((get_frame_type (thisframe) == SIGTRAMP_FRAME) || chain != 0);
}
/* We want to find the previous frame, which on Interix is tricky when

View File

@ -57,7 +57,7 @@ struct objfile_data;
NOTE: cagney/2003-09-09: It turns out that this "traditional"
method doesn't work. Corinna writes: ``It turns out that the call
to deprecated_inside_entry_file destroys a meaningful backtrace
to test for "inside entry file" destroys a meaningful backtrace
under some conditions. E. g. the backtrace tests in the asm-source
testcase are broken for some targets. In this test the functions
are all implemented as part of one file and the testcase is not

View File

@ -740,8 +740,7 @@ sh64_frame_chain (struct frame_info *frame)
get_frame_base (frame),
get_frame_base (frame)))
return get_frame_base (frame); /* dummy frame same as caller's frame */
if (get_frame_pc (frame)
&& !deprecated_inside_entry_file (get_frame_pc (frame)))
if (get_frame_pc (frame))
{
int media_mode = pc_is_isa32 (get_frame_pc (frame));
int size;