public inbox for archer-commits@sourceware.org
help / color / mirror / Atom feed
* [SCM] jankratochvil/gdbserverbuildid: Merge branch 'common-mergehex-empty-moveprep-move-attrgen-validate' into common-mergehex-empty-moveprep-move-attrgen-validate-tests
@ 2014-02-26 21:39 jkratoch
0 siblings, 0 replies; 7+ messages in thread
From: jkratoch @ 2014-02-26 21:39 UTC (permalink / raw)
To: archer-commits
The branch, jankratochvil/gdbserverbuildid has been updated
via 8953a9a98a975ea23b068978d1ee372c2edf44c2 (commit)
via 47d8e322b49bbd7c7e5c086719d7d064863cffeb (commit)
via e73781007d8946baaa0fad80c4b63e02d6f2c214 (commit)
via d3ec4337e514d7408dc18b37e276307de4246c9b (commit)
via 1af6ede046bd329255da3404abbbde020cdaad16 (commit)
via 4286cd70ac36638260aa2b5286239fb2d9abf1d2 (commit)
from de59d31f0e7d694bf74a5bd539ae28a70c87daf1 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit 8953a9a98a975ea23b068978d1ee372c2edf44c2
Merge: d3ec433 47d8e32
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 22:38:24 2014 +0100
Merge branch 'common-mergehex-empty-moveprep-move-attrgen-validate' into common-mergehex-empty-moveprep-move-attrgen-validate-tests
commit 47d8e322b49bbd7c7e5c086719d7d064863cffeb
Merge: 1af6ede e737810
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 22:38:23 2014 +0100
Merge branch 'common-mergehex-empty-moveprep-move-attrgen' into common-mergehex-empty-moveprep-move-attrgen-validate
commit e73781007d8946baaa0fad80c4b63e02d6f2c214
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 22:38:19 2014 +0100
.
commit d3ec4337e514d7408dc18b37e276307de4246c9b
Merge: de59d31 1af6ede
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 22:33:12 2014 +0100
Merge branch 'common-mergehex-empty-moveprep-move-attrgen-validate' into common-mergehex-empty-moveprep-move-attrgen-validate-tests
commit 1af6ede046bd329255da3404abbbde020cdaad16
Merge: 114d249 4286cd7
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 22:33:12 2014 +0100
Merge branch 'common-mergehex-empty-moveprep-move-attrgen' into common-mergehex-empty-moveprep-move-attrgen-validate
commit 4286cd70ac36638260aa2b5286239fb2d9abf1d2
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 22:33:02 2014 +0100
.
-----------------------------------------------------------------------
Summary of changes:
gdb/gdbserver/linux-low.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
First 500 lines of diff:
diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
index a9829dc..a282313 100644
--- a/gdb/gdbserver/linux-low.c
+++ b/gdb/gdbserver/linux-low.c
@@ -5349,8 +5349,8 @@ get_phdr_phnum_from_proc_auxv (const int pid, const int is_elf64,
if (*phdr_memaddr == 0 || *num_phdr == 0)
{
- warning (_("Unexpected missing AT_PHDR and/or AT_PHNUM: "
- "phdr_memaddr = %ld, phdr_num = %d"),
+ warning ("Unexpected missing AT_PHDR and/or AT_PHNUM: "
+ "phdr_memaddr = %ld, phdr_num = %d",
(long) *phdr_memaddr, *num_phdr);
return 2;
}
@@ -5898,7 +5898,7 @@ linux_qxfer_libraries_svr4 (const char *annex, unsigned char *readbuf,
VEC_reserve (mapping_entry_s, data.list, 16);
if (linux_find_memory_regions_full (pid, find_memory_region_callback, &data,
NULL) < 0)
- warning ("Finding memory regions failed");
+ warning (_("Finding memory regions failed"));
while (annex[0] != '\0')
{
hooks/post-receive
--
Repository for Project Archer.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [SCM] jankratochvil/gdbserverbuildid: Merge branch 'common-mergehex-empty-moveprep-move-attrgen-validate' into common-mergehex-empty-moveprep-move-attrgen-validate-tests
@ 2014-02-27 20:19 jkratoch
0 siblings, 0 replies; 7+ messages in thread
From: jkratoch @ 2014-02-27 20:19 UTC (permalink / raw)
To: archer-commits
The branch, jankratochvil/gdbserverbuildid has been updated
via 9bfc8cc7f83e8e4bfbe049b1b1a7872662253e8b (commit)
via 066b19e79da634dd488e084a6d41cdb3463fdbbb (commit)
via 5fd148de332aa1a61f7941a1f944facf6bdd2ceb (commit)
via 8e6d4ab38a6c4f809470ce78168c49c82ef69948 (commit)
via fb9f93fc9db956497a21461355d84d1f2d4ae2fd (commit)
via 6d8951d7d1cc8719d70218684e7ac1f805df5e49 (commit)
via b3ce684b0c5d3e0b7bf2250ad7ada427d4e7bdd0 (commit)
via 3568f863a43cdf5c4192466863ac1373c4dede4b (commit)
via c91550fc5d8dae5f1140bca649690fa13e5276e9 (commit)
from 25f74e017f132f23bb1739cd6d138b241aeda267 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit 9bfc8cc7f83e8e4bfbe049b1b1a7872662253e8b
Merge: 25f74e0 066b19e
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 27 21:19:30 2014 +0100
Merge branch 'common-mergehex-empty-moveprep-move-attrgen-validate' into common-mergehex-empty-moveprep-move-attrgen-validate-tests
commit 066b19e79da634dd488e084a6d41cdb3463fdbbb
Merge: 0ab7e2d 5fd148d
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 27 21:19:29 2014 +0100
Merge branch 'common-mergehex-empty-moveprep-move-attrgen' into common-mergehex-empty-moveprep-move-attrgen-validate
commit 5fd148de332aa1a61f7941a1f944facf6bdd2ceb
Merge: c27b897 8e6d4ab
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 27 21:19:28 2014 +0100
Merge branch 'common-mergehex-empty-moveprep-move' into common-mergehex-empty-moveprep-move-attrgen
commit 8e6d4ab38a6c4f809470ce78168c49c82ef69948
Merge: 6dc0e59 fb9f93f
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 27 21:19:27 2014 +0100
Merge branch 'common-mergehex-empty-moveprep' into common-mergehex-empty-moveprep-move
commit fb9f93fc9db956497a21461355d84d1f2d4ae2fd
Merge: b0c663b 6d8951d
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 27 21:19:27 2014 +0100
Merge branch 'common-mergehex-empty' into common-mergehex-empty-moveprep
commit 6d8951d7d1cc8719d70218684e7ac1f805df5e49
Merge: d767a00 b3ce684
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 27 21:19:26 2014 +0100
Merge branch 'common-mergehex' into common-mergehex-empty
commit b3ce684b0c5d3e0b7bf2250ad7ada427d4e7bdd0
Merge: 335e60d 3568f86
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 27 21:19:23 2014 +0100
Merge branch 'common' into common-mergehex
commit 3568f863a43cdf5c4192466863ac1373c4dede4b
Merge: 01c4ebe c91550f
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 27 21:19:23 2014 +0100
Merge remote-tracking branch 'gdb/master' into common
commit c91550fc5d8dae5f1140bca649690fa13e5276e9
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 27 21:16:04 2014 +0100
Additional PR 8882 fix.
runtest gdb.base/corefile.exp
==23174== ERROR: AddressSanitizer: heap-use-after-free on address 0x604400008c88 at pc 0x68f0be bp 0x7fffae9d7490 sp
0x7fffae9d7480
READ of size 8 at 0x604400008c88 thread T0
#0 0x68f0bd in svr4_read_so_list (/home/jkratoch/redhat/gdb-clean/gdb/gdb+0x68f0bd)
#1 0x68f64e in svr4_current_sos_direct (/home/jkratoch/redhat/gdb-clean/gdb/gdb+0x68f64e)
#2 0x68f757 in svr4_current_sos (/home/jkratoch/redhat/gdb-clean/gdb/gdb+0x68f757)
#3 0xcebbff in update_solib_list (/home/jkratoch/redhat/gdb-clean/gdb/gdb+0xcebbff)
0x604400008c88 is located 8 bytes inside of 1104-byte region [0x604400008c80,0x6044000090d0)
freed by thread T0 here:
#0 0x7f52677500f9 (/lib64/libasan.so.0+0x160f9)
#1 0xd2c68a in xfree (/home/jkratoch/redhat/gdb-clean/gdb/gdb+0xd2c68a)
#2 0xceb364 in free_so (/home/jkratoch/redhat/gdb-clean/gdb/gdb+0xceb364)
#3 0xca59f8 in do_free_so (/home/jkratoch/redhat/gdb-clean/gdb/gdb+0xca59f8)
#4 0x93432a in do_my_cleanups (/home/jkratoch/redhat/gdb-clean/gdb/gdb+0x93432a)
#5 0x934406 in do_cleanups (/home/jkratoch/redhat/gdb-clean/gdb/gdb+0x934406)
#6 0x68efa9 in svr4_read_so_list (/home/jkratoch/redhat/gdb-clean/gdb/gdb+0x68efa9)
I did not notice it during my review in:
Re: [PATCH v2] Skip vDSO when reading SO list (PR 8882)
https://sourceware.org/ml/gdb-patches/2013-09/msg00888.html
gdb/
2014-02-27 Jan Kratochvil <jan.kratochvil@redhat.com>
Additional PR 8882 fix.
* solib-svr4.c (svr4_read_so_list): Change first to first_l_name.
Message-ID: <20140226220918.GA10431@host2.jankratochvil.net>
-----------------------------------------------------------------------
Summary of changes:
gdb/ChangeLog | 5 +++++
gdb/solib-svr4.c | 7 +++----
2 files changed, 8 insertions(+), 4 deletions(-)
First 500 lines of diff:
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 6cfb9c5..5dadb4f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2014-02-27 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ Additional PR 8882 fix.
+ * solib-svr4.c (svr4_read_so_list): Change first to first_l_name.
+
2014-02-27 Pedro Alves <palves@redhat.com>
* nat/linux-waitpid.c (my_waitpid): Only block signals if WNOHANG
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index 45fcb99..7d4cce9 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -1359,7 +1359,7 @@ static int
svr4_read_so_list (CORE_ADDR lm, CORE_ADDR prev_lm,
struct so_list ***link_ptr_ptr, int ignore_first)
{
- struct so_list *first = NULL;
+ CORE_ADDR first_l_name;
CORE_ADDR next_lm;
for (; lm != 0; prev_lm = lm, lm = next_lm)
@@ -1399,7 +1399,7 @@ svr4_read_so_list (CORE_ADDR lm, CORE_ADDR prev_lm,
{
struct svr4_info *info = get_svr4_info ();
- first = new;
+ first_l_name = new->lm_info->l_name;
info->main_lm_addr = new->lm_info->lm_addr;
do_cleanups (old_chain);
continue;
@@ -1414,8 +1414,7 @@ svr4_read_so_list (CORE_ADDR lm, CORE_ADDR prev_lm,
inferior executable, then this is not a normal shared
object, but (most likely) a vDSO. In this case, silently
skip it; otherwise emit a warning. */
- if (first == NULL
- || new->lm_info->l_name != first->lm_info->l_name)
+ if (first_l_name == 0 || new->lm_info->l_name != first_l_name)
warning (_("Can't read pathname for load map: %s."),
safe_strerror (errcode));
do_cleanups (old_chain);
hooks/post-receive
--
Repository for Project Archer.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [SCM] jankratochvil/gdbserverbuildid: Merge branch 'common-mergehex-empty-moveprep-move-attrgen-validate' into common-mergehex-empty-moveprep-move-attrgen-validate-tests
@ 2014-02-27 17:52 jkratoch
0 siblings, 0 replies; 7+ messages in thread
From: jkratoch @ 2014-02-27 17:52 UTC (permalink / raw)
To: archer-commits
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 37563 bytes --]
The branch, jankratochvil/gdbserverbuildid has been updated
via 25f74e017f132f23bb1739cd6d138b241aeda267 (commit)
via 0ab7e2d25bf216fd9bd63e9c652e81a556595aad (commit)
via c27b897f403c5997fe203b921c67ef5ec512225c (commit)
via 6dc0e59c89084a2352ef6d45e50a4bfd9e053ef8 (commit)
via b0c663b3612a09d625a5f64c2dc0b8ff9997ba35 (commit)
via d767a007c3608c8c3efefd214a30df7bb5411ae5 (commit)
via 335e60d6a25687a38957d4a67d1af6aaed586e50 (commit)
via 01c4ebea0c2e5ab1989a8b6104c00bef8db990bf (commit)
via 47191c56e4d64c6232384c1a07c146e75bcc5044 (commit)
via f17c8bfcc87ba90d55a0fecfb8f7a9933b883457 (commit)
via a58549dda5a060d3cadb05dbf54c607a8efb8092 (commit)
via 2fa0369e5127bff4ea68b596b1984314feb68299 (commit)
via 1db37fe62781b677a37acbe801c1e69d8912a124 (commit)
via fa96cb382c12b099675c5cc238aaa7352a3fd3d7 (commit)
via d632a0971cf9c8044e2b59da45ba6bbc27714c84 (commit)
via 2ebd5a35208e40dab7df46c7d6d58f4d614c6e21 (commit)
via 5063daf7357ccdc2c9e899ca0421c2e8e580c88d (commit)
via db434ba03edb5491d48415069d6116b5037e6fa1 (commit)
via 3cdd631f17c822cd58f2fc9c742dc60ed683b5c1 (commit)
via bee30a640c950b86019bceb4a8dca7a94ef11600 (commit)
via 27a48a9223d0c7558f0bfde2d704d4a660f5d4ea (commit)
via 2e877f5ecb5916d147f91dfad461a8fa5017d8b0 (commit)
via 7a5a839f3a82e23f7745dd9905191716c74e34df (commit)
from 8953a9a98a975ea23b068978d1ee372c2edf44c2 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit 25f74e017f132f23bb1739cd6d138b241aeda267
Merge: 8953a9a 0ab7e2d
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 27 18:51:49 2014 +0100
Merge branch 'common-mergehex-empty-moveprep-move-attrgen-validate' into common-mergehex-empty-moveprep-move-attrgen-validate-tests
commit 0ab7e2d25bf216fd9bd63e9c652e81a556595aad
Merge: 47191c5 c27b897
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 27 18:51:49 2014 +0100
Merge branch 'common-mergehex-empty-moveprep-move-attrgen' into common-mergehex-empty-moveprep-move-attrgen-validate
commit c27b897f403c5997fe203b921c67ef5ec512225c
Merge: e737810 6dc0e59
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 27 18:51:48 2014 +0100
Merge branch 'common-mergehex-empty-moveprep-move' into common-mergehex-empty-moveprep-move-attrgen
commit 6dc0e59c89084a2352ef6d45e50a4bfd9e053ef8
Merge: 02febad b0c663b
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 27 18:51:47 2014 +0100
Merge branch 'common-mergehex-empty-moveprep' into common-mergehex-empty-moveprep-move
commit b0c663b3612a09d625a5f64c2dc0b8ff9997ba35
Merge: 6e89496 d767a00
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 27 18:51:47 2014 +0100
Merge branch 'common-mergehex-empty' into common-mergehex-empty-moveprep
commit d767a007c3608c8c3efefd214a30df7bb5411ae5
Merge: 82a64af 335e60d
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 27 18:51:46 2014 +0100
Merge branch 'common-mergehex' into common-mergehex-empty
commit 335e60d6a25687a38957d4a67d1af6aaed586e50
Merge: ea6f736 01c4ebe
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 27 18:51:45 2014 +0100
Merge branch 'common' into common-mergehex
commit 01c4ebea0c2e5ab1989a8b6104c00bef8db990bf
Merge: 12e2836 f17c8bf
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 27 18:51:44 2014 +0100
Merge remote-tracking branch 'gdb/master' into common
commit 47191c56e4d64c6232384c1a07c146e75bcc5044
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Thu Feb 27 18:51:17 2014 +0100
.
commit f17c8bfcc87ba90d55a0fecfb8f7a9933b883457
Author: Yufeng Zhang <yufeng.zhang@arm.com>
Date: Thu Feb 27 15:06:56 2014 +0000
opcodes/
* aarch64-tbl.h (aarch64_opcode_table): Replace IMM0 with
FPIMM0 for fcmeq, fcmgt, fcmge, fcmlt and fcmle.
gas/testsuite/
* gas/aarch64/fp-const0-parsing.s: New test.
* gas/aarch64/fp-const0-parsing.d: Likewise.
commit a58549dda5a060d3cadb05dbf54c607a8efb8092
Author: Yufeng Zhang <yufeng.zhang@arm.com>
Date: Thu Feb 27 14:55:46 2014 +0000
opcodes/
* aarch64-opc.c (print_register_offset_address): Call
get_int_reg_name to prepare the register name.
gas/testsuite/
* gas/aarch64/ldst-reg-reg-offset.s: Add tests.
* gas/aarch64/ldst-reg-reg-offset.d: Update.
commit 2fa0369e5127bff4ea68b596b1984314feb68299
Author: Pedro Alves <palves@redhat.com>
Date: Thu Feb 27 14:44:16 2014 +0000
Linux waitpid/__WALL emulation wrapper: If WNOHANG is set, don't touch sigprocmask.
Just a small optimization. No need to block/unblock signals if we're
not going to call sigsuspend.
gdb/
2014-02-27 Pedro Alves <palves@redhat.com>
* nat/linux-waitpid.c (my_waitpid): Only block signals if WNOHANG
isn't set.
commit 1db37fe62781b677a37acbe801c1e69d8912a124
Author: Yuri Gribov <y.gribov@samsung.com>
Date: Thu Feb 27 14:35:37 2014 +0000
This patch adds support for ARM PLT entries that support a full 32-bit offset range.
Enabled via the use of a new linker command line option: --long-plt.
* bfd-in.h: Add export of bfd_elf32_arm_use_long_plt.
* bfd-in2.h: Regenerate.
* elf32-arm.c (elf32_arm_plt_entry_long): New array.
(elf32_arm_link_hash_table_create): Set plt_entry_size to 16 if
using long PLT entries.
(bfd_elf32_arm_use_long_plt): New function.
(elf32_arm_populate_plt_entry): Add support for long PLT entries.
* emultempl/armelf.em (OPTION_LONG_PLT): Define.
(PARSE_AND_LIST_LONGOPTS): Add long-plt.
(PARSE_AND_LIST_OPTIONS): Likewise.
(PARSE_AND_LIST_ARGS_CASES): Handle long-plt.
* ld.texinfo: Document --long-plt.
* ld-arm/long-plt-format.s: New test case.
* ld-arm/long-plt-format.d: Expected disassembly.
* ld-arm/arm-elf.exp: Run the new test.
commit fa96cb382c12b099675c5cc238aaa7352a3fd3d7
Author: Pedro Alves <palves@redhat.com>
Date: Thu Feb 27 14:30:08 2014 +0000
Teach GDBserver's Linux backend about no unwaited-for children (TARGET_WAITKIND_NO_RESUMED).
GDBserver currently hangs forever in waitpid if the leader thread
exits before other threads, or if all resumed threads exit - e.g.,
next over a thread exit with sched-locking on. This is exposed by
leader-exit.exp. leader-exit.exp is part of a series of tests for a
set of related problems. See
<http://www.sourceware.org/ml/gdb-patches/2011-10/msg00704.html>:
"
To recap, on the Linux kernel, ptrace/waitpid don't allow reaping the
leader thread until all other threads in the group are reaped. When
the leader exits, it goes zombie, but waitpid will not return an exit
status until the other threads are gone. This is presently exercised
by the gdb.threads/leader-exit.exp test. The fix for that test, in
linux-nat.c:wait_lwp, handles the case where we see the leader gone
when we're stopping all threads to report an event to some other
thread to the core.
(...)
The latter bit about not blocking if there no resumed threads in the
process also applies to some other thread exiting, not just the main
thread. E.g., this test starts a thread, and runs to a breakpoint in
that thread:
...
(gdb) c
Continuing.
[New Thread 0x7ffff75a4700 (LWP 23397)]
[Switching to Thread 0x7ffff75a4700 (LWP 23397)]
Breakpoint 2, thread_a (arg=0x0) at ../../../src/gdb/testsuite/gdb.threads/no-unwaited-for-left.c:28
28 return 0; /* break-here */
(gdb) info threads
* 2 Thread 0x7ffff75a4700 (LWP 23397) thread_a (arg=0x0) at ../../../src/gdb/testsuite/gdb.threads/no-unwaited-for-left.c:28
1 Thread 0x7ffff7fcb720 (LWP 23391) 0x00007ffff7bc606d in pthread_join (threadid=140737343276800, thread_return=0x0) at pthread_join.c:89
The thread will exit as soon as we resume it. But if we only resume
that thread, leaving the rest of the threads stopped:
(gdb) set scheduler-locking on
(gdb) c
Continuing.
^C^C^C^C^C^C^C^C
"
This patch fixes the issues by implementing TARGET_WAITKIND_NO_RESUMED
on GDBserver, similarly to what the patch above did for native
Linux GDB.
gdb.threads/leader-exit.exp now passes.
gdb.threads/no-unwaited-for-left.exp now at least errors out instead
of hanging:
continue
Continuing.
warning: Remote failure reply: E.No unwaited-for children left.
[Thread 15454] #1 stopped.
0x00000034cf408e60 in pthread_join (threadid=140737353922368, thread_return=0x0) at pthread_join.c:93
93 lll_wait_tid (pd->tid);
(gdb) FAIL: gdb.threads/no-unwaited-for-left.exp: continue stops when the main thread exits
The gdb.threads/non-ldr-exc-*.exp tests are skipped because GDBserver
unfortunately doesn't support fork/exec yet, but I'm confident this
fixes the related issues.
I'm leaving modeling TARGET_WAITKIND_NO_RESUMED in the RSP for a
separate pass.
(BTW, in case of error in response to a vCont, it would be better for
GDB to query the target for the current thread, or re-select one,
instead of assuming current inferior_ptid is still the selected
thread.)
This implementation is a little different from GDB's, because I'm
avoiding bringing in more of this broken use of waitpid(PID) into
GDBserver. Specifically, this avoids waitpid(PID) when stopping all
threads. There's really no need for wait_for_sigstop to wait for each
LWP in turn. Instead, with some refactoring, we make it reuse
linux_wait_for_event.
gdb/gdbserver/
2014-02-27 Pedro Alves <palves@redhat.com>
PR 12702
* inferiors.h (A_I_NEXT, ALL_INFERIORS_TYPE, ALL_PROCESSES): New
macros.
* linux-low.c (delete_lwp, handle_extended_wait): Add debug
output.
(last_thread_of_process_p): Take a PID argument instead of a
thread pointer.
(linux_wait_for_lwp): Delete.
(num_lwps, check_zombie_leaders, not_stopped_callback): New
functions.
(linux_low_filter_event): New function, party factored out from
linux_wait_for_event.
(linux_wait_for_event): Rename to ...
(linux_wait_for_event_filtered): ... this. Add new filter ptid
argument. Partly rewrite. Always use waitpid(-1, WNOHANG) and
sigsuspend. Check for zombie leaders.
(linux_wait_for_event): Reimplement as wrapper around
linux_wait_for_event_filtered.
(linux_wait_1): Handle TARGET_WAITKIND_NO_RESUMED. Assume that if
a normal or signal exit is seen, it's the whole process exiting.
(wait_for_sigstop): No longer a for_each_inferior callback.
Rewrite on top of linux_wait_for_event_filtered.
(stop_all_lwps): Call wait_for_sigstop directly.
* server.c (resume, handle_target_event): Handle
TARGET_WAITKIND_NO_RESUMED.
commit d632a0971cf9c8044e2b59da45ba6bbc27714c84
Author: Pedro Alves <palves@redhat.com>
Date: Thu Feb 27 14:30:08 2014 +0000
Move linux-nat.c:status_to_str to nat/linux-waitpid.c.
So that gdbserver's Linux backend can use it too.
gdb/
2014-02-27 Pedro Alves <palves@redhat.com>
PR 12702
* linux-nat.c (status_to_str): Moved to nat/linux-waitpid.c.
* nat/linux-waitpid.c: Include string.h.
(status_to_str): Moved here and made extern.
* nat/linux-waitpid.h (status_to_str): New declaration.
commit 2ebd5a35208e40dab7df46c7d6d58f4d614c6e21
Author: Hui Zhu <hui@codesourcery.com>
Date: Thu Feb 27 14:30:07 2014 +0000
Move ptid_match to common/ptid.c.
So that gdbserver can use it too.
gdb/
2014-02-27 Hui Zhu <hui@codesourcery.com>
PR 12702
* infrun.c (ptid_match): Move ...
* common/ptid.c (ptid_match): ... here.
* inferior.h (ptid_match): Move ...
* common/ptid.h (ptid_match): ... here.
commit 5063daf7357ccdc2c9e899ca0421c2e8e580c88d
Author: Nick Clifton <nickc@redhat.com>
Date: Thu Feb 27 14:09:29 2014 +0000
This patch adds a default manifest in to the final links performed by the Cygwin and MinGW targets.
The manifest is necessary in order for the linked binaries to be executed in a Windows 8 environment.
The manifest is added using a linker script so that this feature will be compiler-neutral. The resource
merging code in the linker means that if an application provides its own manifest then the default
manifest will be ignored.
* configure.in (all_emul_extra_binaries): New variable. Populated
by invoking configure.tgt.
(EMUL_EXTRA_BINARIES): New substitution.
* configure: Regenerate.
* configure.tgt (target_extra_binaries): New variable. Set to
default-manifest.o for Cygwin and MinGW targets.
* Makefile.am (EMUL_EXTRA_BINARIES): New variable. Initialised
by the configure script.
(ALL_EMUL_EXTRA_BINARIES): New variable.
(default-manifest.o): New rule to build the default manifest.
(ld_new_DEPENDENCIES): Add EMUL_EXTRA_BINARIES.
(install-data-local): Add EMUL_EXTRA_BINARIES.
* Makefile.in: Regenerate.
* ld.texinfo: Document default manifest support.
* emulparams/i386pe.sh (DEFAULT_MANIFEST): Define.
* emulparams/i386pep.sh (DEFAULT_MANIFEST): Define.
* emultempl/default-manifest.rc: New file.
* scripttempl/pe.sc (R_RSRC): Include DEFAULT_MANIFEST, if defined.
* scripttempl/pep.sc (R_RSRC): Likewise.
* ld-pe/longsecn-1.d: Allow for extra sections.
* ld-pe/longsecn-2.d: Likewise.
* ld-pe/longsecn.d: Likewise.
* ld-pe/secrel.d: Likewise.
commit db434ba03edb5491d48415069d6116b5037e6fa1
Author: Alan Modra <amodra@gmail.com>
Date: Thu Feb 27 23:31:35 2014 +1030
Fix ELF ppc32 targets that don't use ppc32elf.em
5446cbdf82892a800ed7eef563a795e75223ec52 broke powerpc-lynxos,
powerpc-netware, powerpc-windiss and powerpc-vxworks.
bfd/
* elf32-ppc.c (ppc_elf_link_hash_table_create): Provide default
params for targets that don't use ppc32elf.em.
ld/
* emulparams/elf32ppcvxworks.sh: Source plt_unwind.sh and
use ppc32elf.em.
* emultempl/ppc32elf.em (ppc_after_open): Don't compile for
vxworks.
(LDEMUL_AFTER_OPEN): Don't set for vxworks.
(PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS): Exclude
-secure-plt, -bss-plt and -sdata-got when vxworks.
commit 3cdd631f17c822cd58f2fc9c742dc60ed683b5c1
Author: Mark Kettenis <kettenis@gnu.org>
Date: Thu Feb 27 14:07:10 2014 +0100
Call common OpenBSD ABI init code on OpenBSD/mips64.
* mips64obsd-tdep.c (mips64obsd_init_abi): Call obsd_init_abi.
* configure.tgt (mips64*-*-openbsd*): Add obsd-tdep.c to
gdb_target_obs.
commit bee30a640c950b86019bceb4a8dca7a94ef11600
Author: Mark Kettenis <kettenis@gnu.org>
Date: Thu Feb 27 13:47:00 2014 +0100
Add gdbarch auxv parsing for OpenBSD.
gdb/Changelog:
* obsd-tdep.c (obsd_auxv_parse): New function.
(obsd_init_abi): Set auxv_parse.
commit 27a48a9223d0c7558f0bfde2d704d4a660f5d4ea
Author: Mark Kettenis <kettenis@gnu.org>
Date: Thu Feb 27 13:40:15 2014 +0100
Add auxv parsing to the architecture vector.
Necessary to fix parsing auxv entries from core files on systems that use
the layout specified by ELF instead of the incompatible variant used by Linux.
gdb/Changelog:
* gdbarch.sh (auxv_parse): New.
* gdbarch.h: Regenerated.
* gdbarch.c: Regenerated.
* auxv.c (target_auxv_parse): Call gdbarch_parse_auxv if provided.
commit 2e877f5ecb5916d147f91dfad461a8fa5017d8b0
Author: Alan Modra <amodra@gmail.com>
Date: Thu Feb 27 09:31:09 2014 +1030
daily update
commit 7a5a839f3a82e23f7745dd9905191716c74e34df
Author: Ludovic Courtès <ludo@gnu.org>
Date: Tue Feb 18 23:35:46 2014 +0100
guile: Add 'history-append!' procedure.
gdb/
2014-02-26 Ludovic Courtès <ludo@gnu.org>
* guile/scm-value.c (gdbscm_history_append_x): New function.
(value_functions): Add it.
gdb/testsuite/
2014-02-26 Ludovic Courtès <ludo@gnu.org>
* gdb.guile/scm-value.exp (test_value_in_inferior): Add
test for 'history-append!'.
gdb/doc/
2014-02-26 Ludovic Courtès <ludo@gnu.org>
* gdb/doc/guile.texi (Basic Guile): Document 'history-append!'.
-----------------------------------------------------------------------
Summary of changes:
bfd/ChangeLog | 15 +
bfd/bfd-in.h | 12 +-
bfd/bfd-in2.h | 12 +-
bfd/elf32-arm.c | 83 ++-
bfd/elf32-ppc.c | 7 +-
bfd/version.h | 2 +-
gas/testsuite/ChangeLog | 10 +
gas/testsuite/gas/aarch64/fp-const0-parse.d | 37 +
gas/testsuite/gas/aarch64/fp-const0-parse.s | 60 ++
gas/testsuite/gas/aarch64/ldst-reg-reg-offset.d | 4 +
gas/testsuite/gas/aarch64/ldst-reg-reg-offset.s | 6 +
gdb/ChangeLog | 42 ++
gdb/auxv.c | 5 +
gdb/common/ptid.c | 14 +
gdb/common/ptid.h | 10 +
gdb/configure.tgt | 2 +-
gdb/doc/ChangeLog | 4 +
gdb/doc/guile.texi | 9 +
gdb/gdbarch.c | 32 +
gdb/gdbarch.h | 11 +
gdb/gdbarch.sh | 6 +
gdb/gdbserver/ChangeLog | 28 +
gdb/gdbserver/inferiors.h | 22 +
gdb/gdbserver/linux-low.c | 852 +++++++++++++----------
gdb/gdbserver/server.c | 18 +-
gdb/guile/scm-value.c | 25 +
gdb/inferior.h | 10 -
gdb/infrun.c | 14 -
gdb/linux-nat.c | 25 -
gdb/mips64obsd-tdep.c | 3 +
gdb/nat/linux-waitpid.c | 49 ++-
gdb/nat/linux-waitpid.h | 4 +
gdb/obsd-tdep.c | 28 +
gdb/solib-svr4.c | 103 +---
gdb/testsuite/ChangeLog | 5 +
gdb/testsuite/gdb.guile/scm-value.exp | 8 +
ld/ChangeLog | 40 ++
ld/Makefile.am | 16 +-
ld/Makefile.in | 17 +-
ld/configure | 18 +-
ld/configure.in | 13 +
ld/configure.tgt | 12 +-
ld/emulparams/elf32ppcvxworks.sh | 2 +
ld/emulparams/i386pe.sh | 1 +
ld/emulparams/i386pep.sh | 1 +
ld/emultempl/armelf.em | 14 +-
ld/emultempl/default-manifest.rc | 28 +
ld/emultempl/ppc32elf.em | 31 +-
ld/ld.texinfo | 44 +-
ld/scripttempl/pe.sc | 34 +-
ld/scripttempl/pep.sc | 34 +-
ld/testsuite/ChangeLog | 13 +
ld/testsuite/ld-arm/arm-elf.exp | 6 +-
ld/testsuite/ld-arm/long-plt-format.d | 15 +
ld/testsuite/ld-arm/long-plt-format.s | 7 +
ld/testsuite/ld-pe/longsecn-1.d | 2 +-
ld/testsuite/ld-pe/longsecn-2.d | 1 +
ld/testsuite/ld-pe/longsecn.d | 2 +-
ld/testsuite/ld-pe/secrel.d | 1 +
opcodes/ChangeLog | 10 +
opcodes/aarch64-opc.c | 7 +-
opcodes/aarch64-tbl.h | 20 +-
62 files changed, 1359 insertions(+), 607 deletions(-)
create mode 100644 gas/testsuite/gas/aarch64/fp-const0-parse.d
create mode 100644 gas/testsuite/gas/aarch64/fp-const0-parse.s
create mode 100644 ld/emultempl/default-manifest.rc
create mode 100644 ld/testsuite/ld-arm/long-plt-format.d
create mode 100644 ld/testsuite/ld-arm/long-plt-format.s
First 500 lines of diff:
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index c5868ef..472bc89 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,18 @@
+2014-02-27 Yuri Gribov <y.gribov@samsung.com>
+
+ * bfd-in.h: Add export of bfd_elf32_arm_use_long_plt.
+ * bfd-in2.h: Regenerate.
+ * elf32-arm.c (elf32_arm_plt_entry_long): New array.
+ (elf32_arm_link_hash_table_create): Set plt_entry_size to 16 if
+ using long PLT entries.
+ (bfd_elf32_arm_use_long_plt): New function.
+ (elf32_arm_populate_plt_entry): Add support for long PLT entries.
+
+2014-02-27 Alan Modra <amodra@gmail.com>
+
+ * elf32-ppc.c (ppc_elf_link_hash_table_create): Provide default
+ params for targets that don't use ppc32elf.em.
+
2014-02-20 Chung-Lin Tang <cltang@codesourcery.com>
* elf32-nios2.c (nios2_elf32_relocate_section): Fix calculation
diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h
index c7c5a7d..54ddac9 100644
--- a/bfd/bfd-in.h
+++ b/bfd/bfd-in.h
@@ -1,6 +1,6 @@
/* Main header file for the bfd library -- portable access to object files.
- Copyright 1990-2013 Free Software Foundation, Inc.
+ Copyright 1990-2014 Free Software Foundation, Inc.
Contributed by Cygnus Support.
@@ -877,15 +877,19 @@ extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
(bfd *, struct bfd_link_info *);
-/* ELF ARM mapping symbol support */
+/* ELF ARM mapping symbol support. */
#define BFD_ARM_SPECIAL_SYM_TYPE_MAP (1 << 0)
#define BFD_ARM_SPECIAL_SYM_TYPE_TAG (1 << 1)
#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER (1 << 2)
#define BFD_ARM_SPECIAL_SYM_TYPE_ANY (~0)
+
extern bfd_boolean bfd_is_arm_special_symbol_name
- (const char * name, int type);
+ (const char *, int);
+
+extern void bfd_elf32_arm_set_byteswap_code
+ (struct bfd_link_info *, int);
-extern void bfd_elf32_arm_set_byteswap_code (struct bfd_link_info *, int);
+extern void bfd_elf32_arm_use_long_plt (void);
/* ARM Note section processing. */
extern bfd_boolean bfd_arm_merge_machines
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 33792f4..ebc7496 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -7,7 +7,7 @@
/* Main header file for the bfd library -- portable access to object files.
- Copyright 1990-2013 Free Software Foundation, Inc.
+ Copyright 1990-2014 Free Software Foundation, Inc.
Contributed by Cygnus Support.
@@ -884,15 +884,19 @@ extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
(bfd *, struct bfd_link_info *);
-/* ELF ARM mapping symbol support */
+/* ELF ARM mapping symbol support. */
#define BFD_ARM_SPECIAL_SYM_TYPE_MAP (1 << 0)
#define BFD_ARM_SPECIAL_SYM_TYPE_TAG (1 << 1)
#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER (1 << 2)
#define BFD_ARM_SPECIAL_SYM_TYPE_ANY (~0)
+
extern bfd_boolean bfd_is_arm_special_symbol_name
- (const char * name, int type);
+ (const char *, int);
+
+extern void bfd_elf32_arm_set_byteswap_code
+ (struct bfd_link_info *, int);
-extern void bfd_elf32_arm_set_byteswap_code (struct bfd_link_info *, int);
+extern void bfd_elf32_arm_use_long_plt (void);
/* ARM Note section processing. */
extern bfd_boolean bfd_arm_merge_machines
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 7216244..b17f4d4 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -1,5 +1,5 @@
/* 32-bit ELF support for ARM
- Copyright 1998-2013 Free Software Foundation, Inc.
+ Copyright 1998-2014 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -2140,15 +2140,27 @@ static const bfd_vma elf32_arm_plt0_entry [] =
0x00000000, /* &GOT[0] - . */
};
-/* Subsequent entries in a procedure linkage table look like
- this. */
-static const bfd_vma elf32_arm_plt_entry [] =
+/* By default subsequent entries in a procedure linkage table look like
+ this. Offsets that don't fit into 28 bits will cause link error. */
+static const bfd_vma elf32_arm_plt_entry_short [] =
{
0xe28fc600, /* add ip, pc, #0xNN00000 */
0xe28cca00, /* add ip, ip, #0xNN000 */
0xe5bcf000, /* ldr pc, [ip, #0xNNN]! */
};
+/* When explicitly asked, we'll use this "long" entry format
+ which can cope with arbitrary displacements. */
+static const bfd_vma elf32_arm_plt_entry_long [] =
+{
+ 0xe28fc200, /* add ip, pc, #0xN0000000 */
+ 0xe28cc600, /* add ip, ip, #0xNN00000 */
+ 0xe28cca00, /* add ip, ip, #0xNN000 */
+ 0xe5bcf000, /* ldr pc, [ip, #0xNNN]! */
+};
+
+static bfd_boolean elf32_arm_use_long_plt_entry = FALSE;
+
#endif
/* The format of the first entry in the procedure linkage table
@@ -3464,7 +3476,7 @@ elf32_arm_link_hash_table_create (bfd *abfd)
ret->plt_entry_size = 16;
#else
ret->plt_header_size = 20;
- ret->plt_entry_size = 12;
+ ret->plt_entry_size = elf32_arm_use_long_plt_entry ? 16 : 12;
#endif
ret->use_rel = 1;
ret->obfd = abfd;
@@ -6027,6 +6039,15 @@ arm_make_glue_section (bfd * abfd, const char * name)
return TRUE;
}
+/* Set size of .plt entries. This function is called from the
+ linker scripts in ld/emultempl/{armelf}.em. */
+
+void
+bfd_elf32_arm_use_long_plt (void)
+{
+ elf32_arm_use_long_plt_entry = TRUE;
+}
+
/* Add the glue sections to ABFD. This function is called from the
linker scripts in ld/emultempl/{armelf}.em. */
@@ -7705,8 +7726,6 @@ elf32_arm_populate_plt_entry (bfd *output_bfd, struct bfd_link_info *info,
of the PLT stub. */
got_displacement = got_address - (plt_address + 8);
- BFD_ASSERT ((got_displacement & 0xf0000000) == 0);
-
if (elf32_arm_plt_needs_thumb_stub_p (info, arm_plt))
{
put_thumb_insn (htab, output_bfd,
@@ -7715,21 +7734,45 @@ elf32_arm_populate_plt_entry (bfd *output_bfd, struct bfd_link_info *info,
elf32_arm_plt_thumb_stub[1], ptr - 2);
}
- put_arm_insn (htab, output_bfd,
- elf32_arm_plt_entry[0]
- | ((got_displacement & 0x0ff00000) >> 20),
- ptr + 0);
- put_arm_insn (htab, output_bfd,
- elf32_arm_plt_entry[1]
- | ((got_displacement & 0x000ff000) >> 12),
- ptr+ 4);
- put_arm_insn (htab, output_bfd,
- elf32_arm_plt_entry[2]
- | (got_displacement & 0x00000fff),
- ptr + 8);
+ if (!elf32_arm_use_long_plt_entry)
+ {
+ BFD_ASSERT ((got_displacement & 0xf0000000) == 0);
+
+ put_arm_insn (htab, output_bfd,
+ elf32_arm_plt_entry_short[0]
+ | ((got_displacement & 0x0ff00000) >> 20),
+ ptr + 0);
+ put_arm_insn (htab, output_bfd,
+ elf32_arm_plt_entry_short[1]
+ | ((got_displacement & 0x000ff000) >> 12),
+ ptr+ 4);
+ put_arm_insn (htab, output_bfd,
+ elf32_arm_plt_entry_short[2]
+ | (got_displacement & 0x00000fff),
+ ptr + 8);
#ifdef FOUR_WORD_PLT
- bfd_put_32 (output_bfd, elf32_arm_plt_entry[3], ptr + 12);
+ bfd_put_32 (output_bfd, elf32_arm_plt_entry_short[3], ptr + 12);
#endif
+ }
+ else
+ {
+ put_arm_insn (htab, output_bfd,
+ elf32_arm_plt_entry_long[0]
+ | ((got_displacement & 0xf0000000) >> 28),
+ ptr + 0);
+ put_arm_insn (htab, output_bfd,
+ elf32_arm_plt_entry_long[1]
+ | ((got_displacement & 0x0ff00000) >> 20),
+ ptr + 4);
+ put_arm_insn (htab, output_bfd,
+ elf32_arm_plt_entry_long[2]
+ | ((got_displacement & 0x000ff000) >> 12),
+ ptr+ 8);
+ put_arm_insn (htab, output_bfd,
+ elf32_arm_plt_entry_long[3]
+ | (got_displacement & 0x00000fff),
+ ptr + 12);
+ }
}
/* Fill in the entry in the .rel(a).(i)plt section. */
diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c
index 1c8724f..5bfa33b 100644
--- a/bfd/elf32-ppc.c
+++ b/bfd/elf32-ppc.c
@@ -1,7 +1,5 @@
/* PowerPC-specific support for 32-bit ELF
- Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
- 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
- Free Software Foundation, Inc.
+ Copyright (C) 1994-2014 Free Software Foundation, Inc.
Written by Ian Lance Taylor, Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -3252,6 +3250,7 @@ static struct bfd_link_hash_table *
ppc_elf_link_hash_table_create (bfd *abfd)
{
struct ppc_elf_link_hash_table *ret;
+ static struct ppc_elf_params default_params = { PLT_OLD, 0, 1, 0, 0, 4096 };
ret = bfd_zmalloc (sizeof (struct ppc_elf_link_hash_table));
if (ret == NULL)
@@ -3271,6 +3270,8 @@ ppc_elf_link_hash_table_create (bfd *abfd)
ret->elf.init_plt_offset.offset = 0;
ret->elf.init_plt_offset.glist = NULL;
+ ret->params = &default_params;
+
ret->sdata[0].name = ".sdata";
ret->sdata[0].sym_name = "_SDA_BASE_";
ret->sdata[0].bss_name = ".sbss";
diff --git a/bfd/version.h b/bfd/version.h
index b29a89e..b9ae06c 100644
--- a/bfd/version.h
+++ b/bfd/version.h
@@ -1,4 +1,4 @@
-#define BFD_VERSION_DATE 20140226
+#define BFD_VERSION_DATE 20140227
#define BFD_VERSION @bfd_version@
#define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@
#define REPORT_BUGS_TO @report_bugs_to@
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index c32ec63..86fdf4f 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,13 @@
+2014-02-27 Jiong Wang <jiong.wang@arm.com>
+
+ * gas/aarch64/fp-const0-parsing.s: New test.
+ * gas/aarch64/fp-const0-parsing.d: Likewise.
+
+2014-02-27 Yufeng Zhang <yufeng.zhang@arm.com>
+
+ * gas/aarch64/ldst-reg-reg-offset.s: Add tests.
+ * gas/aarch64/ldst-reg-reg-offset.d: Update.
+
2014-02-21 Ilya Tocar <ilya.tocar@intel.com>
* gas/i386/avx512pf-intel.d: Remove prefetchwt1.
diff --git a/gas/testsuite/gas/aarch64/fp-const0-parse.d b/gas/testsuite/gas/aarch64/fp-const0-parse.d
new file mode 100644
index 0000000..172f35c
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/fp-const0-parse.d
@@ -0,0 +1,37 @@
+#objdump: -dr
+
+.*: file format .*
+
+Disassembly of section \.text:
+
+0000000000000000 <.*>:
+ 0: 5ea0dbc0 fcmeq s0, s30, #0.0
+ 4: 7ea0cba1 fcmge s1, s29, #0.0
+ 8: 5ea0cb82 fcmgt s2, s28, #0.0
+ c: 7ea0db63 fcmle s3, s27, #0.0
+ 10: 5ea0eb44 fcmlt s4, s26, #0.0
+ 14: 5ee0dbc0 fcmeq d0, d30, #0.0
+ 18: 7ee0cba1 fcmge d1, d29, #0.0
+ 1c: 5ee0cb82 fcmgt d2, d28, #0.0
+ 20: 7ee0db63 fcmle d3, d27, #0.0
+ 24: 5ee0eb44 fcmlt d4, d26, #0.0
+ 28: 0ea0dbc0 fcmeq v0.2s, v30.2s, #0.0
+ 2c: 6ea0cba1 fcmge v1.4s, v29.4s, #0.0
+ 30: 4ee0cb82 fcmgt v2.2d, v28.2d, #0.0
+ 34: 2ea0db63 fcmle v3.2s, v27.2s, #0.0
+ 38: 4ea0eb44 fcmlt v4.4s, v26.4s, #0.0
+ 3c: 5ea0dbc0 fcmeq s0, s30, #0.0
+ 40: 7ea0cba1 fcmge s1, s29, #0.0
+ 44: 5ea0cb82 fcmgt s2, s28, #0.0
+ 48: 7ea0db63 fcmle s3, s27, #0.0
+ 4c: 5ea0eb44 fcmlt s4, s26, #0.0
+ 50: 5ee0dbc0 fcmeq d0, d30, #0.0
+ 54: 7ee0cba1 fcmge d1, d29, #0.0
+ 58: 5ee0cb82 fcmgt d2, d28, #0.0
+ 5c: 7ee0db63 fcmle d3, d27, #0.0
+ 60: 5ee0eb44 fcmlt d4, d26, #0.0
+ 64: 0ea0dbc0 fcmeq v0.2s, v30.2s, #0.0
+ 68: 6ea0cba1 fcmge v1.4s, v29.4s, #0.0
+ 6c: 4ee0cb82 fcmgt v2.2d, v28.2d, #0.0
+ 70: 2ea0db63 fcmle v3.2s, v27.2s, #0.0
+ 74: 4ea0eb44 fcmlt v4.4s, v26.4s, #0.0
diff --git a/gas/testsuite/gas/aarch64/fp-const0-parse.s b/gas/testsuite/gas/aarch64/fp-const0-parse.s
new file mode 100644
index 0000000..b2d4d57
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/fp-const0-parse.s
@@ -0,0 +1,60 @@
+/* fp-const0-parse.s Test file For AArch64 float constant 0 parse.
+
+ Copyright 2014 Free Software Foundation, Inc.
+ Contributed by ARM Ltd.
+
+ This file is part of GAS.
+
+ GAS is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the license, or
+ (at your option) any later version.
+
+ GAS is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; see the file COPYING3. If not,
+ see <http://www.gnu.org/licenses/>. */
+
+
+ .text
+ // Check #0 with scalar register.
+ fcmeq s0, s30, #0
+ fcmge s1, s29, #0
+ fcmgt s2, s28, #0
+ fcmle s3, s27, #0
+ fcmlt s4, s26, #0
+ fcmeq d0, d30, #0
+ fcmge d1, d29, #0
+ fcmgt d2, d28, #0
+ fcmle d3, d27, #0
+ fcmlt d4, d26, #0
+
+ // Check #0 with vector register.
+ fcmeq v0.2s, v30.2s, #0
+ fcmge v1.4s, v29.4s, #0
+ fcmgt v2.2d, v28.2d, #0
+ fcmle v3.2s, v27.2s, #0
+ fcmlt v4.4s, v26.4s, #0
+
+ // Check #0.0 with scalar register.
+ fcmeq s0, s30, #0.0
+ fcmge s1, s29, #0.0
+ fcmgt s2, s28, #0.0
+ fcmle s3, s27, #0.0
+ fcmlt s4, s26, #0.0
+ fcmeq d0, d30, #0.0
+ fcmge d1, d29, #0.0
+ fcmgt d2, d28, #0.0
+ fcmle d3, d27, #0.0
+ fcmlt d4, d26, #0.0
+
+ // Check #0.0 with vector register.
+ fcmeq v0.2s, v30.2s, #0.0
+ fcmge v1.4s, v29.4s, #0.0
+ fcmgt v2.2d, v28.2d, #0.0
+ fcmle v3.2s, v27.2s, #0.0
+ fcmlt v4.4s, v26.4s, #0.0
diff --git a/gas/testsuite/gas/aarch64/ldst-reg-reg-offset.d b/gas/testsuite/gas/aarch64/ldst-reg-reg-offset.d
index 486d9c8..b720633 100644
--- a/gas/testsuite/gas/aarch64/ldst-reg-reg-offset.d
+++ b/gas/testsuite/gas/aarch64/ldst-reg-reg-offset.d
@@ -85,3 +85,7 @@ Disassembly of section \.text:
134: fc67fbe7 ldr d7, \[sp,x7,sxtx #3\]
138: 3ce7ebe7 ldr q7, \[sp,x7,sxtx\]
13c: 3ce7fbe7 ldr q7, \[sp,x7,sxtx #4\]
+ 140: f87ffbe1 ldr x1, \[sp,xzr,sxtx #3\]
+ 144: f83ffbe1 str x1, \[sp,xzr,sxtx #3\]
+ 148: b87fdbe1 ldr w1, \[sp,wzr,sxtw #2\]
+ 14c: b83fdbe1 str w1, \[sp,wzr,sxtw #2\]
diff --git a/gas/testsuite/gas/aarch64/ldst-reg-reg-offset.s b/gas/testsuite/gas/aarch64/ldst-reg-reg-offset.s
index afa7c4d..195c830 100644
--- a/gas/testsuite/gas/aarch64/ldst-reg-reg-offset.s
+++ b/gas/testsuite/gas/aarch64/ldst-reg-reg-offset.s
@@ -86,3 +86,9 @@
func:
ld_or_st str
ld_or_st ldr
+
+ /* When the index register is of register 31, it should be ZR. */
+ ldr x1, [sp, xzr, sxtx #3]
+ str x1, [sp, xzr, sxtx #3]
+ ldr w1, [sp, wzr, sxtw #2]
+ str w1, [sp, wzr, sxtw #2]
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index bb7060c..6cfb9c5 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,45 @@
+2014-02-27 Pedro Alves <palves@redhat.com>
+
+ * nat/linux-waitpid.c (my_waitpid): Only block signals if WNOHANG
+ isn't set.
+
+2014-02-27 Pedro Alves <palves@redhat.com>
+
+ PR 12702
+ * linux-nat.c (status_to_str): Moved to nat/linux-waitpid.c.
+ * nat/linux-waitpid.c: Include string.h.
+ (status_to_str): Moved here and made extern.
+ * nat/linux-waitpid.h (status_to_str): New declaration.
+
+2014-02-27 Hui Zhu <hui@codesourcery.com>
+
+ PR 12702
+ * infrun.c (ptid_match): Move ...
+ * common/ptid.c (ptid_match): ... here.
+ * inferior.h (ptid_match): Move ...
+ * common/ptid.h (ptid_match): ... here.
+
+2014-02-27 Mark Kettenis <kettenis@gnu.org>
+
+ * mips64obsd-tdep.c (mips64obsd_init_abi): Call obsd_init_abi.
+ * configure.tgt (mips64*-*-openbsd*): Add obsd-tdep.c to
+ gdb_target_obs.
+
+2014-02-27 Mark Kettenis <kettenis@gnu.org>
+
+ * obsd-tdep.c (obsd_auxv_parse): New function.
+ (obsd_init_abi): Set auxv_parse.
+
+ * gdbarch.sh (auxv_parse): New.
+ * gdbarch.h: Regenerated.
+ * gdbarch.c: Regenerated.
+ * auxv.c (target_auxv_parse): Call gdbarch_parse_auxv if provided.
+
+2014-02-26 Ludovic Courtès <ludo@gnu.org>
+
+ * guile/scm-value.c (gdbscm_history_append_x): New function.
+ (value_functions): Add it.
+
2014-02-27 Joel Brobecker <brobecker@adacore.com>
* dwarf2read.c (attr_value_as_address): New function.
diff --git a/gdb/auxv.c b/gdb/auxv.c
index ce0a71c..0f322e6 100644
--- a/gdb/auxv.c
+++ b/gdb/auxv.c
@@ -287,6 +287,11 @@ int
target_auxv_parse (struct target_ops *ops, gdb_byte **readptr,
gdb_byte *endptr, CORE_ADDR *typep, CORE_ADDR *valp)
{
+ struct gdbarch *gdbarch = target_gdbarch();
+
+ if (gdbarch_auxv_parse_p (gdbarch))
+ return gdbarch_auxv_parse (gdbarch, readptr, endptr, typep, valp);
+
return current_target.to_auxv_parse (¤t_target, readptr, endptr,
typep, valp);
}
diff --git a/gdb/common/ptid.c b/gdb/common/ptid.c
index 49354ad..f614669 100644
--- a/gdb/common/ptid.c
+++ b/gdb/common/ptid.c
@@ -114,3 +114,17 @@ ptid_tid_p (ptid_t ptid)
return (ptid_get_tid (ptid) != 0);
}
+
+int
+ptid_match (ptid_t ptid, ptid_t filter)
+{
hooks/post-receive
--
Repository for Project Archer.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [SCM] jankratochvil/gdbserverbuildid: Merge branch 'common-mergehex-empty-moveprep-move-attrgen-validate' into common-mergehex-empty-moveprep-move-attrgen-validate-tests
@ 2014-02-26 21:19 jkratoch
0 siblings, 0 replies; 7+ messages in thread
From: jkratoch @ 2014-02-26 21:19 UTC (permalink / raw)
To: archer-commits
The branch, jankratochvil/gdbserverbuildid has been updated
via de59d31f0e7d694bf74a5bd539ae28a70c87daf1 (commit)
via 114d2496eb0a546e45ba6231323f4726c7ad8f98 (commit)
via c042536bf1cf98141bdfea27bbfc4879edb2ef6b (commit)
via 02febadf5c8b484cdf4f6c21d180bb69806977e5 (commit)
via 6e89496603071fcffee39778e90470507f921cc6 (commit)
from 70d1332fddaf6a882bb29f71ca06c11c20c0142c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit de59d31f0e7d694bf74a5bd539ae28a70c87daf1
Merge: 70d1332 114d249
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 22:19:20 2014 +0100
Merge branch 'common-mergehex-empty-moveprep-move-attrgen-validate' into common-mergehex-empty-moveprep-move-attrgen-validate-tests
commit 114d2496eb0a546e45ba6231323f4726c7ad8f98
Merge: c734bd1 c042536
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 22:19:20 2014 +0100
Merge branch 'common-mergehex-empty-moveprep-move-attrgen' into common-mergehex-empty-moveprep-move-attrgen-validate
commit c042536bf1cf98141bdfea27bbfc4879edb2ef6b
Merge: 616244b 02febad
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 22:19:19 2014 +0100
Merge branch 'common-mergehex-empty-moveprep-move' into common-mergehex-empty-moveprep-move-attrgen
commit 02febadf5c8b484cdf4f6c21d180bb69806977e5
Merge: bd75981 6e89496
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 22:19:19 2014 +0100
Merge branch 'common-mergehex-empty-moveprep' into common-mergehex-empty-moveprep-move
commit 6e89496603071fcffee39778e90470507f921cc6
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 22:19:14 2014 +0100
.
-----------------------------------------------------------------------
Summary of changes:
gdb/linux-tdep.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
First 500 lines of diff:
diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c
index 235a7c2..d0c8761 100644
--- a/gdb/linux-tdep.c
+++ b/gdb/linux-tdep.c
@@ -737,7 +737,7 @@ linux_find_memory_regions_gdb (struct gdbarch *gdbarch,
/* We need to know the real target PID so
linux_find_memory_regions_full can access /proc. */
if (current_inferior ()->fake_pid_p)
- return 1;
+ return -1;
cleanup = make_cleanup (free_current_contents, &memory_to_free);
retval = linux_find_memory_regions_full (current_inferior ()->pid,
hooks/post-receive
--
Repository for Project Archer.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [SCM] jankratochvil/gdbserverbuildid: Merge branch 'common-mergehex-empty-moveprep-move-attrgen-validate' into common-mergehex-empty-moveprep-move-attrgen-validate-tests
@ 2014-02-26 20:13 jkratoch
0 siblings, 0 replies; 7+ messages in thread
From: jkratoch @ 2014-02-26 20:13 UTC (permalink / raw)
To: archer-commits
The branch, jankratochvil/gdbserverbuildid has been updated
via 3ef6f2a3a73f9829472d433a4caf59395860a998 (commit)
via 9fde43fbd9f0b4fa1f0f3e3e1f733cd93cd5d2ce (commit)
via 147a9e17c3a2ce2b63c30c36f4927c7ba4048bd8 (commit)
via 8731b7cc80bb7993535cadb1348516bca1e95a8f (commit)
via b3f6cef0c4b6ef2604f9bc4bcf4b6dd15cc20124 (commit)
via 46d3c531e5dd104157c2a2247f211d5c536ee93d (commit)
via ea6f7362ad2f71455e533160e5b2988c61b5c49a (commit)
via 12e283612db836a5c5b13988d06d5549464afd70 (commit)
via d763de106f7146d7b972f98c7d0113f80a65e4f5 (commit)
via 850a0f76c25f74c4f3f86b079893e26ae2d52a9a (commit)
via f25b3fc33406d83293679955ac9fba088cd5ac5c (commit)
via 31aa7e4ee988b175da848cee7cff6cfb28a5aa99 (commit)
via 9b333ba3405066be10f4fc1c497b7fb1a7cafd53 (commit)
via 5f6cac4085c95c5339b9549dc06d4f9184184fa6 (commit)
via 2750ef27997b6114da090a25a314396eaf85a87a (commit)
via 34643a32c6b17041b7ebc13ac3077f6eaec7ec80 (commit)
via 2273f0ac95a79ce29ef42025c63f90e82cf907d7 (commit)
via 77e371c079408e265f1dfd2b0620dd8e76c23371 (commit)
via 3b7344d5ab495cd82b6c72ec5e00d018549837fb (commit)
via 40c1a0073715c1e3f93afc83edac8396eb362a98 (commit)
via efd66ac6698323d9523a4dce352008c4c835812e (commit)
via 50e65b1713256487d50514b50b38b3fd1080b93e (commit)
via 1b588015839caafc608a6944a78aea170f5fb2f6 (commit)
via dbb9c2b1f231262ece36790241fe1fc3902cf03d (commit)
via 55426c9d52fdba13df81fcce1b18469cc0362e50 (commit)
via 0dcb32c3ae07166fc3b04eb4a86ae93ecd87bfb8 (commit)
via f2fce0ca3dd5e0dc37fabb75e8874c05e8bf5170 (commit)
via 7a44e40e8b7e2f91d66930cdf1fe5fed0ba9c584 (commit)
via bd265cd0bde9e045ab5946532449430b66fe91ad (commit)
via 9d46c4e5f55d67542036c87ca4d63078cedbaee2 (commit)
via a1583b1fd9aee80f886e8cdd90e1c7e27c5cbbc7 (commit)
via 6df1b29f02837669d68b8f153b189502e798a302 (commit)
via dc53a7adb516adbf2f646a078a1140b1044a39f5 (commit)
via 12ab52e9772a9170018feb44de3ef217e051cc60 (commit)
via e3e3703534b6277b9d60441a9c828b7deadfe603 (commit)
via d16461aeef555da47e358b0f81c75912e4ea07e2 (commit)
via a8b1622022a0fb3531bfd4ce77e69f6b15312745 (commit)
via cad798bd0d2eaabe27e1629dc76fc7e75dbd6760 (commit)
via 71b7d793371c3cff599c3329c5f3205240117731 (commit)
via b9e795ee5549c36dedd086c202f8aa3534c4b770 (commit)
via 849c862eb2637990692ffe31d16dc779f9bf30c5 (commit)
via e2f0d509b33e91abf99978af5fe8d45240550c35 (commit)
via d6e9dd78c4ac29900ed0047f15892720c67dff6b (commit)
via 475109d8708bdc9c9a4667c0e460a1c395fdd8fd (commit)
via 041ab8b4843764204e660aefdb006da397e2d8ac (commit)
via e186c3bd62c2e401c74651b712d960f38cfb8169 (commit)
via 6d451942486ca4125c48b1f10fdd5d619d6a532c (commit)
from 7b5ac718fc8e96a97621d7ebdc25665d00bb0cee (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit 3ef6f2a3a73f9829472d433a4caf59395860a998
Merge: 7b5ac71 9fde43f
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 21:12:53 2014 +0100
Merge branch 'common-mergehex-empty-moveprep-move-attrgen-validate' into common-mergehex-empty-moveprep-move-attrgen-validate-tests
commit 9fde43fbd9f0b4fa1f0f3e3e1f733cd93cd5d2ce
Merge: 31a0d19 147a9e1
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 21:12:53 2014 +0100
Merge branch 'common-mergehex-empty-moveprep-move-attrgen' into common-mergehex-empty-moveprep-move-attrgen-validate
commit 147a9e17c3a2ce2b63c30c36f4927c7ba4048bd8
Merge: b88933a 8731b7c
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 21:12:52 2014 +0100
Merge branch 'common-mergehex-empty-moveprep-move' into common-mergehex-empty-moveprep-move-attrgen
commit 8731b7cc80bb7993535cadb1348516bca1e95a8f
Merge: 91c1ec8 b3f6cef
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 21:12:51 2014 +0100
Merge branch 'common-mergehex-empty-moveprep' into common-mergehex-empty-moveprep-move
commit b3f6cef0c4b6ef2604f9bc4bcf4b6dd15cc20124
Merge: 81243e0 46d3c53
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 21:12:50 2014 +0100
Merge branch 'common-mergehex-empty' into common-mergehex-empty-moveprep
commit 46d3c531e5dd104157c2a2247f211d5c536ee93d
Merge: 8a6d381 ea6f736
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 21:12:49 2014 +0100
Merge branch 'common-mergehex' into common-mergehex-empty
commit ea6f7362ad2f71455e533160e5b2988c61b5c49a
Merge: 567261a 12e2836
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 21:12:49 2014 +0100
Merge branch 'common' into common-mergehex
commit 12e283612db836a5c5b13988d06d5549464afd70
Merge: 5b0224d d763de1
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 21:12:45 2014 +0100
Merge remote-tracking branch 'gdb/master' into common
Conflicts:
gdb/defs.h
commit d763de106f7146d7b972f98c7d0113f80a65e4f5
Author: Joel Brobecker <brobecker@adacore.com>
Date: Mon Feb 24 15:21:14 2014 -0800
gdbserver/Windows: Rely purely on event info when handling DLL load event
This is the GDBserver counterpart of a change we recently made in
GDB to only rely on get_image_name to determine its name.
This simplification, in turn, allows us to remove a fair amount of
functions and globals which now become unused.
gdb/gdbserver/ChangeLog:
* win32-low.c (psapi_get_dll_name,
* win32_CreateToolhelp32Snapshot): Delete.
(win32_CreateToolhelp32Snapshot, win32_Module32First)
(win32_Module32Next, load_toolhelp, toolhelp_get_dll_name):
Delete.
(handle_load_dll): Add function description.
Remove code using psapi_get_dll_name and toolhelp_get_dll_name.
commit 850a0f76c25f74c4f3f86b079893e26ae2d52a9a
Author: Joel Brobecker <brobecker@adacore.com>
Date: Mon Feb 24 15:21:13 2014 -0800
windows: Factorize handling of DLL load address offset
This patch is a small cleanup that moves the magic 0x1000 offset
to apply to a DLL's base address inside the win32_add_one_solib
function, rather than delegate that reponsibility to its callers.
gdb/gdbserver/ChangeLog:
* win32-low.c (win32_add_one_solib): Add 0x1000 to load_addr.
Add comment.
(win32_add_all_dlls): Remove 0x1000 offset applied to DLL
base address when calling win32_add_one_solib.
(handle_load_dll): Delete local variable load_addr.
Remove 0x1000 offset applied to DLL base address when calling
win32_add_one_solib.
(handle_unload_dll): Add comment.
commit f25b3fc33406d83293679955ac9fba088cd5ac5c
Author: Joel Brobecker <brobecker@adacore.com>
Date: Mon Feb 24 15:21:12 2014 -0800
gdbserver/windows: Ignore DLL load/unload events during child initialization.
This GDBserver patch mirrors a change made in GDB wich aims at
simplifying DLL handling during the inferior initialization
(process creation during the "run", or during an "attach").
Instead of processing each DLL load event, which is sometimes
incomplete, we ignore these events until the inferior has completed
its startup phase, and then just iterate over all DLLs via
EnumProcessModules.
As a side-effect, it fixes a small bug where win32_ensure_ntdll_loaded
was missing a 0x1000 offset in the DLL base address. This problem
should only be visible on the 64bit version of Windows 8.1, since
this is the only platform where win32_ensure_ntdll_loaded is actually
needed.
gdb/gdbserver/ChangeLog:
* win32-low.c (win32_add_all_dlls): Renames
win32_ensure_ntdll_loaded. Rewrite function documentation.
Adjust implementation to always load all DLLs.
Add 0x1000 offset to DLL base address when calling
win32_add_one_solib.
(child_initialization_done): New static global.
(do_initial_child_stuff): Set child_initialization_done to
zero during child initialization, and 1 after. Replace call
to win32_ensure_ntdll_loaded by call to win32_add_all_dlls.
Add comment.
(match_dll_by_basename, dll_is_loaded_by_basename): Delete.
(handle_unload_dll): Add function documentation.
(get_child_debug_event): Ignore load and unload DLL events
during child initialization.
commit 31aa7e4ee988b175da848cee7cff6cfb28a5aa99
Author: Joel Brobecker <brobecker@adacore.com>
Date: Sat Feb 15 19:09:58 2014 +0400
DWARF: Read constant-class addresses correctly
Starting with DWARF version 4, the description of the DW_AT_high_pc
attribute was amended to say:
if it is of class constant, the value is an unsigned integer offset
which when added to the low PC gives the address of the first
location past the last instruction associated with the entity.
A change was made in Apr 27th, 2012 to reflect that change:
| commit 91da14142c0171e58a91ad58a32fd010b700e761
| Author: Mark Wielaard <mjw@redhat.com>
| Date: Fri Apr 27 18:55:19 2012 +0000
|
| * dwarf2read.c (dwarf2_get_pc_bounds): Check DW_AT_high_pc form to
| see whether it is an address or a constant offset from DW_AT_low_pc.
| (dwarf2_record_block_ranges): Likewise.
| (read_partial_die): Likewise.
Unfortunately, this new interpretation is now used regardless of
the CU's DWARF version. It turns out that one of WindRiver's compilers
(FTR: Diabdata 4.4) is generating DWARF version 2 info with
DW_AT_high_pc attributes improperly using the data4 form. Because of
that, we miscompute all high PCs incorrectly. This leads to a lot of
symtabs having overlapping ranges, which in turn causes havoc in
pc-to-symtab-and-line translations.
One visible effect is when inserting a breakpoint on a given function:
(gdb) b world
Breakpoint 1 at 0x4005c4
The source location of the breakpoint is missing. The output should be:
(gdb) b world
Breakpoint 1 at 0x4005c8: file dw2-rel-hi-pc-world.c, line 24.
What happens in this case is that the pc-to-SAL translation first
starts be trying to find the symtab associated to our PC using
each symtab's ranges. Because of the high_pc miscomputation,
many symtabs end up matching, and the heuristic trying to select
the most probable one unfortunately returns one that is unrelated
(it really had no change in this case to do any better). Once we
have the wrong symtab, the start searching the associated linetable,
where the addresses are correct, thus finding no match, and therefore
no SAL.
This patch is an attempt at handling the situation as gracefully
as we can, without guarantees. It introduces a new function
"attr_value_as_address" which uses the correct accessor for getting
the value of a given attribute. It then adjust the code throughout
this unit to use this function instead of assuming that addresses always
have the DW_FORM_addr format.
It also fixes the original issue of miscomputing the high_pc
by limiting the new interpretation of constant form DW_AT_high_pc
attributes to units using DWARF version 4 or later.
gdb/ChangeLog:
* dwarf2read.c (attr_value_as_address): New function.
(dwarf2_find_base_address, read_call_site_scope): Use
attr_value_as_address in place of DW_ADDR.
(dwarf2_get_pc_bounds): Use attr_value_as_address to get
the low and high addresses. Slight rework of the handling
of the high pc being a constant form, and limit it to
DWARF verson 4 or higher.
(dwarf2_record_block_ranges): Likewise.
(read_partial_die): Likewise.
(new_symbol_full): Use attr_value_as_address in place of DW_ADDR.
gdb/testsuite/ChangeLog:
* gdb.dwarf2/dw2-abs-hi-pc-hello-dbg.S: New file.
* gdb.dwarf2/dw2-abs-hi-pc-hello.c: New file.
* gdb.dwarf2/dw2-abs-hi-pc-world-dbg.S: New file.
* gdb.dwarf2/dw2-abs-hi-pc-world.c: New file.
* gdb.dwarf2/dw2-abs-hi-pc.c: New file.
* gdb.dwarf2/dw2-abs-hi-pc.exp: New file.
Tested on x86_64-linux.
commit 9b333ba3405066be10f4fc1c497b7fb1a7cafd53
Author: Tom Tromey <tromey@redhat.com>
Date: Thu Oct 17 12:03:06 2013 -0600
make "file" use the BFD cache better
Right now the "file" command will discard the exec_bfd and then
possibly open a new one.
If this ends up reopening the same file, it can cause needless work by
gdb -- destroying all the per-BFD data just to re-read it again.
This patch changes the code to hold a reference to the old exec_bfd
while opening the new one.
The possible downside of this is a higher peak memory use.
2014-02-26 Tom Tromey <tromey@redhat.com>
* exec.c (exec_file_attach): Hold a reference to exec_bfd.
commit 5f6cac4085c95c5339b9549dc06d4f9184184fa6
Author: Tom Tromey <tromey@redhat.com>
Date: Tue Oct 15 11:50:58 2013 -0600
add short-circuit logic to elfread.c
If minimal symbols have already been read into a per-BFD object, then
a symbol reader can skip re-reading them. This changes the ELF reader
to do so.
We only skip the work if the file is ELF+DWARF. If it has stabs or
mdebug sections, then I think extra information is computed during the
minsym creation pass; and so we must still repeat it. Eventually even
this will go away, once all symbol types have switched to being
progspace-independent. In the meantime this has no negative effect --
it is just a missing optimization for a small set of users.
This change also required a somewhat non-obvious change to the OBJSTAT
accounting code. If a symbol reader skips re-reading minimal symbols,
then the corresponding OBJSTAT will not be updated. This leads to a
test failure in gdb.base/maint.exp.
To fix this, I've moved the needed stat field out of objfile and into
the per-BFD object.
2014-02-26 Tom Tromey <tromey@redhat.com>
* elfread.c (elf_read_minimal_symbols): Return early if
minimal symbols have already been read. Add "ei" parameter.
(elf_symfile_read): Call elf_read_minimal_symbols earlier.
* minsyms.c (prim_record_minimal_symbol_full): Update.
* objfiles.h (struct objstats) <n_minsyms>: Move...
(struct objfile_per_bfd_storage) <n_minsyms>: ... here.
* symmisc.c (print_objfile_statistics): Update.
commit 2750ef27997b6114da090a25a314396eaf85a87a
Author: Tom Tromey <tromey@redhat.com>
Date: Tue Oct 15 11:43:46 2013 -0600
split out elf_read_minimal_symbols
This is just a simple refactoring in elfread.c to split out the
minsym-reading code into its own function.
2014-02-26 Tom Tromey <tromey@redhat.com>
* elfread.c (elf_read_minimal_symbols): New function, from
elf_symfile_read.
(elf_symfile_read): Call it.
commit 34643a32c6b17041b7ebc13ac3077f6eaec7ec80
Author: Tom Tromey <tromey@redhat.com>
Date: Tue Oct 15 11:37:19 2013 -0600
move minimal symbols to per-bfd
Now that minimal symbols are independent of the program space, we can
move them to the per-BFD object. This lets us save memory in the
multi-inferior case; and, once the symbol readers are updated, time.
The other prerequisite for this move is that all the objects referred
to by the minimal symbols have a lifetime at least as long as the
per-BFD object. I think this is satisfied partially by this patch
(moving the copied names there) and partially by earlier patches
moving the demangled name hash.
This patch contains a bit of logic to avoid creating new minimal
symbols if they have already been read for a given BFD. This allows
us to avoid trying to update all the symbol readers for this
condition. At first glance this may seem like a hack, but some symbol
readers mix psym and minsym reading, and would require logic just like
this regardless -- and it is simpler and less error-prone to just do
the work in a central spot.
2014-02-26 Tom Tromey <tromey@redhat.com>
* minsyms.c (lookup_minimal_symbol, iterate_over_minimal_symbols)
(lookup_minimal_symbol_text, lookup_minimal_symbol_by_pc_name)
(lookup_minimal_symbol_solib_trampoline)
(lookup_minimal_symbol_by_pc_section_1)
(lookup_minimal_symbol_and_objfile): Update.
(prim_record_minimal_symbol_full): Use the per-BFD obstack.
Don't allocate a minimal symbol if minsyms have already been read.
(build_minimal_symbol_hash_tables): Update.
(install_minimal_symbols): Do nothing if minsyms already read.
Use the per-BFD obstack.
(terminate_minimal_symbol_table): Use the per-BFD obstack.
* objfiles.c (allocate_objfile): Call
terminate_minimal_symbol_table later.
(have_minimal_symbols): Update.
* objfiles.h (struct objfile_per_bfd_storage) <msymbols,
minimal_symbol_count, msymbol_hash, msymbol_demangled_hash>:
Move from struct objfile.
<minsyms_read>: New field.
(struct objfile) <msymbols, minimal_symbol_count,
msymbol_hash, msymbol_demangled_hash>: Move.
(ALL_OBJFILE_MSYMBOLS): Update.
* symfile.c (read_symbols): Set minsyms_read.
(reread_symbols): Update.
* symmisc.c (dump_objfile, dump_msymbols): Update.
commit 2273f0ac95a79ce29ef42025c63f90e82cf907d7
Author: Tom Tromey <tromey@redhat.com>
Date: Tue Oct 15 13:28:57 2013 -0600
change minsyms not to be relocated at read-time
This removes the runtime offsets from minsyms. Instead, these offsets
will now be applied whenever the minsym's address is computed.
This patch redefines MSYMBOL_VALUE_ADDRESS to actually use the offsets
from the given objfile. Then, it updates all the symbol readers,
changing them so that they do not add in the section offset when
creating the symbol.
This change also lets us remove relocation of minsyms from
objfile_relocate1 and also msymbols_sort.
2014-02-26 Tom Tromey <tromey@redhat.com>
* minsyms.c (msymbols_sort): Remove.
* minsyms.h (msymbols_sort): Remove.
* objfiles.c (objfile_relocate1): Don't relocate minsyms.
* symtab.h (MSYMBOL_VALUE_ADDRESS): Use objfile offsets.
* elfread.c (elf_symtab_read): Don't add section offsets.
* xcoffread.c (record_minimal_symbol): Don't add section offset
to minimal symbol address.
* somread.c (text_offset, data_offset): Remove.
(som_symtab_read): Don't add section offsets to minimal symbol
addresses.
* coff-pe-read.c (add_pe_forwarded_sym, read_pe_exported_syms):
Don't add section offsets to minimal symbols.
* coffread.c (coff_symtab_read): Don't add section offsets
to minimal symbol addresses.
* machoread.c (macho_symtab_add_minsym): Don't add section offset
to minimal symbol addresses.
* mipsread.c (read_alphacoff_dynamic_symtab): Don't add
section offset to minimal symbol addresses.
* mdebugread.c (parse_partial_symbols): Don't add section
offset to minimal symbol addresses.
* dbxread.c (read_dbx_dynamic_symtab): Don't add section
offset to minimal symbol addresses.
commit 77e371c079408e265f1dfd2b0620dd8e76c23371
Author: Tom Tromey <tromey@redhat.com>
Date: Thu Aug 15 08:46:35 2013 -0600
start change to progspace independence
This patch starts changing minimal symbols to be independent of the
program space.
Specifically, it adds a new objfile parameter to MSYMBOL_VALUE_ADDRESS
and changes all the code to use it. This is needed so we can change
gdb to apply the section offset when a minsym's address is computed,
as opposed to baking the offsets into the symbol itself.
A few spots still need the unrelocated address. For these, we
introduce MSYMBOL_VALUE_RAW_ADDRESS.
As a convenience, we also add the new macro BMSYMBOL_VALUE_ADDRESS,
which computes the address of a bound minimal symbol. This just does
the obvious thing with the fields.
Note that this change does not actually enable program space
independence. That requires more changes to gdb. However, to ensure
that these changes compile properly, this patch does add the needed
section lookup code to MSYMBOL_VALUE_ADDRESS -- it just ensures it has
no effect at runtime by multiplying the offset by 0.
2014-02-26 Tom Tromey <tromey@redhat.com>
* ada-lang.c (ada_main_name): Update.
(ada_add_standard_exceptions): Update.
* ada-tasks.c (ada_tasks_inferior_data_sniffer): Update.
* aix-thread.c (pdc_symbol_addrs, pd_enable): Update.
* arm-tdep.c (skip_prologue_function, arm_skip_stub): Update.
* auxv.c (ld_so_xfer_auxv): Update.
* avr-tdep.c (avr_scan_prologue): Update.
* ax-gdb.c (gen_var_ref): Update.
* blockframe.c (get_pc_function_start)
(find_pc_partial_function_gnu_ifunc): Update.
* breakpoint.c (create_overlay_event_breakpoint)
(create_longjmp_master_breakpoint)
(create_std_terminate_master_breakpoint)
(create_exception_master_breakpoint): Update.
* bsd-uthread.c (bsd_uthread_lookup_address): Update.
* c-valprint.c (c_val_print): Update.
* coff-pe-read.c (add_pe_forwarded_sym): Update.
* common/agent.c (agent_look_up_symbols): Update.
* dbxread.c (find_stab_function_addr, end_psymtab): Update.
* dwarf2loc.c (call_site_to_target_addr): Update.
* dwarf2read.c (dw2_find_pc_sect_symtab): Update.
* elfread.c (elf_gnu_ifunc_record_cache)
(elf_gnu_ifunc_resolve_by_got): Update.
* findvar.c (default_read_var_value): Update.
* frame.c (inside_main_func): Update.
* frv-tdep.c (frv_frame_this_id): Update.
* glibc-tdep.c (glibc_skip_solib_resolver): Update.
* gnu-v3-abi.c (gnuv3_get_typeid, gnuv3_skip_trampoline):
Update.
* hppa-hpux-tdep.c (hppa64_hpux_search_dummy_call_sequence)
(hppa_hpux_find_dummy_bpaddr): Update.
* hppa-tdep.c (hppa_symbol_address): Update.
* infcmd.c (until_next_command): Update.
* jit.c (jit_read_descriptor, jit_breakpoint_re_set_internal):
Update.
* linespec.c (minsym_found, add_minsym): Update.
* linux-nat.c (get_signo): Update.
* linux-thread-db.c (inferior_has_bug): Update.
* m32c-tdep.c (m32c_return_value)
(m32c_m16c_address_to_pointer): Update.
* m32r-tdep.c (m32r_frame_this_id): Update.
* m68hc11-tdep.c (m68hc11_get_register_info): Update.
* machoread.c (macho_resolve_oso_sym_with_minsym): Update.
* maint.c (maintenance_translate_address): Update.
* minsyms.c (lookup_minimal_symbol_by_pc_name): Update.
(frob_address): New function.
(lookup_minimal_symbol_by_pc_section_1): Use raw addresses,
frob_address. Rename parameter to "pc_in".
(compare_minimal_symbols, compact_minimal_symbols): Use raw
addresses.
(find_solib_trampoline_target, minimal_symbol_upper_bound):
Update.
* mips-linux-tdep.c (mips_linux_skip_resolver): Update.
* mips-tdep.c (mips_skip_pic_trampoline_code): Update.
* objc-lang.c (find_objc_msgsend): Update.
* objfiles.c (objfile_relocate1): Update.
* obsd-tdep.c (obsd_skip_solib_resolver): Update.
* p-valprint.c (pascal_val_print): Update.
* parse.c (write_exp_msymbol): Update.
* ppc-linux-tdep.c (ppc_linux_spe_context_lookup)
(ppc_elfv2_skip_entrypoint): Update.
* ppc-sysv-tdep.c (convert_code_addr_to_desc_addr): Update.
* printcmd.c (build_address_symbolic, msym_info)
(address_info): Update.
* proc-service.c (ps_pglobal_lookup): Update.
* psymtab.c (find_pc_sect_psymtab_closer)
(find_pc_sect_psymtab, find_pc_sect_symtab_from_partial):
Change msymbol parameter to bound_minimal_symbol.
* ravenscar-thread.c (get_running_thread_id): Update.
* remote.c (remote_check_symbols): Update.
* sh64-tdep.c (sh64_elf_make_msymbol_special): Use raw
address.
* sol2-tdep.c (sol2_skip_solib_resolver): Update.
* solib-dsbt.c (lm_base): Update.
* solib-frv.c (lm_base, main_got): Update.
* solib-irix.c (locate_base): Update.
* solib-som.c (som_solib_create_inferior_hook)
(link_map_start): Update.
* solib-spu.c (spu_enable_break, ocl_enable_break): Update.
* solib-svr4.c (elf_locate_base, enable_break): Update.
* spu-tdep.c (spu_get_overlay_table, spu_catch_start)
(flush_ea_cache): Update.
* stabsread.c (define_symbol, scan_file_globals): Update.
* stack.c (find_frame_funname): Update.
* symfile-debug.c (debug_qf_expand_symtabs_matching)
(debug_qf_find_pc_sect_symtab): Update.
* symfile.c (simple_read_overlay_table)
(simple_overlay_update): Update.
* symfile.h (struct quick_symbol_functions)
<find_pc_sect_symtab>: Change type of msymbol to
bound_minimal_symbol.
* symmisc.c (dump_msymbols): Update.
* symtab.c (find_pc_sect_symtab_via_partial)
(find_pc_sect_psymtab, find_pc_sect_line, skip_prologue_sal)
(search_symbols, print_msymbol_info): Update.
* symtab.h (MSYMBOL_VALUE_RAW_ADDRESS): New macro.
(MSYMBOL_VALUE_ADDRESS): Redefine.
(BMSYMBOL_VALUE_ADDRESS): New macro.
* tracepoint.c (scope_info): Update.
* tui/tui-disasm.c (tui_find_disassembly_address)
(tui_get_begin_asm_address): Update.
* valops.c (find_function_in_inferior): Update.
* value.c (value_static_field, value_fn_field): Update.
commit 3b7344d5ab495cd82b6c72ec5e00d018549837fb
Author: Tom Tromey <tromey@redhat.com>
Date: Mon Oct 14 19:53:29 2013 -0600
use bound_minsym as result for lookup_minimal_symbol et al
This patch changes a few minimal symbol lookup functions to return a
bound_minimal_symbol rather than a pointer to the minsym. This change
helps prepare gdb for computing a minimal symbol's address at the
point of use.
Note that this changes even those functions that ostensibly search a
single objfile. That was necessary because, in fact, those functions
can search an objfile and its separate debug objfiles; and it is
important for the caller to know in which objfile the minimal symbol
was actually found.
The bulk of this patch is mechanical.
2014-02-26 Tom Tromey <tromey@redhat.com>
* ada-lang.c (ada_update_initial_language): Update.
(ada_main_name, ada_has_this_exception_support): Update.
* ada-tasks.c (ada_tasks_inferior_data_sniffer): Update.
* aix-thread.c (pdc_symbol_addrs, pd_enable): Update.
* arm-tdep.c (arm_skip_stub): Update.
* auxv.c (ld_so_xfer_auxv): Update.
* avr-tdep.c (avr_scan_prologue): Update.
* ax-gdb.c (gen_var_ref): Update.
* breakpoint.c (struct breakpoint_objfile_data)
<overlay_msym, longjmp_msym, terminate_msym, exception_msym>: Change
type to bound_minimal_symbol.
(create_overlay_event_breakpoint)
(create_longjmp_master_breakpoint)
(create_std_terminate_master_breakpoint)
(create_exception_master_breakpoint): Update.
* bsd-uthread.c (bsd_uthread_lookup_address): Update.
* c-exp.y (classify_name): Update.
* coffread.c (coff_symfile_read): Update.
* common/agent.c (agent_look_up_symbols): Update.
* d-lang.c (d_main_name): Update.
* dbxread.c (find_stab_function_addr, end_psymtab): Update.
* dec-thread.c (enable_dec_thread): Update.
* dwarf2loc.c (call_site_to_target_addr): Update.
* elfread.c (elf_gnu_ifunc_resolve_by_got): Update.
* eval.c (evaluate_subexp_standard): Update.
* findvar.c (struct minsym_lookup_data) <result>: Change type
to bound_minimal_symbol.
<objfile>: Remove.
(minsym_lookup_iterator_cb, default_read_var_value): Update.
* frame.c (inside_main_func): Update.
* frv-tdep.c (frv_frame_this_id): Update.
* gcore.c (call_target_sbrk): Update.
* glibc-tdep.c (glibc_skip_solib_resolver): Update.
* gnu-v3-abi.c (gnuv3_get_typeid, gnuv3_skip_trampoline):
Update.
* go-lang.c (go_main_name): Update.
* hppa-hpux-tdep.c (hppa_hpux_skip_trampoline_code)
(hppa_hpux_find_import_stub_for_addr): Update.
* hppa-tdep.c (hppa_extract_17, hppa_lookup_stub_minimal_symbol):
Update. Change return type.
* hppa-tdep.h (hppa_lookup_stub_minimal_symbol): Change return
type.
* jit.c (jit_breakpoint_re_set_internal): Update.
* linux-fork.c (inferior_call_waitpid, checkpoint_command):
Update.
* linux-nat.c (get_signo): Update.
* linux-thread-db.c (inferior_has_bug): Update
* m32c-tdep.c (m32c_return_value)
(m32c_m16c_address_to_pointer): Update.
* m32r-tdep.c (m32r_frame_this_id): Update.
* m68hc11-tdep.c (m68hc11_get_register_info): Update.
* machoread.c (macho_resolve_oso_sym_with_minsym): Update.
* minsyms.c (lookup_minimal_symbol_internal): Rename to
lookup_minimal_symbol. Change return type.
(lookup_minimal_symbol): Remove.
(lookup_bound_minimal_symbol): Update.
(lookup_minimal_symbol_text): Change return type.
(lookup_minimal_symbol_solib_trampoline): Change return type.
* minsyms.h (lookup_minimal_symbol, lookup_minimal_symbol_text)
(lookup_minimal_symbol_solib_trampoline): Change return type.
* mips-linux-tdep.c (mips_linux_skip_resolver): Update.
* objc-lang.c (lookup_objc_class, lookup_child_selector)
(value_nsstring, find_imps): Update.
* obsd-tdep.c (obsd_skip_solib_resolver): Update.
* p-lang.c (pascal_main_name): Update.
* ppc-linux-tdep.c (ppc_linux_spe_context_lookup): Update.
* ppc-sysv-tdep.c (convert_code_addr_to_desc_addr): Update.
* proc-service.c (ps_pglobal_lookup): Update.
* ravenscar-thread.c (get_running_thread_msymbol): Change
return type.
(has_ravenscar_runtime, get_running_thread_id): Update.
* remote.c (remote_check_symbols): Update.
* sol-thread.c (ps_pglobal_lookup): Update.
* sol2-tdep.c (sol2_skip_solib_resolver): Update.
* solib-dsbt.c (lm_base): Update.
* solib-frv.c (lm_base, frv_relocate_section_addresses):
Update.
* solib-irix.c (locate_base): Update.
* solib-som.c (som_solib_create_inferior_hook)
(som_solib_desire_dynamic_linker_symbols, link_map_start):
Update.
* solib-spu.c (spu_enable_break): Update.
* solib-svr4.c (elf_locate_base, enable_break): Update.
* spu-tdep.c (spu_get_overlay_table, spu_catch_start)
(flush_ea_cache): Update.
* stabsread.c (define_symbol): Update.
* symfile.c (simple_read_overlay_table): Update.
* symtab.c (find_pc_sect_line): Update.
* tracepoint.c (scope_info): Update.
* tui-disasm.c (tui_get_begin_asm_address): Update.
* value.c (value_static_field): Update.
commit 40c1a0073715c1e3f93afc83edac8396eb362a98
Author: Tom Tromey <tromey@redhat.com>
Date: Thu Aug 15 08:44:43 2013 -0600
make MSYMBOL_VALUE_ADDRESS an rvalue
This changes MSYMBOL_VALUE_ADDRESS to be an rvalue. In a later patch
we change this macro to compute its value; this patch introduces a
setter to make the break a bit cleaner.
2014-02-26 Tom Tromey <tromey@redhat.com>
* minsyms.c (prim_record_minimal_symbol_full): Use
SET_MSYMBOL_VALUE_ADDRESS.
* objfiles.c (objfile_relocate1): Use SET_MSYMBOL_VALUE_ADDRESS.
* sh64-tdep.c (sh64_elf_make_msymbol_special): Use
SET_MSYMBOL_VALUE_ADDRESS.
* symtab.h (MSYMBOL_VALUE_ADDRESS): Expand to an rvalue.
(SET_MSYMBOL_VALUE_ADDRESS): New macro.
commit efd66ac6698323d9523a4dce352008c4c835812e
Author: Tom Tromey <tromey@redhat.com>
Date: Thu Aug 15 08:43:43 2013 -0600
change minsym representation
In a later patch we're going to change the minimal symbol address
calculation to apply section offsets at the point of use. To make it
simpler to catch potential problem spots, this patch changes the
representation of minimal symbols and introduces new
minimal-symbol-specific variants of the various accessors. This is
necessary because it would be excessively ambitious to try to convert
all the symbol types at once.
The core of this change is just renaming a field in minimal_symbol;
the rest is just a fairly mechanical rewording.
2014-02-26 Tom Tromey <tromey@redhat.com>
* symtab.h (struct minimal_symbol) <mginfo>: Rename from ginfo.
(MSYMBOL_VALUE, MSYMBOL_VALUE_ADDRESS, MSYMBOL_VALUE_BYTES)
(MSYMBOL_BLOCK_VALUE, MSYMBOL_VALUE_CHAIN, MSYMBOL_LANGUAGE)
(MSYMBOL_SECTION, MSYMBOL_OBJ_SECTION, MSYMBOL_NATURAL_NAME)
(MSYMBOL_LINKAGE_NAME, MSYMBOL_PRINT_NAME, MSYMBOL_DEMANGLED_NAME)
(MSYMBOL_SET_LANGUAGE, MSYMBOL_SEARCH_NAME)
(MSYMBOL_MATCHES_SEARCH_NAME, MSYMBOL_SET_NAMES): New macros.
* ada-lang.c (ada_main_name): Update.
(ada_lookup_simple_minsym): Update.
(ada_make_symbol_completion_list): Update.
(ada_add_standard_exceptions): Update.
* ada-tasks.c (read_atcb, ada_tasks_inferior_data_sniffer): Update.
* aix-thread.c (pdc_symbol_addrs, pd_enable): Update.
* amd64-windows-tdep.c (amd64_skip_main_prologue): Update.
* arm-tdep.c (skip_prologue_function): Update.
(arm_skip_stack_protector, arm_skip_stub): Update.
* arm-wince-tdep.c (arm_pe_skip_trampoline_code): Update.
(arm_wince_skip_main_prologue): Update.
* auxv.c (ld_so_xfer_auxv): Update.
* avr-tdep.c (avr_scan_prologue): Update.
* ax-gdb.c (gen_var_ref): Update.
* block.c (call_site_for_pc): Update.
* blockframe.c (get_pc_function_start): Update.
(find_pc_partial_function_gnu_ifunc): Update.
* breakpoint.c (create_overlay_event_breakpoint): Update.
(create_longjmp_master_breakpoint): Update.
(create_std_terminate_master_breakpoint): Update.
(create_exception_master_breakpoint): Update.
(resolve_sal_pc): Update.
* bsd-uthread.c (bsd_uthread_lookup_address): Update.
* btrace.c (ftrace_print_function_name, ftrace_function_switched):
Update.
* c-valprint.c (c_val_print): Update.
* coff-pe-read.c (add_pe_forwarded_sym): Update.
* coffread.c (coff_symfile_read): Update.
* common/agent.c (agent_look_up_symbols): Update.
* dbxread.c (find_stab_function_addr): Update.
(end_psymtab): Update.
* dwarf2loc.c (call_site_to_target_addr): Update.
(func_verify_no_selftailcall): Update.
(tailcall_dump): Update.
(call_site_find_chain_1): Update.
(dwarf_expr_reg_to_entry_parameter): Update.
* elfread.c (elf_gnu_ifunc_record_cache): Update.
(elf_gnu_ifunc_resolve_by_got): Update.
* f-valprint.c (info_common_command): Update.
* findvar.c (read_var_value): Update.
* frame.c (get_prev_frame_1): Update.
(inside_main_func): Update.
* frv-tdep.c (frv_skip_main_prologue): Update.
(frv_frame_this_id): Update.
* glibc-tdep.c (glibc_skip_solib_resolver): Update.
* gnu-v2-abi.c (gnuv2_value_rtti_type): Update.
* gnu-v3-abi.c (gnuv3_rtti_type): Update.
(gnuv3_skip_trampoline): Update.
* hppa-hpux-tdep.c (hppa32_hpux_in_solib_call_trampoline): Update.
(hppa64_hpux_in_solib_call_trampoline): Update.
(hppa_hpux_skip_trampoline_code): Update.
(hppa64_hpux_search_dummy_call_sequence): Update.
(hppa_hpux_find_import_stub_for_addr): Update.
(hppa_hpux_find_dummy_bpaddr): Update.
* hppa-tdep.c (hppa_symbol_address)
(hppa_lookup_stub_minimal_symbol): Update.
* i386-tdep.c (i386_skip_main_prologue): Update.
(i386_pe_skip_trampoline_code): Update.
* ia64-tdep.c (ia64_convert_from_func_ptr_addr): Update.
* infcall.c (get_function_name): Update.
* infcmd.c (until_next_command): Update.
* jit.c (jit_breakpoint_re_set_internal): Update.
(jit_inferior_init): Update.
* linespec.c (minsym_found): Update.
(add_minsym): Update.
* linux-fork.c (info_checkpoints_command): Update.
* linux-nat.c (get_signo): Update.
* linux-thread-db.c (inferior_has_bug): Update.
* m32c-tdep.c (m32c_return_value): Update.
(m32c_m16c_address_to_pointer): Update.
(m32c_m16c_pointer_to_address): Update.
* m32r-tdep.c (m32r_frame_this_id): Update.
* m68hc11-tdep.c (m68hc11_get_register_info): Update.
* machoread.c (macho_resolve_oso_sym_with_minsym): Update.
* maint.c (maintenance_translate_address): Update.
* minsyms.c (add_minsym_to_hash_table): Update.
(add_minsym_to_demangled_hash_table): Update.
(msymbol_objfile): Update.
(lookup_minimal_symbol): Update.
(iterate_over_minimal_symbols): Update.
(lookup_minimal_symbol_text): Update.
(lookup_minimal_symbol_by_pc_name): Update.
(lookup_minimal_symbol_solib_trampoline): Update.
(lookup_minimal_symbol_by_pc_section_1): Update.
(lookup_minimal_symbol_and_objfile): Update.
(prim_record_minimal_symbol_full): Update.
(compare_minimal_symbols): Update.
(compact_minimal_symbols): Update.
(build_minimal_symbol_hash_tables): Update.
(install_minimal_symbols): Update.
(terminate_minimal_symbol_table): Update.
(find_solib_trampoline_target): Update.
(minimal_symbol_upper_bound): Update.
* mips-linux-tdep.c (mips_linux_skip_resolver): Update.
* mips-tdep.c (mips_stub_frame_sniffer): Update.
(mips_skip_pic_trampoline_code): Update.
* msp430-tdep.c (msp430_skip_trampoline_code): Update.
* objc-lang.c (selectors_info): Update.
(classes_info): Update.
(find_methods): Update.
(find_imps): Update.
(find_objc_msgsend): Update.
* objfiles.c (objfile_relocate1): Update.
* objfiles.h (ALL_OBJFILE_MSYMBOLS): Update.
* obsd-tdep.c (obsd_skip_solib_resolver): Update.
* p-valprint.c (pascal_val_print): Update.
* parse.c (write_exp_msymbol): Update.
* ppc-linux-tdep.c (powerpc_linux_in_dynsym_resolve_code)
(ppc_linux_spe_context_lookup, ppc_elfv2_skip_entrypoint): Update.
* ppc-sysv-tdep.c (convert_code_addr_to_desc_addr): Update.
* printcmd.c (build_address_symbolic): Update.
(sym_info): Update.
(address_info): Update.
* proc-service.c (ps_pglobal_lookup): Update.
* psymtab.c (find_pc_sect_psymtab_closer): Update.
(find_pc_sect_psymtab): Update.
* python/py-framefilter.c (py_print_frame): Update.
* ravenscar-thread.c (get_running_thread_id): Update.
* record-btrace.c (btrace_call_history, btrace_get_bfun_name):
Update.
* remote.c (remote_check_symbols): Update.
* rs6000-tdep.c (rs6000_skip_main_prologue): Update.
(rs6000_skip_trampoline_code): Update.
* sh64-tdep.c (sh64_elf_make_msymbol_special): Update.
* sol2-tdep.c (sol2_skip_solib_resolver): Update.
* solib-dsbt.c (lm_base): Update.
* solib-frv.c (lm_base): Update.
(main_got): Update.
* solib-irix.c (locate_base): Update.
* solib-som.c (som_solib_create_inferior_hook): Update.
(som_solib_desire_dynamic_linker_symbols): Update.
(link_map_start): Update.
* solib-spu.c (spu_enable_break): Update.
(ocl_enable_break): Update.
* solib-svr4.c (elf_locate_base): Update.
(enable_break): Update.
* spu-tdep.c (spu_get_overlay_table): Update.
(spu_catch_start): Update.
(flush_ea_cache): Update.
* stabsread.c (define_symbol): Update.
(scan_file_globals): Update.
* stack.c (find_frame_funname): Update.
(frame_info): Update.
* symfile.c (simple_read_overlay_table): Update.
(simple_overlay_update): Update.
* symmisc.c (dump_msymbols): Update.
* symtab.c (fixup_section): Update.
(find_pc_sect_line): Update.
(skip_prologue_sal): Update.
(search_symbols): Update.
(print_msymbol_info): Update.
(rbreak_command): Update.
(MCOMPLETION_LIST_ADD_SYMBOL): New macro.
(completion_list_objc_symbol): Update.
(default_make_symbol_completion_list_break_on): Update.
* tracepoint.c (scope_info): Update.
* tui/tui-disasm.c (tui_find_disassembly_address): Update.
(tui_get_begin_asm_address): Update.
* valops.c (find_function_in_inferior): Update.
* value.c (value_static_field): Update.
(value_fn_field): Update.
commit 50e65b1713256487d50514b50b38b3fd1080b93e
Author: Tom Tromey <tromey@redhat.com>
Date: Mon Aug 19 07:58:44 2013 -0600
introduce minimal_symbol_upper_bound
This introduces minimal_symbol_upper_bound and changes various bits of
code to use it. Since this function is intimately tied to the
implementation of minimal symbol tables, I believe it belongs in
minsyms.c.
The new function is extracted from find_pc_partial_function_gnu_ifunc.
This isn't a "clean" move because the old function interleaved the
caching and the computation; but this doesn't make sense for the new
code.
2014-02-26 Tom Tromey <tromey@redhat.com>
* blockframe.c (find_pc_partial_function_gnu_ifunc): Use
bound minimal symbols. Move code that knows about minsym
table layout...
* minsyms.c (minimal_symbol_upper_bound): ... here. New
function.
* minsyms.h (minimal_symbol_upper_bound): Declare.
* objc-lang.c (find_objc_msgsend): Use bound minimal symbols,
minimal_symbol_upper_bound.
commit 1b588015839caafc608a6944a78aea170f5fb2f6
Author: Joel Brobecker <brobecker@adacore.com>
Date: Thu Jan 30 07:37:08 2014 +0400
[Python] Make regexp collection printers work with typedefs as well.
Consider the following type for which we would like to provide
a pretty-printer and manage it via RegexpCollectionPrettyPrinter:
typedef long time_t;
Currently, this does not work because this framework only considers
the type's tag name:
typename = gdb.types.get_basic_type(val.type).tag
if not typename:
return None
This patch extends it to use the type's name if the basic type
does not have a tag name, thus allowing the framework to also
work with typedefs like the above.
gdb/ChangeLog:
* python/lib/gdb/printing.py (RegexpCollectionPrettyPrinter):
Use the type's name if its basic type does not have a tag.
gdb/testsuite/ChangeLog:
* testsuite/gdb.python/py-pp-re-notag.c: New file.
* testsuite/gdb.python/py-pp-re-notag.ex: New file.
* testsuite/gdb.python/py-pp-re-notag.p: New file.
commit dbb9c2b1f231262ece36790241fe1fc3902cf03d
Author: Joel Brobecker <brobecker@adacore.com>
Date: Wed Feb 26 10:53:05 2014 -0800
Add comment in dwarf2read.c::read_subrange_type
This comment explains why we sometimes sign-extend the range type
bounds when we normally shouldn't have to.
gdb/ChangeLog:
* dwarf2read.c (read_subrange_type): Add comment.
commit 55426c9d52fdba13df81fcce1b18469cc0362e50
Author: Joel Brobecker <brobecker@adacore.com>
Date: Wed Jan 22 18:40:20 2014 +0400
DWARF: Set enum type "flag_enum" and "unsigned" flags at type creation.
Consider the following Ada code:
-- An array whose index is an enumeration type with 128 enumerators.
type Enum_T is (Enum_000, Enum_001, [...], Enum_128);
type Table is array (Enum_T) of Boolean;
When the compiler is configured to generate pure DWARF debugging info,
trying to print type Table's description yields:
ptype pck.table
type = array (enum_000 .. -128) of boolean
The expected output was:
ptype pck.table
type = array (enum_000 .. enum_128) of boolean
The DWARF debugging info for our array looks like this:
<1><44>: Abbrev Number: 5 (DW_TAG_array_type)
<45> DW_AT_name : pck__table
<50> DW_AT_type : <0x28>
<2><54>: Abbrev Number: 6 (DW_TAG_subrange_type)
<55> DW_AT_type : <0x5c>
<59> DW_AT_lower_bound : 0
<5a> DW_AT_upper_bound : 128
The array index type is, by construction with the DWARF standard,
a subrange of our enumeration type, defined as follow:
<2><5b>: Abbrev Number: 0
<1><5c>: Abbrev Number: 7 (DW_TAG_enumeration_type)
<5d> DW_AT_name : pck__enum_t
<69> DW_AT_byte_size : 1
<2><6b>: Abbrev Number: 8 (DW_TAG_enumerator)
<6c> DW_AT_name : pck__enum_000
<7a> DW_AT_const_value : 0
[etc]
Therefore, while processing these DIEs, the array index type ends
up being a TYPE_CODE_RANGE whose target type is our enumeration type.
But the problem is that we read the upper bound as a negative value
(-128), which is then used as is by the type printer to print the
array upper bound. This negative value explains the "-128" in the
output.
To understand why the range type's upper bound is read as a negative
value, one needs to look at how it is determined, in read_subrange_type:
orig_base_type = die_type (die, cu);
base_type = check_typedef (orig_base_type);
[... high is first correctly read as 128, but then ...]
if (!TYPE_UNSIGNED (base_type) && (high & negative_mask))
high |= negative_mask;
The negative_mask is applied, here, because BASE_TYPE->FLAG_UNSIGNED
is not set. And the reason for that is because the base_type was only
partially constructed during the call to die_type. While the enum
is constructed on the fly by read_enumeration_type, its flag_unsigned
flag is only set later on, while creating the symbols corresponding to
the enum type's enumerators (see process_enumeration_scope), after
we've already finished creating our range type - and therefore too
late.
My first naive attempt at fixing this problem consisted in extracting
the part in process_enumeration_scope which processes all enumerators,
to generate the associated symbols, but more importantly set the type's
various flags when necessary. However, this does not always work well,
because we're still in the subrange_type's scope, and it might be
different from the scope where the enumeration type is defined.
So, instead, what this patch does to fix the issue is to extract
from process_enumeration_scope the part that determines whether
the enumeration type should have the flag_unsigned and/or the
flag_flag_enum flags set. It turns out that, aside from the code
implementing the loop, this part is fairly independent of the symbol
creation. With that part extracted, we can then use it at the end
of our enumeration type creation, to produce a type which should now
no longer need any adjustment.
Once the enumeration type produced is correctly marked as unsigned,
the subrange type's upper bound is then correctly read as an unsigned
value, therefore giving us an upper bound of 128 instead of -128.
gdb/ChangeLog:
* dwarf2read.c (update_enumeration_type_from_children): New
function, mostly extracted from process_structure_scope.
(read_enumeration_type): Call update_enumeration_type_from_children.
(process_enumeration_scope): Do not set THIS_TYPE's flag_unsigned
and flag_flag_enum fields.
gdb/testsuite/ChangeLog:
* gdb.dwarf2/arr-subrange.c, gdb.dwarf2/arr-subrange.exp: New files.
commit 0dcb32c3ae07166fc3b04eb4a86ae93ecd87bfb8
Author: Pedro Alves <palves@redhat.com>
Date: Wed Feb 26 16:33:13 2014 +0000
Mention PR breakpoints/16292 in corresponding ChangeLog entry.
commit f2fce0ca3dd5e0dc37fabb75e8874c05e8bf5170
Author: Pedro Alves <palves@redhat.com>
Date: Wed Feb 26 14:36:05 2014 +0000
bsd-uthread.c: Don't install a to_xfer_partial method
Whatever the comment about deprecated_xfer_memory referred to,
deprecated_xfer_memory is gone now. There's no need to install a
target method that just delegates, as that's what the default
delegator does already.
Tested by building an --enable-targets=all gdb on x86_64 Fedora 17.
gdb/
2014-02-26 Pedro Alves <palves@redhat.com>
* bsd-uthread.c (bsd_uthread_xfer_partial): Delete function.
(bsd_uthread_target): Don't install bsd_uthread_xfer_partial as
to_xfer_partial method.
commit 7a44e40e8b7e2f91d66930cdf1fe5fed0ba9c584
Author: Pedro Alves <palves@redhat.com>
Date: Wed Feb 26 14:36:04 2014 +0000
eliminate target_ops->deprecated_xfer_memory
As no target uses it anymore, it can finally go away.
After removing the deprecated_xfer_memory handling from
default_xfer_partial, we can delete the latter, because the only thing
it does is delegate to the target beneath unconditionally, which is
what the delegator installed by target-delegates.c will do for us if
no to_xfer_partial method is installed.
This was the last user of de_fault, so that goes away too.
Tested on x86_64 Fedora 17.
gdb/
2014-02-26 Pedro Alves <palves@redhat.com>
* target.c (complete_target_initialization): Don't install
default_xfer_partial as to_xfer_partial hook.
(nomemory): Delete.
(update_current_target): Don't INHERIT nor de_fault
deprecated_xfer_memory. Delete de_fault macro.
(default_xfer_partial, deprecated_debug_xfer_memory): Delete.
(setup_target_debug): Don't install a deprecated_xfer_memory hook.
* target.h (struct target_ops) <deprecated_xfer_memory>: Delete
field.
commit bd265cd0bde9e045ab5946532449430b66fe91ad
Author: Pedro Alves <palves@redhat.com>
Date: Wed Feb 26 14:36:04 2014 +0000
go32-nat.c: Don't install a deprecated_xfer_memory method
This removes yet another instance of a deprecated_xfer_memory user.
Unfortunately djgpp's write_child function takes a non-const buffer
pointer, while GDB's xfer_partial api passes a const pointer. To be
const-correct, we need to copy that buffer to a non-const buffer, and
pass the copy to write_child. This is actually what
target.c:default_xfer_partial itself does, when calling into the
ops->deprecated_xfer_memory hook.
Tested by cross-building djgpp gdb, on x86-64 Fedora 17.
gdb/
2014-02-26 Pedro Alves <palves@redhat.com>
* go32-nat.c (my_write_child): New function.
(go32_xfer_memory): Rewrite as to_xfer_partial helper.
(go32_xfer_partial): New function.
(init_go32_ops): Don't install a deprecated_xfer_memory hook.
Instead install a to_xfer_partial hook.
commit 9d46c4e5f55d67542036c87ca4d63078cedbaee2
Author: Pedro Alves <palves@redhat.com>
Date: Wed Feb 26 14:36:04 2014 +0000
nto-procfs.c: Don't install a deprecated_xfer_memory method
This removes yet another instance of a deprecated_xfer_memory user.
Completely untested.
gdb/
2014-02-26 Pedro Alves <palves@redhat.com>
* nto-procfs.c (procfs_xfer_memory): Adjust interface as a
to_xfer_partial helper. Rewrite.
(procfs_xfer_partial): New function.
(init_procfs_ops): Don't install a deprecated_xfer_memory hook.
Install a to_xfer_partial hook.
commit a1583b1fd9aee80f886e8cdd90e1c7e27c5cbbc7
Author: Pedro Alves <palves@redhat.com>
Date: Wed Feb 26 14:36:03 2014 +0000
remote-m32r-sdi.c: Don't install a deprecated_xfer_memory method
This removes yet another instance of a deprecated_xfer_memory user.
Tested by building a --enable-targets=all gdb, on x86-64 Fedora 17.
gdb/
2014-02-26 Pedro Alves <palves@redhat.com>
* remote-m32r-sdi.c (send_data): Constify 'buf' parameter.
(m32r_xfer_memory): Adjust as a to_xfer_partial helper.
(m32r_xfer_partial): New function.
(init_m32r_ops): Don't install a deprecated_xfer_memory hook.
Install a to_xfer_partial hook.
commit 6df1b29f02837669d68b8f153b189502e798a302
Author: Pedro Alves <palves@redhat.com>
Date: Wed Feb 26 14:36:03 2014 +0000
remote-mips.c: Don't install a deprecated_xfer_memory method
This removes another yet instance of a deprecated_xfer_memory user.
Tested by building a --enable-targets=all gdb, on x86-64 Fedora 17.
gdb/
2014-02-26 Pedro Alves <palves@redhat.com>
* remote-mips.c (mips_xfer_memory): Adjust as to_xfer_partial
helper.
(mips_xfer_partial): New function.
(_initialize_remote_mips): Don't install a deprecated_xfer_memory
hook. Install a to_xfer_partial hook.
commit dc53a7adb516adbf2f646a078a1140b1044a39f5
Author: Joel Brobecker <brobecker@adacore.com>
Date: Wed Jan 29 17:39:56 2014 +0400
DWARF: Add array DW_AT_bit_stride and DW_AT_byte_stride support
Consider the following declarations in Ada...
type Item is range -32 .. 31;
for Item'Size use 6;
type Table is array (Natural range 0 .. 4) of Item;
pragma Pack (Table);
... which declare a packed array whose elements are 6 bits long.
The debugger currently does not notice that the array is packed,
and thus prints values of this type incorrectly. This can be seen
in the "ptype" output:
(gdb) ptype table
type = array (0 .. 4) of foo.item
Normally, the debugger should print:
(gdb) ptype table
type = array (0 .. 4) of foo.item <packed: 6-bit elements>
The debugging information for this array looks like this:
.uleb128 0xf # (DIE (0x15c) DW_TAG_array_type)
.long .LASF9 # DW_AT_name: "pck__table"
.byte 0x6 # DW_AT_bit_stride
.long 0x1a9 # DW_AT_type
.uleb128 0x10 # (DIE (0x16a) DW_TAG_subrange_type)
.long 0x3b # DW_AT_type
.byte 0 # DW_AT_lower_bound
.byte 0x4 # DW_AT_upper_bound
.byte 0 # end of children of DIE 0x15c
The interesting part is the DW_AT_bit_stride attribute, which tells
the size of the array elements is 6 bits, rather than the normal
element type's size.
This patch adds support for this attribute by first creating
gdbtypes.c::create_array_type_with_stride, which is an enhanced
version of create_array_type taking an extra parameter as the stride.
The old create_array_type can then be re-implemented very simply
by calling the new create_array_type_with_stride.
We can then use this new function from dwarf2read, to create
arrays with or without stride.
gdb/ChangeLog:
* gdbtypes.h (create_array_type_with_stride): Add declaration.
* gdbtypes.c (create_array_type_with_stride): New function,
renaming create_array_type, but with an added parameter
called "bit_stride".
(create_array_type): Re-implement using
create_array_type_with_stride.
* dwarf2read.c (read_array_type): Add support for DW_AT_byte_stride
and DW_AT_bit_stride attributes.
gdb/testsuite/ChangeLog:
* gdb.dwarf2/arr-stride.c: New file.
* gdb.dwarf2/arr-stride.exp: New file.
The test, relying purely on generating an assembly file, only
verifies the type description of our array. But I was also
able to verify manually that the debugger print values of these
types correctly as well (which was not the case prior to this
patch).
commit 12ab52e9772a9170018feb44de3ef217e051cc60
Author: Pedro Alves <palves@redhat.com>
Date: Wed Feb 26 14:22:33 2014 +0000
Multiple Ada task-specific breakpoints at the same address.
With the test changed as in the patch, against current mainline, we get:
(gdb) PASS: gdb.ada/tasks.exp: info tasks before inserting breakpoint
break break_me task 1
Breakpoint 2 at 0x4030b0: file /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.ada/tasks/foo.adb, line 27.
(gdb) PASS: gdb.ada/tasks.exp: break break_me task 1
break break_me task 3
Note: breakpoint 2 also set at pc 0x4030b0.
Breakpoint 3 at 0x4030b0: file /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.ada/tasks/foo.adb, line 27.
(gdb) PASS: gdb.ada/tasks.exp: break break_me task 3
continue
Continuing.
[Switching to Thread 0x7ffff7dc7700 (LWP 27133)]
Breakpoint 2, foo.break_me () at /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.ada/tasks/foo.adb:27
27 null;
(gdb) FAIL: gdb.ada/tasks.exp: continue to breakpoint
info tasks
ID TID P-ID Pri State Name
1 63b010 48 Waiting on RV with 3 main_task
2 63bd80 1 48 Accept or Select Term task_list(1)
* 3 63f510 1 48 Accepting RV with 1 task_list(2)
4 642ca0 1 48 Accept or Select Term task_list(3)
(gdb) PASS: gdb.ada/tasks.exp: info tasks after hitting breakpoint
The breakpoint that caused a stop is breakpoint 3, but GDB end up
reporting (and running breakpoint commands of) "Breakpoint 2" instead.
The issue is that the bpstat_check_breakpoint_conditions logic of
"wrong thread" is missing the "wrong task" check. This is usually
harmless, because the thread hop code in infrun.c code that handles
wrong-task-hitting-breakpoint does check for task-specific breakpoints
(within breakpoint_thread_match):
/* Check if a regular breakpoint has been hit before checking
for a potential single step breakpoint. Otherwise, GDB will
not see this breakpoint hit when stepping onto breakpoints. */
if (regular_breakpoint_inserted_here_p (aspace, stop_pc))
{
if (!breakpoint_thread_match (aspace, stop_pc, ecs->ptid))
thread_hop_needed = 1;
}
IOW, usually, when one only has a task specific breakpoint at a given
address, things work correctly. Put another task-specific or
non-task-specific breakpoint there, and things break.
A patch that eliminates the special thread hop code in infrun.c is
what exposed this, as after that GDB solely relies on
bpstat_check_breakpoint_conditions to know whether the right or wrong
task hit a breakpoint. IOW, given the latent bug, Ada task-specific
breakpoints become non-task-specific, and that is caught by the
testsuite, as:
break break_me task 3
Breakpoint 2 at 0x4030b0: file /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.ada/tasks/foo.adb, line 27.
(gdb) PASS: gdb.ada/tasks.exp: break break_me task 3
continue
Continuing.
[Switching to Thread 0x7ffff7fcb700 (LWP 17122)]
Breakpoint 2, foo.break_me () at /home/pedro/gdb/mygit/src/gdb/testsuite/gdb.ada/tasks/foo.adb:27
27 null;
(gdb) PASS: gdb.ada/tasks.exp: continue to breakpoint
info tasks
ID TID P-ID Pri State Name
1 63b010 48 Waiting on RV with 2 main_task
* 2 63bd80 1 48 Accepting RV with 1 task_list(1)
3 63f510 1 48 Accept or Select Term task_list(2)
4 642ca0 1 48 Accept or Select Term task_list(3)
(gdb) FAIL: gdb.ada/tasks.exp: info tasks after hitting breakpoint
It was after seeing this that I thought of how to expose the bug with
current mainline.
Tested on x86_64 Fedora 17.
gdb/
2014-02-26 Pedro Alves <palves@redhat.com>
* breakpoint.c (bpstat_check_breakpoint_conditions): Handle
task-specific breakpoints.
gdb/testsuite/
2014-02-26 Pedro Alves <palves@redhat.com>
* gdb.ada/tasks.exp: Set a task-specific breakpoint at break_me
that won't ever trigger. Make sure that GDB reports the correct
breakpoint that caused the stop.
commit e3e3703534b6277b9d60441a9c828b7deadfe603
Author: Dan Mick <dan.mick@inktank.com>
Date: Wed Feb 26 12:05:02 2014 +0000
Resolve PR ld/16569 by emitting (and comparing) unmangled names, unless
demangling has specifically been requested.
commit d16461aeef555da47e358b0f81c75912e4ea07e2
Author: Pedro Alves <palves@redhat.com>
Date: Tue Feb 25 20:45:50 2014 -0500
Re-implement ia64-linux-nat.c::ia64_linux_xfer_partial
[description of this patch and ChangeLog entry by Joel Brobecker]
The recent implementation was questionable, and if it worked, it was
only by chance because the requested length is large enough that only
one read was sufficient. Note that the implementation before that
also made that assumption, in the form of only handling
TARGET_OBJECT_UNWIND_TABLE xfer requests when offset was zero.
gdb/ChangeLog:
* ia64-linux-nat.c (ia64_linux_xfer_partial): Reimplement
handling of object == TARGET_OBJECT_UNWIND_TABLE.
commit a8b1622022a0fb3531bfd4ce77e69f6b15312745
Author: Stan Shebs <stan@codesourcery.com>
Date: Tue Feb 25 15:47:58 2014 -0800
Annotate comments for Doxygen.
commit cad798bd0d2eaabe27e1629dc76fc7e75dbd6760
Author: Alan Modra <amodra@gmail.com>
Date: Wed Feb 26 09:30:38 2014 +1030
daily update
commit 71b7d793371c3cff599c3329c5f3205240117731
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Tue Feb 25 20:47:09 2014 +0100
PR gdb/16626
gdb/testsuite/
2014-02-25 Jan Kratochvil <jan.kratochvil@redhat.com>
PR gdb/16626
* gdb.base/auto-load.exp: Fix out-of-srctree run.
Message-ID: <87k3cjt3jl.fsf@fleche.redhat.com>
commit b9e795ee5549c36dedd086c202f8aa3534c4b770
Author: Tom Tromey <tromey@redhat.com>
Date: Mon Feb 24 14:57:14 2014 -0700
remove target_ignore
This removes target_ignore, which isn't used any more.
2014-02-25 Tom Tromey <tromey@redhat.com>
* target.h (target_ignore): Don't declare.
* target.c (target_ignore): Remove.
commit 849c862eb2637990692ffe31d16dc779f9bf30c5
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Tue Feb 25 18:32:32 2014 +0100
PR gdb/16626
Fix auto-load 7.7 regression,
the regression affects any loading from /usr/share/gdb/auto-load .
5b2bf9471f1499bee578fcd60c05afe85794e280 is the first bad commit
commit 5b2bf9471f1499bee578fcd60c05afe85794e280
Author: Doug Evans <xdje42@gmail.com>
Date: Fri Nov 29 21:29:26 2013 -0800
Move .debug_gdb_script processing to auto-load.c.
Simplify handling of auto-loaded objfile scripts.
Fedora 20 x86_64
$ gdb -q /usr/lib64/libgobject-2.0.so
Reading symbols from /usr/lib64/libglib-2.0.so.0.3800.2...Reading symbols from
/usr/lib/debug/usr/lib64/libglib-2.0.so.0.3800.2.debug...done.
done.
(gdb) _
Fedora Rawhide x86_64
$ gdb -q /usr/lib64/libgobject-2.0.so
Reading symbols from /usr/lib64/libglib-2.0.so...Reading symbols from
/usr/lib/debug/usr/lib64/libglib-2.0.so.0.3990.0.debug...done.
done.
warning: File "/usr/lib64/libglib-2.0.so.0.3990.0-gdb.py" auto-loading has been declined by your `auto-load safe-path'
set to "$debugdir:$datadir/auto-load:/usr/bin/mono-gdb.py".
To enable execution of this file add
add-auto-load-safe-path /usr/lib64/libglib-2.0.so.0.3990.0-gdb.py
line to your configuration file "/home/jkratoch/.gdbinit".
To completely disable this security protection add
set auto-load safe-path /
line to your configuration file "/home/jkratoch/.gdbinit".
For more information about this security protection see the
"Auto-loading safe path" section in the GDB manual. E.g., run from the shell:
info "(gdb)Auto-loading safe path"
(gdb) _
That is it tries to load "forbidden"
/usr/lib64/libglib-2.0.so.0.3990.0-gdb.py
but it should load instead
/usr/share/gdb/auto-load/usr/lib64/libglib-2.0.so.0.3990.0-gdb.py*
Although that is also not exactly this way, there does not exist any
/usr/lib64/libglib-2.0.so.0.3990.0-gdb.py
despite regressed GDB says so.
gdb/
2014-02-24 Jan Kratochvil <jan.kratochvil@redhat.com>
PR gdb/16626
* auto-load.c (auto_load_objfile_script_1): Change filename to
debugfile.
gdb/testsuite/
2014-02-24 Jan Kratochvil <jan.kratochvil@redhat.com>
PR gdb/16626
* gdb.base/auto-load-script: New file.
* gdb.base/auto-load.c: New file.
* gdb.base/auto-load.exp: New file.
Message-ID: <20140223212400.GA8831@host2.jankratochvil.net>
commit e2f0d509b33e91abf99978af5fe8d45240550c35
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Tue Feb 25 18:28:38 2014 +0100
Fix dw2-icycle.exp -fsanitize=address GDB crash.
binutils readelf -wi:
<4><a2>: Abbrev Number: 26 (DW_TAG_inlined_subroutine)
<a3> DW_AT_abstract_origin: <0x5a>
<a7> DW_AT_low_pc : 0x400590
<ab> DW_AT_high_pc : 0x4
<af> DW_AT_call_file : 1
<b0> DW_AT_call_line : 20
<b1> DW_AT_sibling : <0xb8>
<2><b8>: Abbrev Number: 35 (DW_TAG_inlined_subroutine)
<b9> DW_AT_abstract_origin: <0x5a>
<bd> DW_AT_low_pc : 0x400590
<c1> DW_AT_high_pc : 0x4
<c5> DW_AT_call_file : 1
<c6> DW_AT_call_line : 29
<b1> DW_AT_sibling points to the next DIE - but that DIE is 2 levels
upwards - definitely not a sibling. This confuses GDB up to a crash:
==32143== ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6024000198ac at pc 0xb4d104 bp 0x7fff63e96e70 sp
0x7fff63e96e60
READ of size 1 at 0x6024000198ac thread T0
#0 0xb4d103 in read_unsigned_leb128 (/home/jkratoch/redhat/gdb-clean/gdb/gdb+0xb4d103)
#1 0xb15f3c in peek_die_abbrev (/home/jkratoch/redhat/gdb-clean/gdb/gdb+0xb15f3c)
#2 0xb46185 in load_partial_dies (/home/jkratoch/redhat/gdb-clean/gdb/gdb+0xb46185)
#3 0xb103fb in process_psymtab_comp_unit_reader (/home/jkratoch/redhat/gdb-clean/gdb/gdb+0xb103fb)
#4 0xb0d2a9 in init_cutu_and_read_dies (/home/jkratoch/redhat/gdb-clean/gdb/gdb+0xb0d2a9)
#5 0xb1115f in process_psymtab_comp_unit (/home/jkratoch/redhat/gdb-clean/gdb/gdb+0xb1115f)
#6 0xb1235f in dwarf2_build_psymtabs_hard (/home/jkratoch/redhat/gdb-clean/gdb/gdb+0xb1235f)
#7 0xb05536 in dwarf2_build_psymtabs (/home/jkratoch/redhat/gdb-clean/gdb/gdb+0xb05536)
#8 0x86d5a5 in read_psyms (/home/jkratoch/redhat/gdb-clean/gdb/gdb+0x86d5a5)
#9 0x9b1c37 in require_partial_symbols (/home/jkratoch/redhat/gdb-clean/gdb/gdb+0x9b1c37)
#10 0x9bf2d0 in read_symbols (/home/jkratoch/redhat/gdb-clean/gdb/gdb+0x9bf2d0)
#11 0x9c014c in syms_from_objfile_1 (/home/jkratoch/redhat/gdb-clean/gdb/gdb+0x9c014c)
gdb/testsuite/
2014-02-25 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix dw2-icycle.exp -fsanitize=address GDB crash.
* gdb.dwarf2/dw2-icycle.S: Remove all DW_AT_sibling.
Message-ID: <20140224201011.GA28926@host2.jankratochvil.net>
commit d6e9dd78c4ac29900ed0047f15892720c67dff6b
Author: Ilya Tocar <ilya.tocar@intel.com>
Date: Thu Feb 20 19:08:13 2014 +0400
Remove bogus vcvtps2ph variant.
We currently support version of vcvtps2ph with sae and only 1 register operand.
This version is encoded as if missing operand was equal to ymm0.
I didn't found any references to this variant in
http://download-software.intel.com/sites/default/files/managed/50/1a/319433-018.pdf
This patch removes it.
opcodes/
* i386-opc.tbl: Remove wrong variant of vcvtps2ph
* i386-tbl.h: Regenerate.
commit 475109d8708bdc9c9a4667c0e460a1c395fdd8fd
Author: Joel Brobecker <brobecker@adacore.com>
Date: Tue Feb 25 09:58:25 2014 -0500
Adjust ia64_linux_xfer_partial following to_xfer_partial API change.
ia64-linux-nat.c no longer compiles because ia64_linux_xfer_partial
no longer matches the to_xfer_partial prototype. This patch fixes
the problem by adjusting it accordingly.
gdb/ChangeLog:
* ia64-linux-nat.c (ia64_linux_xfer_partial): Add function
documentation. Adjust prototype to match the target_ops
to_xfer_partial method. Adjust implementation accordingly.
commit 041ab8b4843764204e660aefdb006da397e2d8ac
Author: Hui Zhu <teawater@gmail.com>
Date: Tue Feb 25 23:59:47 2014 +0800
Fix a format issue of ChangeLog.
commit e186c3bd62c2e401c74651b712d960f38cfb8169
Author: Hui Zhu <teawater@gmail.com>
Date: Tue Feb 25 23:55:42 2014 +0800
2014-02-25 Hui Zhu <hui@codesourcery.com>
* target.h (target_ops): Fix TARGET_DEFAULT_RETURN of
to_traceframe_info.
commit 6d451942486ca4125c48b1f10fdd5d619d6a532c
Author: Kevin Buettner <kevinb@redhat.com>
Date: Tue Feb 25 00:32:45 2014 -0700
Use 16-bit integer type for rl78 register pairs.
This patch changes rl78-tdep.c so that a 16-bit type is used for
register pairs instead of a pointer type as was previously the case.
This will cause these register pairs to be displayed as integers
instead of as a data address with a 0xf0000 ORed in.
E.g. registers ax, bc, de, and hl might now be displayed like this:
(gdb) info registers ax bc de hl
ax 0x6 6
bc 0x0 0
de 0x10c3 4291
hl 0x108d 423
Whereas, before, they were displayed as follows:
(gdb) info registers ax bc de hl
ax 0xf0006 0xf0006
bc 0xf0000 0xf0000
de 0xf10c3 0xf10c3
hl 0xf108d 0xf108d
These pairs are 16 bit quantities and should be displayed as such.
This change also affects the way that the banked register pairs are
displayed. Within GDB, the banked register pairs are named bank0_rp0,
bank0_rp1, .., bank3_rp2, bank3_rp3.
However, these register pairs need to be used as addresses in DWARF
expressions. I have added 16 pseudo registers corresponding to banked
register pairs. These new pseudo registers are all hidden from the
user and have a pointer type. Values from these registers are
intended to be used in DWARF expressions. Therefore,
rl78_dwarf_reg_to_regnum() has been adjusted to return these new
pseudo register numbers.
I had a much simpler patch which only changed the types, but it showed
a number of regressions due to integer values from the banked register
pairs being used as part of an address expression. This current patch
shows no regressions and now displays values of register pairs
correctly.
* rl78-tdep.c ( RL78_BANK0_RP0_PTR_REGNUM, RL78_BANK0_RP1_PTR_REGNUM)
(RL78_BANK0_RP2_PTR_REGNUM, RL78_BANK0_RP3_PTR_REGNUM)
(RL78_BANK1_RP0_PTR_REGNUM, RL78_BANK1_RP1_PTR_REGNUM)
(RL78_BANK1_RP2_PTR_REGNUM, RL78_BANK1_RP3_PTR_REGNUM)
(RL78_BANK2_RP0_PTR_REGNUM, RL78_BANK2_RP1_PTR_REGNUM)
(RL78_BANK2_RP2_PTR_REGNUM, RL78_BANK2_RP3_PTR_REGNUM)
(RL78_BANK3_RP0_PTR_REGNUM, RL78_BANK3_RP1_PTR_REGNUM)
(RL78_BANK3_RP2_PTR_REGNUM, RL78_BANK3_RP3_PTR_REGNUM):
New constants.
(rl78_register_type): Use a data pointer type for SP and
new pseudo registers mentioned above. Use a 16 bit integer
type for all other register pairs.
(rl78_register_name, rl78_g10_register_name): Update for
new pseudo registers.
(rl78_pseudo_register_read): Likewise.
(rl78_pseudo_register_write): Likewise.
(rl78_dwarf_reg_to_regnum): Return register numbers representing
to the newly added pseudo registers.
-----------------------------------------------------------------------
Summary of changes:
bfd/version.h | 2 +-
gdb/ChangeLog | 613 ++++++++++++++++++++
gdb/ada-lang.c | 18 +-
gdb/ada-tasks.c | 12 +-
gdb/aix-thread.c | 15 +-
gdb/amd64-windows-tdep.c | 6 +-
gdb/arm-tdep.c | 14 +-
gdb/arm-wince-tdep.c | 6 +-
gdb/auto-load.c | 6 +-
gdb/auxv.c | 9 +-
gdb/avr-tdep.c | 7 +-
gdb/ax-gdb.c | 7 +-
gdb/block.c | 2 +-
gdb/blockframe.c | 54 +--
gdb/breakpoint.c | 70 ++--
gdb/bsd-uthread.c | 22 +-
gdb/btrace.c | 4 +-
gdb/c-exp.y | 2 +-
gdb/c-valprint.c | 7 +-
gdb/coff-pe-read.c | 28 +-
gdb/coffread.c | 17 +-
gdb/common/agent.c | 7 +-
gdb/common/common-utils.h | 4 +-
gdb/d-lang.c | 4 +-
gdb/dbxread.c | 42 +-
gdb/dec-thread.c | 6 +-
gdb/defs.h | 128 +++--
gdb/dwarf2loc.c | 33 +-
gdb/dwarf2read.c | 185 +++++--
gdb/elfread.c | 115 ++--
gdb/eval.c | 2 +-
gdb/exec.c | 16 +-
gdb/findvar.c | 22 +-
gdb/frame.c | 8 +-
gdb/frv-tdep.c | 9 +-
gdb/gcore.c | 4 +-
gdb/gdbserver/ChangeLog | 38 ++
gdb/gdbserver/win32-low.c | 279 ++-------
gdb/gdbtypes.c | 27 +-
gdb/gdbtypes.h | 4 +
gdb/glibc-tdep.c | 6 +-
gdb/gnu-v2-abi.c | 2 +-
gdb/gnu-v3-abi.c | 24 +-
gdb/go-lang.c | 4 +-
gdb/go32-nat.c | 75 ++-
gdb/hppa-hpux-tdep.c | 36 +-
gdb/hppa-tdep.c | 21 +-
gdb/hppa-tdep.h | 2 +-
gdb/i386-tdep.c | 6 +-
gdb/ia64-linux-nat.c | 39 ++-
gdb/ia64-tdep.c | 3 +-
gdb/infcall.c | 2 +-
gdb/infcmd.c | 2 +-
gdb/jit.c | 17 +-
gdb/linespec.c | 15 +-
gdb/linux-fork.c | 11 +-
gdb/linux-nat.c | 7 +-
gdb/linux-thread-db.c | 6 +-
gdb/m32c-tdep.c | 29 +-
gdb/m32r-tdep.c | 5 +-
gdb/m68hc11-tdep.c | 6 +-
gdb/machoread.c | 19 +-
gdb/maint.c | 6 +-
gdb/mdebugread.c | 38 +-
gdb/minsyms.c | 332 +++++++-----
gdb/minsyms.h | 43 +-
gdb/mips-linux-tdep.c | 4 +-
gdb/mips-tdep.c | 10 +-
gdb/mipsread.c | 3 -
gdb/msp430-tdep.c | 2 +-
gdb/nto-procfs.c | 58 ++-
gdb/objc-lang.c | 49 +-
gdb/objfiles.c | 16 +-
gdb/objfiles.h | 67 ++-
gdb/obsd-tdep.c | 5 +-
gdb/p-lang.c | 8 +-
gdb/p-valprint.c | 7 +-
gdb/parse.c | 6 +-
gdb/ppc-linux-tdep.c | 16 +-
gdb/ppc-sysv-tdep.c | 10 +-
gdb/printcmd.c | 50 +-
gdb/proc-service.c | 7 +-
gdb/psymtab.c | 14 +-
gdb/python/lib/gdb/printing.py | 2 +
gdb/python/py-framefilter.c | 2 +-
gdb/ravenscar-thread.c | 28 +-
gdb/record-btrace.c | 4 +-
gdb/remote-m32r-sdi.c | 60 ++-
gdb/remote-mips.c | 65 ++-
gdb/remote.c | 8 +-
gdb/rl78-tdep.c | 67 ++-
gdb/rs6000-tdep.c | 8 +-
gdb/sh64-tdep.c | 2 +-
gdb/sol-thread.c | 6 +-
gdb/sol2-tdep.c | 5 +-
gdb/solib-dsbt.c | 6 +-
gdb/solib-frv.c | 12 +-
gdb/solib-irix.c | 6 +-
gdb/solib-som.c | 79 ++--
gdb/solib-spu.c | 16 +-
gdb/solib-svr4.c | 18 +-
gdb/somread.c | 24 +-
gdb/spu-tdep.c | 29 +-
gdb/stabsread.c | 23 +-
gdb/stack.c | 15 +-
gdb/symfile-debug.c | 4 +-
gdb/symfile.c | 21 +-
gdb/symfile.h | 2 +-
gdb/symmisc.c | 23 +-
gdb/symtab.c | 90 ++--
gdb/symtab.h | 45 ++-
gdb/target.c | 129 ----
gdb/target.h | 31 +-
gdb/testsuite/ChangeLog | 45 ++
gdb/testsuite/gdb.ada/tasks.exp | 28 +-
gdb/testsuite/gdb.base/auto-load-script | 17 +
gdb/testsuite/gdb.base/auto-load.c | 22 +
gdb/testsuite/gdb.base/auto-load.exp | 41 ++
gdb/testsuite/gdb.dwarf2/arr-stride.c | 20 +
gdb/testsuite/gdb.dwarf2/arr-stride.exp | 108 ++++
gdb/testsuite/gdb.dwarf2/arr-subrange.c | 20 +
gdb/testsuite/gdb.dwarf2/arr-subrange.exp | 99 ++++
gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello-dbg.S | 151 +++++
gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello.c | 28 +
gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world-dbg.S | 151 +++++
gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world.c | 28 +
gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.c | 28 +
gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.exp | 35 ++
gdb/testsuite/gdb.dwarf2/dw2-icycle.S | 10 -
gdb/testsuite/gdb.python/py-pp-re-notag.c | 33 +
gdb/testsuite/gdb.python/py-pp-re-notag.exp | 39 ++
gdb/testsuite/gdb.python/py-pp-re-notag.py | 36 ++
gdb/tracepoint.c | 6 +-
gdb/tui/tui-disasm.c | 21 +-
gdb/valops.c | 2 +-
gdb/value.c | 10 +-
gdb/xcoffread.c | 1 -
ld/ChangeLog | 8 +
ld/ldcref.c | 32 +-
opcodes/ChangeLog | 7 +-
opcodes/i386-opc.tbl | 1 -
opcodes/i386-tbl.h | 18 -
142 files changed, 3214 insertions(+), 1603 deletions(-)
create mode 100644 gdb/testsuite/gdb.base/auto-load-script
create mode 100644 gdb/testsuite/gdb.base/auto-load.c
create mode 100644 gdb/testsuite/gdb.base/auto-load.exp
create mode 100644 gdb/testsuite/gdb.dwarf2/arr-stride.c
create mode 100644 gdb/testsuite/gdb.dwarf2/arr-stride.exp
create mode 100644 gdb/testsuite/gdb.dwarf2/arr-subrange.c
create mode 100644 gdb/testsuite/gdb.dwarf2/arr-subrange.exp
create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello-dbg.S
create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello.c
create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world-dbg.S
create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world.c
create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.c
create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.exp
create mode 100644 gdb/testsuite/gdb.python/py-pp-re-notag.c
create mode 100644 gdb/testsuite/gdb.python/py-pp-re-notag.exp
create mode 100644 gdb/testsuite/gdb.python/py-pp-re-notag.py
First 500 lines of diff:
diff --git a/bfd/version.h b/bfd/version.h
index 979f201..b29a89e 100644
--- a/bfd/version.h
+++ b/bfd/version.h
@@ -1,4 +1,4 @@
-#define BFD_VERSION_DATE 20140225
+#define BFD_VERSION_DATE 20140226
#define BFD_VERSION @bfd_version@
#define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@
#define REPORT_BUGS_TO @report_bugs_to@
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9f9088d..bb7060c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,615 @@
+2014-02-27 Joel Brobecker <brobecker@adacore.com>
+
+ * dwarf2read.c (attr_value_as_address): New function.
+ (dwarf2_find_base_address, read_call_site_scope): Use
+ attr_value_as_address in place of DW_ADDR.
+ (dwarf2_get_pc_bounds): Use attr_value_as_address to get
+ the low and high addresses. Slight rework of the handling
+ of the high pc being a constant form, and limit it to
+ DWARF verson 4 or higher.
+ (dwarf2_record_block_ranges): Likewise.
+ (read_partial_die): Likewise.
+ (new_symbol_full): Use attr_value_as_address in place of DW_ADDR.
+
+2014-02-26 Tom Tromey <tromey@redhat.com>
+
+ * exec.c (exec_file_attach): Hold a reference to exec_bfd.
+
+2014-02-26 Tom Tromey <tromey@redhat.com>
+
+ * elfread.c (elf_read_minimal_symbols): Return early if
+ minimal symbols have already been read. Add "ei" parameter.
+ (elf_symfile_read): Call elf_read_minimal_symbols earlier.
+ * minsyms.c (prim_record_minimal_symbol_full): Update.
+ * objfiles.h (struct objstats) <n_minsyms>: Move...
+ (struct objfile_per_bfd_storage) <n_minsyms>: ... here.
+ * symmisc.c (print_objfile_statistics): Update.
+
+2014-02-26 Tom Tromey <tromey@redhat.com>
+
+ * elfread.c (elf_read_minimal_symbols): New function, from
+ elf_symfile_read.
+ (elf_symfile_read): Call it.
+
+2014-02-26 Tom Tromey <tromey@redhat.com>
+
+ * minsyms.c (lookup_minimal_symbol, iterate_over_minimal_symbols)
+ (lookup_minimal_symbol_text, lookup_minimal_symbol_by_pc_name)
+ (lookup_minimal_symbol_solib_trampoline)
+ (lookup_minimal_symbol_by_pc_section_1)
+ (lookup_minimal_symbol_and_objfile): Update.
+ (prim_record_minimal_symbol_full): Use the per-BFD obstack.
+ Don't allocate a minimal symbol if minsyms have already been read.
+ (build_minimal_symbol_hash_tables): Update.
+ (install_minimal_symbols): Do nothing if minsyms already read.
+ Use the per-BFD obstack.
+ (terminate_minimal_symbol_table): Use the per-BFD obstack.
+ * objfiles.c (allocate_objfile): Call
+ terminate_minimal_symbol_table later.
+ (have_minimal_symbols): Update.
+ * objfiles.h (struct objfile_per_bfd_storage) <msymbols,
+ minimal_symbol_count, msymbol_hash, msymbol_demangled_hash>:
+ Move from struct objfile.
+ <minsyms_read>: New field.
+ (struct objfile) <msymbols, minimal_symbol_count,
+ msymbol_hash, msymbol_demangled_hash>: Move.
+ (ALL_OBJFILE_MSYMBOLS): Update.
+ * symfile.c (read_symbols): Set minsyms_read.
+ (reread_symbols): Update.
+ * symmisc.c (dump_objfile, dump_msymbols): Update.
+
+2014-02-26 Tom Tromey <tromey@redhat.com>
+
+ * minsyms.c (msymbols_sort): Remove.
+ * minsyms.h (msymbols_sort): Remove.
+ * objfiles.c (objfile_relocate1): Don't relocate minsyms.
+ * symtab.h (MSYMBOL_VALUE_ADDRESS): Use objfile offsets.
+ * elfread.c (elf_symtab_read): Don't add section offsets.
+ * xcoffread.c (record_minimal_symbol): Don't add section offset
+ to minimal symbol address.
+ * somread.c (text_offset, data_offset): Remove.
+ (som_symtab_read): Don't add section offsets to minimal symbol
+ addresses.
+ * coff-pe-read.c (add_pe_forwarded_sym, read_pe_exported_syms):
+ Don't add section offsets to minimal symbols.
+ * coffread.c (coff_symtab_read): Don't add section offsets
+ to minimal symbol addresses.
+ * machoread.c (macho_symtab_add_minsym): Don't add section offset
+ to minimal symbol addresses.
+ * mipsread.c (read_alphacoff_dynamic_symtab): Don't add
+ section offset to minimal symbol addresses.
+ * mdebugread.c (parse_partial_symbols): Don't add section
+ offset to minimal symbol addresses.
+ * dbxread.c (read_dbx_dynamic_symtab): Don't add section
+ offset to minimal symbol addresses.
+
+2014-02-26 Tom Tromey <tromey@redhat.com>
+
+ * ada-lang.c (ada_main_name): Update.
+ (ada_add_standard_exceptions): Update.
+ * ada-tasks.c (ada_tasks_inferior_data_sniffer): Update.
+ * aix-thread.c (pdc_symbol_addrs, pd_enable): Update.
+ * arm-tdep.c (skip_prologue_function, arm_skip_stub): Update.
+ * auxv.c (ld_so_xfer_auxv): Update.
+ * avr-tdep.c (avr_scan_prologue): Update.
+ * ax-gdb.c (gen_var_ref): Update.
+ * blockframe.c (get_pc_function_start)
+ (find_pc_partial_function_gnu_ifunc): Update.
+ * breakpoint.c (create_overlay_event_breakpoint)
+ (create_longjmp_master_breakpoint)
+ (create_std_terminate_master_breakpoint)
+ (create_exception_master_breakpoint): Update.
+ * bsd-uthread.c (bsd_uthread_lookup_address): Update.
+ * c-valprint.c (c_val_print): Update.
+ * coff-pe-read.c (add_pe_forwarded_sym): Update.
+ * common/agent.c (agent_look_up_symbols): Update.
+ * dbxread.c (find_stab_function_addr, end_psymtab): Update.
+ * dwarf2loc.c (call_site_to_target_addr): Update.
+ * dwarf2read.c (dw2_find_pc_sect_symtab): Update.
+ * elfread.c (elf_gnu_ifunc_record_cache)
+ (elf_gnu_ifunc_resolve_by_got): Update.
+ * findvar.c (default_read_var_value): Update.
+ * frame.c (inside_main_func): Update.
+ * frv-tdep.c (frv_frame_this_id): Update.
+ * glibc-tdep.c (glibc_skip_solib_resolver): Update.
+ * gnu-v3-abi.c (gnuv3_get_typeid, gnuv3_skip_trampoline):
+ Update.
+ * hppa-hpux-tdep.c (hppa64_hpux_search_dummy_call_sequence)
+ (hppa_hpux_find_dummy_bpaddr): Update.
+ * hppa-tdep.c (hppa_symbol_address): Update.
+ * infcmd.c (until_next_command): Update.
+ * jit.c (jit_read_descriptor, jit_breakpoint_re_set_internal):
+ Update.
+ * linespec.c (minsym_found, add_minsym): Update.
+ * linux-nat.c (get_signo): Update.
+ * linux-thread-db.c (inferior_has_bug): Update.
+ * m32c-tdep.c (m32c_return_value)
+ (m32c_m16c_address_to_pointer): Update.
+ * m32r-tdep.c (m32r_frame_this_id): Update.
+ * m68hc11-tdep.c (m68hc11_get_register_info): Update.
+ * machoread.c (macho_resolve_oso_sym_with_minsym): Update.
+ * maint.c (maintenance_translate_address): Update.
+ * minsyms.c (lookup_minimal_symbol_by_pc_name): Update.
+ (frob_address): New function.
+ (lookup_minimal_symbol_by_pc_section_1): Use raw addresses,
+ frob_address. Rename parameter to "pc_in".
+ (compare_minimal_symbols, compact_minimal_symbols): Use raw
+ addresses.
+ (find_solib_trampoline_target, minimal_symbol_upper_bound):
+ Update.
+ * mips-linux-tdep.c (mips_linux_skip_resolver): Update.
+ * mips-tdep.c (mips_skip_pic_trampoline_code): Update.
+ * objc-lang.c (find_objc_msgsend): Update.
+ * objfiles.c (objfile_relocate1): Update.
+ * obsd-tdep.c (obsd_skip_solib_resolver): Update.
+ * p-valprint.c (pascal_val_print): Update.
+ * parse.c (write_exp_msymbol): Update.
+ * ppc-linux-tdep.c (ppc_linux_spe_context_lookup)
+ (ppc_elfv2_skip_entrypoint): Update.
+ * ppc-sysv-tdep.c (convert_code_addr_to_desc_addr): Update.
+ * printcmd.c (build_address_symbolic, msym_info)
+ (address_info): Update.
+ * proc-service.c (ps_pglobal_lookup): Update.
+ * psymtab.c (find_pc_sect_psymtab_closer)
+ (find_pc_sect_psymtab, find_pc_sect_symtab_from_partial):
+ Change msymbol parameter to bound_minimal_symbol.
+ * ravenscar-thread.c (get_running_thread_id): Update.
+ * remote.c (remote_check_symbols): Update.
+ * sh64-tdep.c (sh64_elf_make_msymbol_special): Use raw
+ address.
+ * sol2-tdep.c (sol2_skip_solib_resolver): Update.
+ * solib-dsbt.c (lm_base): Update.
+ * solib-frv.c (lm_base, main_got): Update.
+ * solib-irix.c (locate_base): Update.
+ * solib-som.c (som_solib_create_inferior_hook)
+ (link_map_start): Update.
+ * solib-spu.c (spu_enable_break, ocl_enable_break): Update.
+ * solib-svr4.c (elf_locate_base, enable_break): Update.
+ * spu-tdep.c (spu_get_overlay_table, spu_catch_start)
+ (flush_ea_cache): Update.
+ * stabsread.c (define_symbol, scan_file_globals): Update.
+ * stack.c (find_frame_funname): Update.
+ * symfile-debug.c (debug_qf_expand_symtabs_matching)
+ (debug_qf_find_pc_sect_symtab): Update.
+ * symfile.c (simple_read_overlay_table)
+ (simple_overlay_update): Update.
+ * symfile.h (struct quick_symbol_functions)
+ <find_pc_sect_symtab>: Change type of msymbol to
+ bound_minimal_symbol.
+ * symmisc.c (dump_msymbols): Update.
+ * symtab.c (find_pc_sect_symtab_via_partial)
+ (find_pc_sect_psymtab, find_pc_sect_line, skip_prologue_sal)
+ (search_symbols, print_msymbol_info): Update.
+ * symtab.h (MSYMBOL_VALUE_RAW_ADDRESS): New macro.
+ (MSYMBOL_VALUE_ADDRESS): Redefine.
+ (BMSYMBOL_VALUE_ADDRESS): New macro.
+ * tracepoint.c (scope_info): Update.
+ * tui/tui-disasm.c (tui_find_disassembly_address)
+ (tui_get_begin_asm_address): Update.
+ * valops.c (find_function_in_inferior): Update.
+ * value.c (value_static_field, value_fn_field): Update.
+
+2014-02-26 Tom Tromey <tromey@redhat.com>
+
+ * ada-lang.c (ada_update_initial_language): Update.
+ (ada_main_name, ada_has_this_exception_support): Update.
+ * ada-tasks.c (ada_tasks_inferior_data_sniffer): Update.
+ * aix-thread.c (pdc_symbol_addrs, pd_enable): Update.
+ * arm-tdep.c (arm_skip_stub): Update.
+ * auxv.c (ld_so_xfer_auxv): Update.
+ * avr-tdep.c (avr_scan_prologue): Update.
+ * ax-gdb.c (gen_var_ref): Update.
+ * breakpoint.c (struct breakpoint_objfile_data)
+ <overlay_msym, longjmp_msym, terminate_msym, exception_msym>: Change
+ type to bound_minimal_symbol.
+ (create_overlay_event_breakpoint)
+ (create_longjmp_master_breakpoint)
+ (create_std_terminate_master_breakpoint)
+ (create_exception_master_breakpoint): Update.
+ * bsd-uthread.c (bsd_uthread_lookup_address): Update.
+ * c-exp.y (classify_name): Update.
+ * coffread.c (coff_symfile_read): Update.
+ * common/agent.c (agent_look_up_symbols): Update.
+ * d-lang.c (d_main_name): Update.
+ * dbxread.c (find_stab_function_addr, end_psymtab): Update.
+ * dec-thread.c (enable_dec_thread): Update.
+ * dwarf2loc.c (call_site_to_target_addr): Update.
+ * elfread.c (elf_gnu_ifunc_resolve_by_got): Update.
+ * eval.c (evaluate_subexp_standard): Update.
+ * findvar.c (struct minsym_lookup_data) <result>: Change type
+ to bound_minimal_symbol.
+ <objfile>: Remove.
+ (minsym_lookup_iterator_cb, default_read_var_value): Update.
+ * frame.c (inside_main_func): Update.
+ * frv-tdep.c (frv_frame_this_id): Update.
+ * gcore.c (call_target_sbrk): Update.
+ * glibc-tdep.c (glibc_skip_solib_resolver): Update.
+ * gnu-v3-abi.c (gnuv3_get_typeid, gnuv3_skip_trampoline):
+ Update.
+ * go-lang.c (go_main_name): Update.
+ * hppa-hpux-tdep.c (hppa_hpux_skip_trampoline_code)
+ (hppa_hpux_find_import_stub_for_addr): Update.
+ * hppa-tdep.c (hppa_extract_17, hppa_lookup_stub_minimal_symbol):
+ Update. Change return type.
+ * hppa-tdep.h (hppa_lookup_stub_minimal_symbol): Change return
+ type.
+ * jit.c (jit_breakpoint_re_set_internal): Update.
+ * linux-fork.c (inferior_call_waitpid, checkpoint_command):
+ Update.
+ * linux-nat.c (get_signo): Update.
+ * linux-thread-db.c (inferior_has_bug): Update
+ * m32c-tdep.c (m32c_return_value)
+ (m32c_m16c_address_to_pointer): Update.
+ * m32r-tdep.c (m32r_frame_this_id): Update.
+ * m68hc11-tdep.c (m68hc11_get_register_info): Update.
+ * machoread.c (macho_resolve_oso_sym_with_minsym): Update.
+ * minsyms.c (lookup_minimal_symbol_internal): Rename to
+ lookup_minimal_symbol. Change return type.
+ (lookup_minimal_symbol): Remove.
+ (lookup_bound_minimal_symbol): Update.
+ (lookup_minimal_symbol_text): Change return type.
+ (lookup_minimal_symbol_solib_trampoline): Change return type.
+ * minsyms.h (lookup_minimal_symbol, lookup_minimal_symbol_text)
+ (lookup_minimal_symbol_solib_trampoline): Change return type.
+ * mips-linux-tdep.c (mips_linux_skip_resolver): Update.
+ * objc-lang.c (lookup_objc_class, lookup_child_selector)
+ (value_nsstring, find_imps): Update.
+ * obsd-tdep.c (obsd_skip_solib_resolver): Update.
+ * p-lang.c (pascal_main_name): Update.
+ * ppc-linux-tdep.c (ppc_linux_spe_context_lookup): Update.
+ * ppc-sysv-tdep.c (convert_code_addr_to_desc_addr): Update.
+ * proc-service.c (ps_pglobal_lookup): Update.
+ * ravenscar-thread.c (get_running_thread_msymbol): Change
+ return type.
+ (has_ravenscar_runtime, get_running_thread_id): Update.
+ * remote.c (remote_check_symbols): Update.
+ * sol-thread.c (ps_pglobal_lookup): Update.
+ * sol2-tdep.c (sol2_skip_solib_resolver): Update.
+ * solib-dsbt.c (lm_base): Update.
+ * solib-frv.c (lm_base, frv_relocate_section_addresses):
+ Update.
+ * solib-irix.c (locate_base): Update.
+ * solib-som.c (som_solib_create_inferior_hook)
+ (som_solib_desire_dynamic_linker_symbols, link_map_start):
+ Update.
+ * solib-spu.c (spu_enable_break): Update.
+ * solib-svr4.c (elf_locate_base, enable_break): Update.
+ * spu-tdep.c (spu_get_overlay_table, spu_catch_start)
+ (flush_ea_cache): Update.
+ * stabsread.c (define_symbol): Update.
+ * symfile.c (simple_read_overlay_table): Update.
+ * symtab.c (find_pc_sect_line): Update.
+ * tracepoint.c (scope_info): Update.
+ * tui-disasm.c (tui_get_begin_asm_address): Update.
+ * value.c (value_static_field): Update.
+
+2014-02-26 Tom Tromey <tromey@redhat.com>
+
+ * minsyms.c (prim_record_minimal_symbol_full): Use
+ SET_MSYMBOL_VALUE_ADDRESS.
+ * objfiles.c (objfile_relocate1): Use SET_MSYMBOL_VALUE_ADDRESS.
+ * sh64-tdep.c (sh64_elf_make_msymbol_special): Use
+ SET_MSYMBOL_VALUE_ADDRESS.
+ * symtab.h (MSYMBOL_VALUE_ADDRESS): Expand to an rvalue.
+ (SET_MSYMBOL_VALUE_ADDRESS): New macro.
+
+2014-02-26 Tom Tromey <tromey@redhat.com>
+
+ * symtab.h (struct minimal_symbol) <mginfo>: Rename from ginfo.
+ (MSYMBOL_VALUE, MSYMBOL_VALUE_ADDRESS, MSYMBOL_VALUE_BYTES)
+ (MSYMBOL_BLOCK_VALUE, MSYMBOL_VALUE_CHAIN, MSYMBOL_LANGUAGE)
+ (MSYMBOL_SECTION, MSYMBOL_OBJ_SECTION, MSYMBOL_NATURAL_NAME)
+ (MSYMBOL_LINKAGE_NAME, MSYMBOL_PRINT_NAME, MSYMBOL_DEMANGLED_NAME)
+ (MSYMBOL_SET_LANGUAGE, MSYMBOL_SEARCH_NAME)
+ (MSYMBOL_MATCHES_SEARCH_NAME, MSYMBOL_SET_NAMES): New macros.
+ * ada-lang.c (ada_main_name): Update.
+ (ada_lookup_simple_minsym): Update.
+ (ada_make_symbol_completion_list): Update.
+ (ada_add_standard_exceptions): Update.
+ * ada-tasks.c (read_atcb, ada_tasks_inferior_data_sniffer): Update.
+ * aix-thread.c (pdc_symbol_addrs, pd_enable): Update.
+ * amd64-windows-tdep.c (amd64_skip_main_prologue): Update.
+ * arm-tdep.c (skip_prologue_function): Update.
+ (arm_skip_stack_protector, arm_skip_stub): Update.
+ * arm-wince-tdep.c (arm_pe_skip_trampoline_code): Update.
+ (arm_wince_skip_main_prologue): Update.
+ * auxv.c (ld_so_xfer_auxv): Update.
+ * avr-tdep.c (avr_scan_prologue): Update.
+ * ax-gdb.c (gen_var_ref): Update.
+ * block.c (call_site_for_pc): Update.
+ * blockframe.c (get_pc_function_start): Update.
+ (find_pc_partial_function_gnu_ifunc): Update.
+ * breakpoint.c (create_overlay_event_breakpoint): Update.
+ (create_longjmp_master_breakpoint): Update.
+ (create_std_terminate_master_breakpoint): Update.
+ (create_exception_master_breakpoint): Update.
+ (resolve_sal_pc): Update.
+ * bsd-uthread.c (bsd_uthread_lookup_address): Update.
+ * btrace.c (ftrace_print_function_name, ftrace_function_switched):
+ Update.
+ * c-valprint.c (c_val_print): Update.
+ * coff-pe-read.c (add_pe_forwarded_sym): Update.
+ * coffread.c (coff_symfile_read): Update.
+ * common/agent.c (agent_look_up_symbols): Update.
+ * dbxread.c (find_stab_function_addr): Update.
+ (end_psymtab): Update.
+ * dwarf2loc.c (call_site_to_target_addr): Update.
+ (func_verify_no_selftailcall): Update.
+ (tailcall_dump): Update.
+ (call_site_find_chain_1): Update.
+ (dwarf_expr_reg_to_entry_parameter): Update.
+ * elfread.c (elf_gnu_ifunc_record_cache): Update.
+ (elf_gnu_ifunc_resolve_by_got): Update.
+ * f-valprint.c (info_common_command): Update.
+ * findvar.c (read_var_value): Update.
+ * frame.c (get_prev_frame_1): Update.
+ (inside_main_func): Update.
+ * frv-tdep.c (frv_skip_main_prologue): Update.
+ (frv_frame_this_id): Update.
+ * glibc-tdep.c (glibc_skip_solib_resolver): Update.
+ * gnu-v2-abi.c (gnuv2_value_rtti_type): Update.
+ * gnu-v3-abi.c (gnuv3_rtti_type): Update.
+ (gnuv3_skip_trampoline): Update.
+ * hppa-hpux-tdep.c (hppa32_hpux_in_solib_call_trampoline): Update.
+ (hppa64_hpux_in_solib_call_trampoline): Update.
+ (hppa_hpux_skip_trampoline_code): Update.
+ (hppa64_hpux_search_dummy_call_sequence): Update.
+ (hppa_hpux_find_import_stub_for_addr): Update.
+ (hppa_hpux_find_dummy_bpaddr): Update.
+ * hppa-tdep.c (hppa_symbol_address)
+ (hppa_lookup_stub_minimal_symbol): Update.
+ * i386-tdep.c (i386_skip_main_prologue): Update.
+ (i386_pe_skip_trampoline_code): Update.
+ * ia64-tdep.c (ia64_convert_from_func_ptr_addr): Update.
+ * infcall.c (get_function_name): Update.
+ * infcmd.c (until_next_command): Update.
+ * jit.c (jit_breakpoint_re_set_internal): Update.
+ (jit_inferior_init): Update.
+ * linespec.c (minsym_found): Update.
+ (add_minsym): Update.
+ * linux-fork.c (info_checkpoints_command): Update.
+ * linux-nat.c (get_signo): Update.
+ * linux-thread-db.c (inferior_has_bug): Update.
+ * m32c-tdep.c (m32c_return_value): Update.
+ (m32c_m16c_address_to_pointer): Update.
+ (m32c_m16c_pointer_to_address): Update.
+ * m32r-tdep.c (m32r_frame_this_id): Update.
+ * m68hc11-tdep.c (m68hc11_get_register_info): Update.
+ * machoread.c (macho_resolve_oso_sym_with_minsym): Update.
+ * maint.c (maintenance_translate_address): Update.
+ * minsyms.c (add_minsym_to_hash_table): Update.
+ (add_minsym_to_demangled_hash_table): Update.
+ (msymbol_objfile): Update.
+ (lookup_minimal_symbol): Update.
+ (iterate_over_minimal_symbols): Update.
+ (lookup_minimal_symbol_text): Update.
+ (lookup_minimal_symbol_by_pc_name): Update.
+ (lookup_minimal_symbol_solib_trampoline): Update.
+ (lookup_minimal_symbol_by_pc_section_1): Update.
+ (lookup_minimal_symbol_and_objfile): Update.
+ (prim_record_minimal_symbol_full): Update.
+ (compare_minimal_symbols): Update.
+ (compact_minimal_symbols): Update.
+ (build_minimal_symbol_hash_tables): Update.
+ (install_minimal_symbols): Update.
+ (terminate_minimal_symbol_table): Update.
+ (find_solib_trampoline_target): Update.
+ (minimal_symbol_upper_bound): Update.
+ * mips-linux-tdep.c (mips_linux_skip_resolver): Update.
+ * mips-tdep.c (mips_stub_frame_sniffer): Update.
+ (mips_skip_pic_trampoline_code): Update.
+ * msp430-tdep.c (msp430_skip_trampoline_code): Update.
+ * objc-lang.c (selectors_info): Update.
+ (classes_info): Update.
+ (find_methods): Update.
+ (find_imps): Update.
+ (find_objc_msgsend): Update.
+ * objfiles.c (objfile_relocate1): Update.
+ * objfiles.h (ALL_OBJFILE_MSYMBOLS): Update.
+ * obsd-tdep.c (obsd_skip_solib_resolver): Update.
+ * p-valprint.c (pascal_val_print): Update.
+ * parse.c (write_exp_msymbol): Update.
+ * ppc-linux-tdep.c (powerpc_linux_in_dynsym_resolve_code)
+ (ppc_linux_spe_context_lookup, ppc_elfv2_skip_entrypoint): Update.
+ * ppc-sysv-tdep.c (convert_code_addr_to_desc_addr): Update.
+ * printcmd.c (build_address_symbolic): Update.
+ (sym_info): Update.
+ (address_info): Update.
+ * proc-service.c (ps_pglobal_lookup): Update.
+ * psymtab.c (find_pc_sect_psymtab_closer): Update.
+ (find_pc_sect_psymtab): Update.
+ * python/py-framefilter.c (py_print_frame): Update.
+ * ravenscar-thread.c (get_running_thread_id): Update.
+ * record-btrace.c (btrace_call_history, btrace_get_bfun_name):
+ Update.
+ * remote.c (remote_check_symbols): Update.
+ * rs6000-tdep.c (rs6000_skip_main_prologue): Update.
+ (rs6000_skip_trampoline_code): Update.
+ * sh64-tdep.c (sh64_elf_make_msymbol_special): Update.
+ * sol2-tdep.c (sol2_skip_solib_resolver): Update.
+ * solib-dsbt.c (lm_base): Update.
+ * solib-frv.c (lm_base): Update.
+ (main_got): Update.
+ * solib-irix.c (locate_base): Update.
+ * solib-som.c (som_solib_create_inferior_hook): Update.
+ (som_solib_desire_dynamic_linker_symbols): Update.
+ (link_map_start): Update.
+ * solib-spu.c (spu_enable_break): Update.
+ (ocl_enable_break): Update.
+ * solib-svr4.c (elf_locate_base): Update.
+ (enable_break): Update.
+ * spu-tdep.c (spu_get_overlay_table): Update.
+ (spu_catch_start): Update.
+ (flush_ea_cache): Update.
+ * stabsread.c (define_symbol): Update.
+ (scan_file_globals): Update.
+ * stack.c (find_frame_funname): Update.
+ (frame_info): Update.
+ * symfile.c (simple_read_overlay_table): Update.
+ (simple_overlay_update): Update.
+ * symmisc.c (dump_msymbols): Update.
+ * symtab.c (fixup_section): Update.
+ (find_pc_sect_line): Update.
+ (skip_prologue_sal): Update.
+ (search_symbols): Update.
+ (print_msymbol_info): Update.
+ (rbreak_command): Update.
+ (MCOMPLETION_LIST_ADD_SYMBOL): New macro.
+ (completion_list_objc_symbol): Update.
+ (default_make_symbol_completion_list_break_on): Update.
+ * tracepoint.c (scope_info): Update.
+ * tui/tui-disasm.c (tui_find_disassembly_address): Update.
+ (tui_get_begin_asm_address): Update.
+ * valops.c (find_function_in_inferior): Update.
+ * value.c (value_static_field): Update.
+ (value_fn_field): Update.
+
+2014-02-26 Tom Tromey <tromey@redhat.com>
+
+ * blockframe.c (find_pc_partial_function_gnu_ifunc): Use
+ bound minimal symbols. Move code that knows about minsym
+ table layout...
+ * minsyms.c (minimal_symbol_upper_bound): ... here. New
+ function.
+ * minsyms.h (minimal_symbol_upper_bound): Declare.
+ * objc-lang.c (find_objc_msgsend): Use bound minimal symbols,
+ minimal_symbol_upper_bound.
+
+2014-02-27 Joel Brobecker <brobecker@adacore.com>
+
+ * python/lib/gdb/printing.py (RegexpCollectionPrettyPrinter):
+ Use the type's name if its basic type does not have a tag.
+
+2014-02-27 Joel Brobecker <brobecker@adacore.com>
+
+ * dwarf2read.c (read_subrange_type): Add comment.
hooks/post-receive
--
Repository for Project Archer.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [SCM] jankratochvil/gdbserverbuildid: Merge branch 'common-mergehex-empty-moveprep-move-attrgen-validate' into common-mergehex-empty-moveprep-move-attrgen-validate-tests
@ 2014-02-26 19:52 jkratoch
0 siblings, 0 replies; 7+ messages in thread
From: jkratoch @ 2014-02-26 19:52 UTC (permalink / raw)
To: archer-commits
The branch, jankratochvil/gdbserverbuildid has been updated
via 0259f689506db944e549c97cebc016e0e71fc3e6 (commit)
via 31a0d199eb496434c25aa454ce1ec4e369a8c450 (commit)
via b88933a4a754a1067ada836905287d99727338bd (commit)
via 91c1ec8625f8f42c1c44601ca7b128ded76209fa (commit)
via 81243e04b6ea3d518ababc36311f0046add0ac92 (commit)
via 8a6d3810889b0c4042d4585f3896dff43d981bef (commit)
via 567261a58a564a1cc279128b3883515739d87ee9 (commit)
via 5b0224d092908433148b99de689dfe8bea74e21e (commit)
from d151b54dd8143930a2b0a7da219e4ac337563d78 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit 0259f689506db944e549c97cebc016e0e71fc3e6
Merge: d151b54 31a0d19
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 20:52:35 2014 +0100
Merge branch 'common-mergehex-empty-moveprep-move-attrgen-validate' into common-mergehex-empty-moveprep-move-attrgen-validate-tests
commit 31a0d199eb496434c25aa454ce1ec4e369a8c450
Merge: 9c2bdf7 b88933a
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 20:52:35 2014 +0100
Merge branch 'common-mergehex-empty-moveprep-move-attrgen' into common-mergehex-empty-moveprep-move-attrgen-validate
commit b88933a4a754a1067ada836905287d99727338bd
Merge: 999c3f4 91c1ec8
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 20:52:34 2014 +0100
Merge branch 'common-mergehex-empty-moveprep-move' into common-mergehex-empty-moveprep-move-attrgen
commit 91c1ec8625f8f42c1c44601ca7b128ded76209fa
Merge: e41b043 81243e0
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 20:52:34 2014 +0100
Merge branch 'common-mergehex-empty-moveprep' into common-mergehex-empty-moveprep-move
commit 81243e04b6ea3d518ababc36311f0046add0ac92
Merge: ebc59ea 8a6d381
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 20:52:34 2014 +0100
Merge branch 'common-mergehex-empty' into common-mergehex-empty-moveprep
commit 8a6d3810889b0c4042d4585f3896dff43d981bef
Merge: 56ef5fd 567261a
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 20:52:33 2014 +0100
Merge branch 'common-mergehex' into common-mergehex-empty
commit 567261a58a564a1cc279128b3883515739d87ee9
Merge: 595ac33 5b0224d
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 20:52:33 2014 +0100
Merge branch 'common' into common-mergehex
commit 5b0224d092908433148b99de689dfe8bea74e21e
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Wed Feb 26 20:52:28 2014 +0100
.
-----------------------------------------------------------------------
Summary of changes:
README.archer | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
create mode 100644 README.archer
First 500 lines of diff:
diff --git a/README.archer b/README.archer
new file mode 100644
index 0000000..ba65e1d
--- /dev/null
+++ b/README.archer
@@ -0,0 +1,4 @@
+[PATCH 0/8] v2 - validate binary before use
+Aleksandar Ristovski
+Message-ID: <1366127096-5744-1-git-send-email-ARistovski@qnx.com>
+https://sourceware.org/ml/gdb-patches/2013-04/msg00472.html
hooks/post-receive
--
Repository for Project Archer.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [SCM] jankratochvil/gdbserverbuildid: Merge branch 'common-mergehex-empty-moveprep-move-attrgen-validate' into common-mergehex-empty-moveprep-move-attrgen-validate-tests
@ 2014-02-26 19:50 jkratoch
0 siblings, 0 replies; 7+ messages in thread
From: jkratoch @ 2014-02-26 19:50 UTC (permalink / raw)
To: archer-commits
The branch, jankratochvil/gdbserverbuildid has been updated
via d151b54dd8143930a2b0a7da219e4ac337563d78 (commit)
via 9c2bdf7b7069db180779aad4659e21e6e1c41abf (commit)
via 999c3f45319a3d8156362e3341aa6c8584499a33 (commit)
via fc6c556b6a7087e87b41479875d6683d2420215a (commit)
via e41b043839e6720fba05a19131ecdc1d793372e5 (commit)
via 80328be5757d7313cda73fc0c86e0711679449c2 (commit)
from ea11f1f08abbb9a19140ab33174803f224f25a78 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email.
- Log -----------------------------------------------------------------
commit d151b54dd8143930a2b0a7da219e4ac337563d78
Merge: ea11f1f 9c2bdf7
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Tue Feb 25 22:25:01 2014 +0100
Merge branch 'common-mergehex-empty-moveprep-move-attrgen-validate' into common-mergehex-empty-moveprep-move-attrgen-validate-tests
commit 9c2bdf7b7069db180779aad4659e21e6e1c41abf
Merge: bc529e5 999c3f4
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Tue Feb 25 22:25:00 2014 +0100
Merge branch 'common-mergehex-empty-moveprep-move-attrgen' into common-mergehex-empty-moveprep-move-attrgen-validate
commit 999c3f45319a3d8156362e3341aa6c8584499a33
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Tue Feb 25 22:24:54 2014 +0100
.
commit fc6c556b6a7087e87b41479875d6683d2420215a
Merge: 9c77c90 e41b043
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Tue Feb 25 22:15:10 2014 +0100
Merge branch 'common-mergehex-empty-moveprep-move' into common-mergehex-empty-moveprep-move-attrgen
commit e41b043839e6720fba05a19131ecdc1d793372e5
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Tue Feb 25 22:14:37 2014 +0100
.
commit 80328be5757d7313cda73fc0c86e0711679449c2
Author: Jan Kratochvil <jan.kratochvil@redhat.com>
Date: Tue Feb 25 22:14:03 2014 +0100
.
-----------------------------------------------------------------------
Summary of changes:
gdb/gdbserver/linux-low.c | 38 +++++++++++++++++++-------------------
gdb/target.c | 6 ------
2 files changed, 19 insertions(+), 25 deletions(-)
First 500 lines of diff:
diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
index 69580db..a9829dc 100644
--- a/gdb/gdbserver/linux-low.c
+++ b/gdb/gdbserver/linux-low.c
@@ -163,10 +163,7 @@ typedef union ElfXX_Nhdr
#define ELFXX_SIZEOF(elf64, hdr) ((elf64) ? sizeof ((hdr)._64) \
: sizeof ((hdr)._32))
/* Round up to next 4 byte boundary. */
-#define ELFXX_ROUNDUP_4(elf64, what) ((elf64) ? (((what) + 3) \
- & ~((Elf64_Word)3U)) \
- : (((what) + 3) \
- & ~((Elf32_Word) 3U)))
+#define ELFXX_ROUNDUP_4(elf64, what) (((what) + 3) & ~(ULONGEST) 3)
#define BUILD_ID_INVALID "?"
/* A list of all unknown processes which receive stop signals. Some
@@ -5352,8 +5349,8 @@ get_phdr_phnum_from_proc_auxv (const int pid, const int is_elf64,
if (*phdr_memaddr == 0 || *num_phdr == 0)
{
- warning ("Unexpected missing AT_PHDR and/or AT_PHNUM: "
- "phdr_memaddr = %ld, phdr_num = %d",
+ warning (_("Unexpected missing AT_PHDR and/or AT_PHNUM: "
+ "phdr_memaddr = %ld, phdr_num = %d"),
(long) *phdr_memaddr, *num_phdr);
return 2;
}
@@ -5612,7 +5609,7 @@ free_mapping_entry_vec (VEC (mapping_entry_s) *lst)
static int
compare_mapping_entry_range (const void *const k, const void *const b)
{
- const ULONGEST key = *(CORE_ADDR *) k;
+ const ULONGEST key = *(const CORE_ADDR *) k;
const mapping_entry_s *const p = b;
if (key < p->vaddr)
@@ -5660,7 +5657,8 @@ read_build_id (struct find_memory_region_callback_data *const p,
|| e_phentsize != ELFXX_SIZEOF (is_elf64, *phdr))
{
/* Basic sanity check failed. */
- warning ("Could not read program header.");
+ warning (_("Could not identify program header at %s."),
+ paddress (load_addr));
return;
}
@@ -5671,7 +5669,8 @@ read_build_id (struct find_memory_region_callback_data *const p,
ELFXX_FLD (is_elf64, ehdr, e_phnum) * e_phentsize)
!= 0)
{
- warning ("Could not read program header.");
+ warning (_("Could not read program header at %s."),
+ paddress (load_addr));
return;
}
@@ -5695,14 +5694,14 @@ read_build_id (struct find_memory_region_callback_data *const p,
ELFXX_FLD (is_elf64, *phdr, p_memsz)) != 0)
{
xfree (pt_note);
- warning ("Could not read note at address 0x%s",
+ warning (_("Could not read note at address 0x%s"),
paddress (note_addr));
break;
}
pt_end = pt_note + ELFXX_FLD (is_elf64, *phdr, p_memsz);
nhdr = (void *) pt_note;
- while ((gdb_byte *) nhdr < pt_end)
+ while ((const gdb_byte *) nhdr < pt_end)
{
const size_t namesz
= ELFXX_ROUNDUP_4 (is_elf64, ELFXX_FLD (is_elf64, *nhdr,
@@ -5710,14 +5709,14 @@ read_build_id (struct find_memory_region_callback_data *const p,
const size_t descsz
= ELFXX_ROUNDUP_4 (is_elf64, ELFXX_FLD (is_elf64, *nhdr,
n_descsz));
- const size_t note_sz = ELFXX_SIZEOF (is_elf64, *nhdr) + namesz
- + descsz;
+ const size_t note_sz = (ELFXX_SIZEOF (is_elf64, *nhdr) + namesz
+ + descsz);
- if (((gdb_byte *) nhdr + note_sz) > pt_end || note_sz == 0
+ if (((const gdb_byte *) nhdr + note_sz) > pt_end || note_sz == 0
|| descsz == 0)
{
- warning ("Malformed PT_NOTE at address 0x%s\n",
- paddress ((CORE_ADDR) nhdr));
+ warning (_("Malformed PT_NOTE at address 0x%s\n"),
+ paddress (note_addr + (gdb_byte *) nhdr - pt_note));
break;
}
if (ELFXX_FLD (is_elf64, *nhdr, n_type) == NT_GNU_BUILD_ID
@@ -5829,9 +5828,10 @@ get_hex_build_id (const CORE_ADDR l_addr, const CORE_ADDR l_ld,
{
/* Do not try to find hex_build_id again. */
bil->hex_build_id = xstrdup (BUILD_ID_INVALID);
- warning ("Could not determine load address; mapping entry with"
- " offset 0 corresponding to l_ld=0x%s could not be found; "
- "build-id can not be used.", paddress (l_ld));
+ warning (_("Could not determine load address; mapping entry with "
+ "offset 0 corresponding to l_ld = 0x%s could not be "
+ "found; build-id can not be used."),
+ paddress (l_ld));
}
}
diff --git a/gdb/target.c b/gdb/target.c
index 8c6d6cc..1a66a76 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -3107,9 +3107,6 @@ target_fileio_close_cleanup (void *opaque)
target_fileio_close (fd, &target_errno);
}
-typedef int (read_alloc_pread_ftype) (int handle, gdb_byte *read_buf, int len,
- ULONGEST offset, int *target_errno);
-
static read_alloc_pread_ftype target_fileio_read_alloc_1_pread;
/* Helper for target_fileio_read_alloc_1 to make it interruptible. */
@@ -3123,9 +3120,6 @@ target_fileio_read_alloc_1_pread (int handle, gdb_byte *read_buf, int len,
return target_fileio_pread (handle, read_buf, len, offset, target_errno);
}
-typedef LONGEST (read_stralloc_func_ftype) (const char *filename,
- gdb_byte **buf_p, int padding);
-
static read_stralloc_func_ftype target_fileio_read_alloc_1;
/* Read target file FILENAME. Store the result in *BUF_P and
hooks/post-receive
--
Repository for Project Archer.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2014-02-27 20:19 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-26 21:39 [SCM] jankratochvil/gdbserverbuildid: Merge branch 'common-mergehex-empty-moveprep-move-attrgen-validate' into common-mergehex-empty-moveprep-move-attrgen-validate-tests jkratoch
-- strict thread matches above, loose matches on Subject: below --
2014-02-27 20:19 jkratoch
2014-02-27 17:52 jkratoch
2014-02-26 21:19 jkratoch
2014-02-26 20:13 jkratoch
2014-02-26 19:52 jkratoch
2014-02-26 19:50 jkratoch
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).