Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Andrew Cagney <ac131313@redhat.com>
To: gdb-patches@sources.redhat.com
Subject: [patch, rfc, 6?] Enable identical frame sanity check
Date: Wed, 02 Jul 2003 18:27:00 -0000	[thread overview]
Message-ID: <3F03241B.1020908@redhat.com> (raw)

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

Hello,

This patch enables the `is the prev frame identical to this frame' check 
in get_prev_frame().  I forgot to enable it when I switched the frame ID 
code from using the frame's PC to using the frame's function.  Noticed 
this when reviewing Daniel's Arm frame update.

It should probably go straight into the mainline (tested on i386 and d10v).

Thoughts on 6?

Andrew

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

2003-07-02  Andrew Cagney  <cagney@redhat.com>

	* frame.c (get_prev_frame): Enable check for identical frames.
	Update comments.  Update error messages.

Index: frame.c
===================================================================
RCS file: /cvs/src/src/gdb/frame.c,v
retrieving revision 1.128
diff -u -r1.128 frame.c
--- frame.c	29 Jun 2003 13:27:26 -0000	1.128
+++ frame.c	2 Jul 2003 18:22:38 -0000
@@ -1933,25 +1933,21 @@
     }
 
   /* Check that this frame's ID isn't inner to (younger, below, next)
-     the next frame.  This happens when frame unwind goes backwards.
-     Since the sentinel frame isn't valid, don't apply this if this
-     frame is entier the inner-most or sentinel frame.  */
+     the next frame.  This happens when a frame unwind goes backwards.
+     Since the sentinel frame doesn't really exist, don't compare the
+     inner-most against that sentinel.  */
   if (this_frame->level > 0
       && frame_id_inner (get_frame_id (this_frame),
 			 get_frame_id (this_frame->next)))
-    error ("This frame inner-to next frame (corrupt stack?)");
+    error ("Previous frame inner to this frame (corrupt stack?)");
 
-  /* Check that this and the next frame are different.  If they are
-     not, there is most likely a stack cycle.  As with the inner-than
-     test, avoid the inner-most and sentinel frames.  */
-  /* FIXME: cagney/2003-03-17: Can't yet enable this this check. The
-     frame_id_eq() method doesn't yet use function addresses when
-     comparing frame IDs.  */
-  if (0
-      && this_frame->level > 0
+  /* Check that this and the next frame are not identical.  If they
+     are, there is most likely a stack cycle.  As with the inner-than
+     test above, avoid comparing the inner-most and sentinel frames.  */
+  if (this_frame->level > 0
       && frame_id_eq (get_frame_id (this_frame),
 		      get_frame_id (this_frame->next)))
-    error ("This frame identical to next frame (corrupt stack?)");
+    error ("Previous frame identical to this frame (corrupt stack?)");
 
   /* Allocate the new frame but do not wire it in to the frame chain.
      Some (bad) code in INIT_FRAME_EXTRA_INFO tries to look along

             reply	other threads:[~2003-07-02 18:27 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-02 18:27 Andrew Cagney [this message]
2003-07-02 18:36 ` Daniel Jacobowitz
2003-07-03 15:27   ` Andrew Cagney
2003-07-07 14:16     ` Daniel Jacobowitz
2003-07-07 19:05       ` Andrew Cagney
2003-07-07 15:32     ` Andrew Cagney
2003-07-07 19:47 ` Andrew Cagney

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3F03241B.1020908@redhat.com \
    --to=ac131313@redhat.com \
    --cc=gdb-patches@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox