2004-02-02 Andrew Cagney * objfiles.h: Delete comments refering to inside_entry_func and DEPRECATED_FRAME_CHAIN_VALID. * defs.h (inside_entry_func): Delete declaration. * blockframe.c (inside_entry_func): Make static. * frame.c: Include "symfile.h" (get_prev_frame): Instead of inside_entry_func, call get_frame_func and entry_point_address. Index: blockframe.c =================================================================== RCS file: /cvs/src/src/gdb/blockframe.c,v retrieving revision 1.86 diff -u -r1.86 blockframe.c --- blockframe.c 15 Jan 2004 20:00:17 -0000 1.86 +++ blockframe.c 3 Feb 2004 03:56:48 -0000 @@ -159,7 +159,7 @@ /* Test whether PC is inside the range of addresses that corresponds to the process entry point function. */ -int +static int inside_entry_func (CORE_ADDR pc) { if (symfile_objfile == 0) Index: defs.h =================================================================== RCS file: /cvs/src/src/gdb/defs.h,v retrieving revision 1.139 diff -u -r1.139 defs.h --- defs.h 2 Feb 2004 16:07:26 -0000 1.139 +++ defs.h 3 Feb 2004 03:56:54 -0000 @@ -327,8 +327,6 @@ /* From blockframe.c */ -extern int inside_entry_func (CORE_ADDR); - extern int deprecated_inside_entry_file (CORE_ADDR addr); extern int inside_main_func (CORE_ADDR pc); Index: frame.c =================================================================== RCS file: /cvs/src/src/gdb/frame.c,v retrieving revision 1.155 diff -u -r1.155 frame.c --- frame.c 11 Jan 2004 16:52:16 -0000 1.155 +++ frame.c 3 Feb 2004 03:57:19 -0000 @@ -39,6 +39,7 @@ #include "frame-base.h" #include "command.h" #include "gdbcmd.h" +#include "symfile.h" /* We keep a cache of stack frames, each of which is a "struct frame_info". The innermost one gets allocated (in @@ -1821,9 +1822,8 @@ checking for "main" in the minimal symbols. With that fixed asm-source tests now stop in "main" instead of halting the backtrace in wierd 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 deprecated_inside_entry_file test was 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 I @@ -1833,12 +1833,14 @@ /* NOTE: cagney/2003-07-15: Need to add a "set backtrace beyond-entry-func" command so that this can be selectively disabled. */ + /* NOTE: cagney/2004-02-02: Replaced call to inside_entry_func with + more direct check that the frame's function is the entry-point. */ if (0 #if 0 && backtrace_beyond_entry_func #endif && this_frame->type != DUMMY_FRAME && this_frame->level >= 0 - && inside_entry_func (get_frame_pc (this_frame))) + && get_frame_func (this_frame) == entry_point_address ()) { if (frame_debug) { Index: objfiles.h =================================================================== RCS file: /cvs/src/src/gdb/objfiles.h,v retrieving revision 1.29 diff -u -r1.29 objfiles.h --- objfiles.h 19 Jan 2004 19:56:02 -0000 1.29 +++ objfiles.h 3 Feb 2004 03:57:28 -0000 @@ -98,18 +98,7 @@ use the block at main, or can't find it for some reason, everything still works as before. And if we have no startup code debugging information but we do have usable information for main(), backtraces - from user code don't go wandering off into the startup code. - - To use this method, define your DEPRECATED_FRAME_CHAIN_VALID macro - like: - - #define DEPRECATED_FRAME_CHAIN_VALID(chain, thisframe) \ - (chain != 0 \ - && !(inside_main_func ((thisframe)->pc)) \ - && !(inside_entry_func ((thisframe)->pc))) - - and add initializations of the four scope controlling variables inside - the object file / debugging information processing modules. */ + from user code don't go wandering off into the startup code. */ struct entry_info {