Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Pedro Alves <pedro_alves@portugalmail.pt>
To: gdb-patches@sourceware.org
Subject: Crash in write_exp_msymbol for coff targets.
Date: Thu, 16 Nov 2006 20:53:00 -0000	[thread overview]
Message-ID: <455CCFAD.6060407@portugalmail.pt> (raw)

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

Hi all,

The TLS without debugging info support introduced a bug for coff based 
targets.
While printing for example a global symbol's value I am getting a 
segfault in parse.c:write_exp_msymbol,
at:
  if (SYMBOL_BFD_SECTION (msymbol)->flags & SEC_THREAD_LOCAL)

The problem is that minimal symbols may not have a bfd section set.

The attached patch fixes it, but is it correct?
I see in coffread.c, that prim_record_minimal_symbol_and_info is always 
called with a NULL
bfd section, whilst in elfread.c, is is not. Is this a limitation of the 
coff format? Should coffread.c
be fixed instead?

I caught this while running the testsuite for the arm-wince gdbserver 
port I am working on.

Cheers,
Pedro Alves

---

2006-11-16  Pedro Alves  <pedro_alves@portugalmail.pt>

    * parse.c (write_exp_msymbol): Check if SYMBOL_BFD_SECTION (msymbol) 
is NULL
    before dereferencing it.


[-- Attachment #2: nodeb.diff --]
[-- Type: text/plain, Size: 457 bytes --]

--- parse.c.org	2006-11-16 20:37:10.000000000 +0000
+++ parse.c	2006-11-16 00:19:52.000000000 +0000
@@ -408,7 +408,8 @@ write_exp_msymbol (struct minimal_symbol
 
   write_exp_elt_opcode (OP_LONG);
 
-  if (SYMBOL_BFD_SECTION (msymbol)->flags & SEC_THREAD_LOCAL)
+  if (SYMBOL_BFD_SECTION (msymbol)
+      && (SYMBOL_BFD_SECTION (msymbol)->flags & SEC_THREAD_LOCAL))
     {
       bfd *bfd = SYMBOL_BFD_SECTION (msymbol)->owner;
       struct objfile *ofp;

             reply	other threads:[~2006-11-16 20:53 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-16 20:53 Pedro Alves [this message]
2006-11-16 21:02 ` Daniel Jacobowitz
2006-11-16 23:40   ` Pedro Alves
2006-11-16 23:59     ` Daniel Jacobowitz
2006-11-17  0:47       ` Pedro Alves
2006-11-17  1:14         ` Pedro Alves
2006-11-18  1:15           ` Pedro Alves
2006-11-18 23:50           ` Daniel Jacobowitz
2006-11-19  4:05             ` Pedro Alves
2006-11-28 17:07               ` Daniel Jacobowitz
2006-11-18 23:54 ` Daniel Jacobowitz
2006-11-22  0:06   ` Joel Brobecker

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=455CCFAD.6060407@portugalmail.pt \
    --to=pedro_alves@portugalmail.pt \
    --cc=gdb-patches@sourceware.org \
    /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