Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Kevin Buettner <kevinb@redhat.com>
To: gdb-patches@sources.redhat.com
Subject: [RFC] mdebugread.c: Fix IRIX segfault
Date: Tue, 18 Mar 2003 20:57:00 -0000	[thread overview]
Message-ID: <1030318205742.ZM24869@localhost.localdomain> (raw)

I recently discovered that a simple "Hello, world" program would cause
gdb to segfault when compiled with the Irix compiler for the o32 ABI. 
The change which cause this breakage in gdb is due to Joel's Jan 3
change to mdebugread.c.

It appears that the symbols in my o32 Irix binary don't use the
convention that Joel is relying upon to terminate the loop which
counts the fields.  However, it does appear that simply looking for an
iss of 0 is sufficient to terminate the search.  The documentation
that I've been able to locate about mdebug indicates that index 0 in
in the string tables will be the null string.  I'm using David
Anderson's doc dated August 30, 1995.

Any comments on the following patch?

mdebugread.c is maintainerless, right?  If not, I'll need approval from
the maintainer to check this in.

	* mdebugread.c (parse_symbol): For stEnd, we're done counting
	when iss is 0.

Index: mdebugread.c
===================================================================
RCS file: /cvs/src/src/gdb/mdebugread.c,v
retrieving revision 1.43
diff -u -p -r1.43 mdebugread.c
--- mdebugread.c	25 Feb 2003 21:36:18 -0000	1.43
+++ mdebugread.c	18 Mar 2003 20:42:33 -0000
@@ -916,9 +916,13 @@ parse_symbol (SYMR *sh, union aux_ext *a
                    method whose name is identical to the class name
                    (in particular constructor method names are different
                    from the class name).  There is therefore no risk that
-                   this check stops the count on the StEnd of a method.  */
-                if (strcmp (debug_info->ss + cur_fdr->issBase + tsym.iss,
-                            name) == 0)
+                   this check stops the count on the StEnd of a method.
+		   
+		   Also, assume that we're really at the end when tsym.iss
+		   is 0.  (An iss of zero points at the null string.)  */
+                if (tsym.iss == 0
+		    || strcmp (debug_info->ss + cur_fdr->issBase + tsym.iss,
+                               name) == 0)
                   goto end_of_fields;
                 break;
 


             reply	other threads:[~2003-03-18 20:57 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-03-18 20:57 Kevin Buettner [this message]
2003-03-19 19:52 ` Kevin Buettner

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=1030318205742.ZM24869@localhost.localdomain \
    --to=kevinb@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