aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@gnat.com>2010-01-29 04:33:00 +0000
committerJoel Brobecker <brobecker@gnat.com>2010-01-29 04:33:00 +0000
commita1504221ad15cfb08f22fd5548835d33f3d041de (patch)
tree2b3b6ff6997679dc333056bcbc1b1b330e5c9d63
parent18c2a94fb07723b57c6c087ab9e6f8ae847f9335 (diff)
downloadgdb-a1504221ad15cfb08f22fd5548835d33f3d041de.zip
gdb-a1504221ad15cfb08f22fd5548835d33f3d041de.tar.gz
gdb-a1504221ad15cfb08f22fd5548835d33f3d041de.tar.bz2
core files: wrong signal number with threaded program on sparc-solaris.
* elf.c (elfcore_grok_lwpstatus): Do not overwrite the core signal if it has already been set.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ce2c0c6..efd8613 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2010-01-29 Joel Brobecker <brobecker@adacore.com>
+
+ * elf.c (elfcore_grok_lwpstatus): Do not overwrite the core signal
+ if it has already been set.
+
2010-01-27 Tristan Gingold <gingold@adacore.com>
* vms.h: Remove trailing spaces.
diff --git a/bfd/elf.c b/bfd/elf.c
index aac3314..19e4695 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -7800,7 +7800,10 @@ elfcore_grok_lwpstatus (bfd *abfd, Elf_Internal_Note *note)
memcpy (&lwpstat, note->descdata, sizeof (lwpstat));
elf_tdata (abfd)->core_lwpid = lwpstat.pr_lwpid;
- elf_tdata (abfd)->core_signal = lwpstat.pr_cursig;
+ /* Do not overwrite the core signal if it has already been set by
+ another thread. */
+ if (elf_tdata (abfd)->core_signal == 0)
+ elf_tdata (abfd)->core_signal = lwpstat.pr_cursig;
/* Make a ".reg/999" section. */