Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [patch/rfc] Fix inside entry func call
@ 2004-02-03  4:06 Andrew Cagney
  2004-02-03 17:25 ` Daniel Jacobowitz
  0 siblings, 1 reply; 6+ messages in thread
From: Andrew Cagney @ 2004-02-03  4:06 UTC (permalink / raw)
  To: gdb-patches

[-- Attachment #1: Type: text/plain, Size: 418 bytes --]

Hello,

This, cleans up one part of a long dangling thread.  Per:
http://sources.redhat.com/ml/gdb-patches/2003-11/msg00462.html
This modifies the unwind code so that it uses the test:

+      && get_frame_func (this_frame) == entry_point_address ()

that that in place, the old inside_entry_func can be made static to 
blockframe.c.  This should reduce Kevin's patch to just doco + frame.c 
tweaks.

comments?
Andrew

[-- Attachment #2: diffs --]
[-- Type: text/plain, Size: 4186 bytes --]

2004-02-02  Andrew Cagney  <cagney@redhat.com>

	* 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
   {

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2004-02-04 16:43 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-02-03  4:06 [patch/rfc] Fix inside entry func call Andrew Cagney
2004-02-03 17:25 ` Daniel Jacobowitz
2004-02-03 22:19   ` Andrew Cagney
2004-02-04 15:40     ` Daniel Jacobowitz
2004-02-04 16:30       ` Andrew Cagney
2004-02-04 16:43         ` Daniel Jacobowitz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox