binutils-gdb.git
9 years agoint -> enum target_hw_bp_type in aarch64-linux-nat.c
Yao Qi [Fri, 17 Jul 2015 13:32:40 +0000 (14:32 +0100)]
int -> enum target_hw_bp_type in aarch64-linux-nat.c

This patch is to use 'enum target_hw_bp_type' instead of int for
breakpoint type, in order to make some functions in GDB and
GDBserver looks similar.

gdb:

2015-07-17  Yao Qi  <yao.qi@linaro.org>

* aarch64-linux-nat.c (aarch64_dr_state_insert_one_point): Change
argument type's type to 'enum target_hw_bp_type'.
(aarch64_dr_state_remove_one_point): Likewise.
(aarch64_handle_breakpoint): Likewise.
(aarch64_linux_insert_hw_breakpoint): Likewise.
(aarch64_linux_remove_hw_breakpoint): Likewise.
(aarch64_handle_aligned_watchpoint): Likewise.

9 years agoCall ptid_get_pid instead of get_thread_id in aarch64_linux_get_debug_reg_capacity
Yao Qi [Fri, 17 Jul 2015 13:06:34 +0000 (14:06 +0100)]
Call ptid_get_pid instead of get_thread_id in aarch64_linux_get_debug_reg_capacity

aarch64_linux_get_debug_reg_capacity is called by
aarch64_linux_child_post_startup_inferior, and argument ptid is created in
inf-ptrace.c:inf_ptrace_create_inferior,

  /* On some targets, there must be some explicit actions taken after
     the inferior has been started up.  */
  target_post_startup_inferior (pid_to_ptid (pid));

so in aarch64_linux_get_debug_reg_capacity, we can get pid by ptid_get_pid,
and don't need to use get_thread_id.

gdb:

2015-07-17  Yao Qi  <yao.qi@linaro.org>

* aarch64-linux-nat.c (aarch64_linux_get_debug_reg_capacity): Call
ptid_get_pid instead of get_thread_id.

9 years ago[AArch64] Sort TLS reloc types alphabetically
Jiong Wang [Fri, 17 Jul 2015 12:03:26 +0000 (13:03 +0100)]
[AArch64] Sort TLS reloc types alphabetically

9 years agoFix using uninitialised values
Yao Qi [Fri, 17 Jul 2015 11:14:59 +0000 (12:14 +0100)]
Fix using uninitialised values

We did a code refacotr here
https://sourceware.org/ml/gdb-patches/2013-11/msg00063.html

> (get_current_thread): New function, factored out from ...
> (add_current_inferior_and_thread): ... this.  Adjust.
>
>@@ -3332,18 +3371,8 @@ add_current_inferior_and_thread (char *wait_status)
>
>   inferior_ptid = null_ptid;
>
>-  /* Now, if we have thread information, update inferior_ptid.  First
>-     if we have a stop reply handy, maybe it's a T stop reply with a
>-     "thread" register we can extract the current thread from.  If
>-     not, ask the remote which is the current thread, with qC.  The
>-     former method avoids a roundtrip.  Note we don't use
>-     remote_parse_stop_reply as that makes use of the target
>-     architecture, which we haven't yet fully determined at this
>-     point.  */
>-  if (wait_status != NULL)
>-    ptid = stop_reply_extract_thread (wait_status);
>-  if (ptid_equal (ptid, null_ptid))
>-    ptid = remote_current_thread (inferior_ptid);
>+  /* Now, if we have thread information, update inferior_ptid.  */
>+  ptid = get_current_thread (wait_status);

but after the refactor, local variable ptid is used without
initialisation.  However, before this change, ptid is initialised to
null_ptid.  This error can be found by valgrind too...

==3298==    at 0x6B99BA: ptid_equal (ptid.c:80)
==3298==    by 0x4C67FF: get_current_thread (remote.c:3484)
==3298==    by 0x4C6951: add_current_inferior_and_thread (remote.c:3511)
==3298==    by 0x4C762C: extended_remote_create_inferior (remote.c:8506)
==3298==    by 0x5A5312: run_command_1 (infcmd.c:606)
==3298==    by 0x68B4FB: execute_command (top.c:463)
==3298==    by 0x5C7214: command_handler (event-top.c:494)
==3298==    by 0x5C78A3: command_line_handler (event-top.c:692)
==3298==    by 0x6DEB57: rl_callback_read_char (callback.c:220)
==3298==    by 0x5C7278: rl_callback_read_char_wrapper (event-top.c:171)
==3298==    by 0x5C72C2: stdin_event_handler (event-top.c:432)
==3298==    by 0x5C6194: gdb_wait_for_event (event-loop.c:834)

This patch initialises local variable ptid to null in get_current_thread.
We don't need to initialise ptid in add_current_inferior_and_thread,
so this patch also removes the ptid initialisation.

gdb:

2015-07-17  Yao Qi  <yao.qi@linaro.org>

* remote.c (get_current_thread): Initialise ptid to null_ptid.
(add_current_inferior_and_thread): Don't initialise ptid.

9 years agoAutomatic date update in version.in
GDB Administrator [Fri, 17 Jul 2015 00:00:08 +0000 (00:00 +0000)]
Automatic date update in version.in

9 years agostabs.texinfo: @include gdb-cfg.texi.
Doug Evans [Thu, 16 Jul 2015 16:48:03 +0000 (09:48 -0700)]
stabs.texinfo: @include gdb-cfg.texi.

gdb/doc/ChangeLog:

* stabs.texinfo: @include gdb-cfg.texi.

9 years agoFix gdb.arch/i386-biarch-core.exp FAIL on i386.
Jan Kratochvil [Thu, 16 Jul 2015 16:01:22 +0000 (18:01 +0200)]
Fix gdb.arch/i386-biarch-core.exp FAIL on i386.

This new test fails on i686 buildbot slaves,

(gdb) core-file /home/gdb-buildbot-2/fedora-x86-64-2/fedora-i686/build/gdb/testsuite/gdb.arch/i386-biarch-core.core
"/home/gdb-buildbot-2/fedora-x86-64-2/fedora-i686/build/gdb/testsuite/gdb.arch/i386-biarch-core.core"
is not a core dump: File format not recognized
(gdb) FAIL: gdb.arch/i386-biarch-core.exp: core-file

There are two problems:

(1) The testcase did not really test if elf64-i386 is supported by GDB (BFD).
That was OK for a Fedora testcase but I forgot about it when submitting it
upstream.

I haven't really verified if the GNU target is elf64-little but it seems so,
no other one seems suitable from:
elf32-x86-64
elf64-big
elf64-k1om
elf64-l1om
elf64-little
elf64-x86-64
pei-x86-64

(2) The output of the "core-file" command itself can be arbitrary as the
elf64-i386 file with x86_64 registers is really broken; but that does not
matter much, important is the following test whether core file memory is
readable.
./configure --enable-64-bit-bfd
(gdb) core-file /home/jkratoch/redhat/gdb-test-build32-plus64/gdb/testsuite/gdb.arch/i386-biarch-core.core^M
warning: Couldn't find general-purpose registers in core file.^M
Failed to read a valid object file image from memory.^M
warning: Couldn't find general-purpose registers in core file.^M
#0  <unavailable> in ?? ()^M
(gdb) FAIL: gdb.arch/i386-biarch-core.exp: core-file
x/i 0x400078^M
   0x400078:    hlt    ^M
(gdb) PASS: gdb.arch/i386-biarch-core.exp: .text is readable

I do not know much dejagnu but I expect 'istarget' tests against the site.exp
'target_triplet' content which is set to the primary GDB target
(--target=...).

GDB is normally never configured for primary target elf64-i386, I think BFD
does not know such explicit target, it gets recognized as elf64-little.

In fact many testfiles of the GDB testsuite are wrong as they require
'istarget' (therefore primary GDB target) even for just loading arch specific
files which would be sufficient with secondary target (--enable-targets=...)
support.

This my new patch removes this 'istarget' check as it is IMO unrelated to what
we need to test.  Although you are right we do 'x/i' and test for 'hlt' so
I think we should test also for available 'set architecture i386'.
We could also test by 'x/bx' instead of 'x/i' to avoid such additional
test/requirement.

This testcase comes from a different bug from 2009:
https://bugzilla.redhat.com/show_bug.cgi?id=457187
http://pkgs.fedoraproject.org/cgit/gdb.git/commit/?id=94cd124608bf0dd359cb48a710800d72c21b30c3

That bug has been fixed in the meantime but the same testcase was reproducing
this new different bug - internal error regression - so I submitted it.

We can remove the "x/bx $address" test but it was useful for the previous bug
from 2009 as that time the internal error regression did not happen, just the
core file was not recognized (which would not be detected by the proposed
ignoring of the "core-file" command output) and so the core file was not
available.  That can be tested by the "x/bx $address" test.

gdb/testsuite/ChangeLog
2015-07-16  Jan Kratochvil  <jan.kratochvil@redhat.com>

* gdb.arch/i386-biarch-core.exp: Replace istarget
by "complete set gnutarget". Remove expectation for the "core-file"
command.

9 years agoUpdates the ARM disassembler's output of floating point constants to include the...
Alessandro Marzocchi [Thu, 16 Jul 2015 15:38:48 +0000 (16:38 +0100)]
Updates the ARM disassembler's output of floating point constants to include the actual floating point value.

opcodes * arm-dis.c (print_insn_coprocessor): Added support for quarter
float bitfield format.
(coprocessor_opcodes): Changed VFP vmov reg,immediate to use new
quarter float bitfield format.

tests * gas/arm/vfpv3-const-conv.d: Update expected result due to change
of comment for vmov reg,immediate with VFP coprocessor.

9 years agoCorrect readelf dynamic section buffer overlow test
Alan Modra [Thu, 16 Jul 2015 14:43:22 +0000 (00:13 +0930)]
Correct readelf dynamic section buffer overlow test

PR binutils/18672
* readelf.c (get_32bit_dynamic_section): Correct buffer limit test.
(get_64bit_dynamic_section): Likewise.

9 years ago[AArch64][3/3] LD support BFD_RELOC_AARCH64_TLSLD_ADR_PREL21
Jiong Wang [Thu, 16 Jul 2015 14:46:21 +0000 (15:46 +0100)]
[AArch64][3/3] LD support BFD_RELOC_AARCH64_TLSLD_ADR_PREL21

9 years ago[AArch64][2/3] GAS support BFD_RELOC_AARCH64_TLSLD_ADR_PREL21
Jiong Wang [Thu, 16 Jul 2015 14:43:21 +0000 (15:43 +0100)]
[AArch64][2/3] GAS support BFD_RELOC_AARCH64_TLSLD_ADR_PREL21

9 years ago[AArch64][1/3] Add R_AARCH64_P32_TLSLD_ADR_PREL21 in elf header
Jiong Wang [Thu, 16 Jul 2015 14:38:32 +0000 (15:38 +0100)]
[AArch64][1/3] Add R_AARCH64_P32_TLSLD_ADR_PREL21 in elf header

9 years ago[ARM] Add crypto-neon-fp-armv8.1 as an fpu option
Matthew Wahab [Thu, 16 Jul 2015 14:11:30 +0000 (15:11 +0100)]
[ARM] Add crypto-neon-fp-armv8.1 as an fpu option

2015-07-16  Matthew Wahab  <matthew.wahab@arm.com>

gas/
  * config/tc-arm.c (arm_fpus): Add crypto-neon-fp-armv8.1.
  * doc/c-arm.texi (-mfpu=): Likewise.  Correct the entry for
  neon-fp-armv8.1.

9 years ago[ARM] Make human parsing of "processor does not support instruction in mode" error...
James Greenhalgh [Thu, 16 Jul 2015 13:43:00 +0000 (14:43 +0100)]
[ARM] Make human parsing of "processor does not support instruction in mode" error messages easier

2015-07-16  James Greenhalgh  <james.greenhalgh@arm.com>

      gas/
* config/tc-arm.c (md_assemble): Rephrase the "selected processor does
not support ARM mode" error messages.

      gas/testsuite/
* gas/arm/arch7em-bad.l: Update expected errors.
* gas/arm/arch7m-bad.l: Likewise.
* gas/arm/arm-idiv-bad.l: Likewise.
* gas/arm/arm7-bad.l: Likewise.
* gas/arm/armv1-bad.l: Likewise.
* gas/arm/thumb-w-bad.l: Likewise.

9 years ago[AArch64] Mark single precision pseudo registers unavailable if invalid
Pierre Langlois [Thu, 16 Jul 2015 09:16:14 +0000 (10:16 +0100)]
[AArch64] Mark single precision pseudo registers unavailable if invalid

I noticed two failure in gdb.trace/mi-trace-frame-collected.exp:

FAIL: gdb.trace/mi-trace-frame-collected.exp: live:
  -trace-frame-collected (register)
FAIL: gdb.trace/mi-trace-frame-collected.exp: tfile:
  -trace-frame-collected (register)

In these cases, we are not collecting registers so the MI command
-trace-frame-collected should only give us the value of the PC.
However, it also gives us all of the single precision pseudo registers,
initialized with 0x0.

We can reproduce this error by simply issuing the
'maint print cooked-register' when no inferior is connected:

~~~
...
(gdb) maint print cooked-register
 Name         Nr  Rel Offset    Size  Type            Cooked value
 x0            0    0      0       8 long            <unavailable>
 x1            1    1      8       8 long            <unavailable>
 ...
 d30         130   62   1540       8 *1              <unavailable>
 d31         131   63   1548       8 *1              <unavailable>
 s0          132   64   1556       4 *1              0x00000000
 s1          133   65   1560       4 *1              0x00000000
 s2          134   66   1564       4 *1              0x00000000
 ...
 s28         160   92   1668       4 *1              0x00000000
 s29         161   93   1672       4 *1              0x00000000
 s30         162   94   1676       4 *1              0x00000000
 s31         163   95   1680       4 *1              0x00000000
 h0          164   96   1684       2 *1              <unavailable>
 h1          165   97   1686       2 *1              <unavailable>
 h2          166   98   1688       2 *1              <unavailable>
 ...
~~~

It turns out GDB does not check if S registers are valid before returning
a value for them.  It should return <unavailable> in this case.

gdb/ChangeLog:

* aarch64-tdep.c (aarch64_pseudo_read_value): Mark S register as
unavailable if invalid.

9 years agoAutomatic date update in version.in
GDB Administrator [Thu, 16 Jul 2015 00:00:07 +0000 (00:00 +0000)]
Automatic date update in version.in

9 years agoRevert the previous 7 commits of: Validate binary before use
Jan Kratochvil [Wed, 15 Jul 2015 18:27:32 +0000 (20:27 +0200)]
Revert the previous 7 commits of: Validate binary before use

ddc98fbf2fd9e244a215a4d09e559180dc573a14 Create empty nat/linux-maps.[ch] and common/target-utils.[ch]
6e5b4429db0d66e2d0b27e1bcfe4709f3dae73ed Move gdb_regex* to common/
f7af1fcd759fa126612018a5916cf808df7bb8bc Prepare linux_find_memory_regions_full & co. for move
9904185cfde13d6c6849f1f042c8e3b74974cf08 Move linux_find_memory_regions_full & co.
700ca40f6fc1addd7238f4ab57f76c095ad3c99f gdbserver build-id attribute generator
ca5268b6be265580b91ef75c1a1a9815f581ae42 Validate symbol file using build-id
0a94970d663a053c523f23ac0d71deb25a77f709 Tests for validate symbol file using build-id

gdb/ChangeLog
2015-07-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

Revert the previous 6 commits:
Create empty nat/linux-maps.[ch] and common/target-utils.[ch].
Move gdb_regex* to common/
Prepare linux_find_memory_regions_full & co. for move
Move linux_find_memory_regions_full & co.
gdbserver build-id attribute generator
Validate symbol file using build-id

gdb/gdbserver/ChangeLog
2015-07-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

Revert the previous 3 commits:
Move gdb_regex* to common/
Move linux_find_memory_regions_full & co.
gdbserver build-id attribute generator

gdb/doc/ChangeLog
2015-07-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

Revert the previous 2 commits:
gdbserver build-id attribute generator
Validate symbol file using build-id

gdb/testsuite/ChangeLog
2015-07-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

Revert the previous commit:
Tests for validate symbol file using build-id.

9 years agoTests for validate symbol file using build-id
Jan Kratochvil [Sun, 12 Jul 2015 18:59:03 +0000 (20:59 +0200)]
Tests for validate symbol file using build-id

New testcase.

gdb/testsuite/ChangeLog
2015-07-15  Aleksandar Ristovski  <aristovski@qnx.com

Tests for validate symbol file using build-id.
* gdb.base/solib-mismatch-lib.c: New file.
* gdb.base/solib-mismatch-libmod.c: New file.
* gdb.base/solib-mismatch.c: New file.
* gdb.base/solib-mismatch.exp: New file.

9 years agoValidate symbol file using build-id
Jan Kratochvil [Wed, 15 Jul 2015 15:37:28 +0000 (17:37 +0200)]
Validate symbol file using build-id

Consumer part of the "build-id" attribute.

gdb/ChangeLog
2015-07-15  Aleksandar Ristovski  <aristovski@qnx.com
    Jan Kratochvil  <jan.kratochvil@redhat.com>

Validate symbol file using build-id.
* NEWS (Changes since GDB 7.10): Add 'set validate-build-id'
and 'show validate-build-id'.  Add build-id attribute.
* solib-darwin.c (_initialize_darwin_solib): Assign validate value.
* solib-dsbt.c (_initialize_dsbt_solib): Ditto.
* solib-frv.c (_initialize_frv_solib): Ditto.
* solib-spu.c (set_spu_solib_ops): Ditto.
* solib-svr4.c: Include rsp-low.h.
(NOTE_GNU_BUILD_ID_NAME): New define.
(svr4_validate): New function.
(svr4_copy_library_list): Duplicate field build_id.
(library_list_start_library): Parse 'build-id' attribute.
(svr4_library_attributes): Add 'build-id' attribute.
(_initialize_svr4_solib): Assign validate value.
* solib-target.c (solib.h): Include.
(_initialize_solib_target): Assign validate value.
* solib.c (validate_build_id, show_validate_build_id): New.
(solib_map_sections): Use ops->validate.
(clear_so): Free build_id.
(default_solib_validate): New function.
(_initialize_solib): Add "validate-build-id".
* solib.h (default_solib_validate): New declaration.
* solist.h (struct so_list): New fields 'build_idsz' and 'build_id'.
(target_so_ops): New field 'validate'.

gdb/doc/ChangeLog
2015-07-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

* gdb.texinfo (Files): Add 'set validate-build-id'
and 'show validate-build-id'.

9 years agogdbserver build-id attribute generator
Jan Kratochvil [Wed, 15 Jul 2015 15:37:28 +0000 (17:37 +0200)]
gdbserver build-id attribute generator

Producer part of the new "build-id" XML attribute.

gdb/ChangeLog
2015-07-15  Aleksandar Ristovski  <aristovski@qnx.com
    Jan Kratochvil  <jan.kratochvil@redhat.com>

gdbserver build-id attribute generator.
* features/library-list-svr4.dtd (library-list-svr4): New
'build-id' attribute.

gdb/doc/ChangeLog
2015-07-15  Aleksandar Ristovski  <aristovski@qnx.com
    Jan Kratochvil  <jan.kratochvil@redhat.com>

gdbserver build-id attribute generator.
* gdb.texinfo (Library List Format for SVR4 Targets): Add
'build-id' in description, example, new attribute in dtd.

gdb/gdbserver/ChangeLog
2015-07-15  Aleksandar Ristovski  <aristovski@qnx.com
    Jan Kratochvil  <jan.kratochvil@redhat.com>

gdbserver build-id attribute generator.
* linux-low.c (nat/linux-maps.h, search.h, rsp-low.h): Include.
(ElfXX_Ehdr, ElfXX_Phdr, ElfXX_Nhdr): New.
(ELFXX_FLD, ELFXX_SIZEOF, ELFXX_ROUNDUP, BUILD_ID_INVALID): New.
(find_phdr): New.
(get_dynamic): Use find_pdhr to traverse program headers.
(struct mapping_entry, mapping_entry_s, free_mapping_entry_vec)
(compare_mapping_entry_range, struct find_memory_region_callback_data)
(read_build_id, find_memory_region_callback, lrfind_mapping_entry)
(get_hex_build_id): New.
(linux_qxfer_libraries_svr4): Add optional build-id attribute
to reply XML document.

9 years agoMove linux_find_memory_regions_full & co.
Jan Kratochvil [Wed, 15 Jul 2015 15:37:27 +0000 (17:37 +0200)]
Move linux_find_memory_regions_full & co.

This should be just a move with no changes.

gdb/ChangeLog
2015-07-15  Aleksandar Ristovski  <aristovski@qnx.com
    Jan Kratochvil  <jan.kratochvil@redhat.com>

Move linux_find_memory_regions_full & co.
* linux-tdep.c (nat/linux-maps.h): Include.
(gdb_regex.h): Remove the include.
(enum filterflags, struct smaps_vmflags, read_mapping, decode_vmflags)
(mapping_is_anonymous_p, dump_mapping_p): Moved to nat/linux-maps.c.
(linux_find_memory_region_ftype): Moved typedef to nat/linux-maps.h.
(linux_find_memory_regions_full): Moved definition to nat/linux-maps.c.
* nat/linux-maps.c: Include ctype.h, target/target-utils.h, gdb_regex.h
and target/target.h.
(struct smaps_vmflags, read_mapping, decode_vmflags)
(mapping_is_anonymous_p, dump_mapping_p): Move from linux-tdep.c.
(linux_find_memory_regions_full): Move from linux-tdep.c.
* nat/linux-maps.h (read_mapping): New declaration.
(linux_find_memory_region_ftype, enum filterflags): Moved from
linux-tdep.c.
(linux_find_memory_regions_full): New declaration.
* target.c (target/target-utils.h): Include.
(read_alloc_pread_ftype): Moved typedef to target/target-utils.h.
(read_alloc, read_stralloc_func_ftype, read_stralloc): Moved
definitions to target/target-utils.c.
* target.h (target_fileio_read_stralloc): Move it to target/target.h.
* target/target-utils.c (read_alloc, read_stralloc): Move definitions
from target.c.
* target/target-utils.h (read_alloc_pread_ftype): New typedef.
(read_alloc): New declaration.
(read_stralloc_func_ftype): New typedef.
(read_stralloc): New declaration.
* target/target.h (target_fileio_read_stralloc): Move it from target.h.

gdb/gdbserver/ChangeLog
2015-07-15  Aleksandar Ristovski  <aristovski@qnx.com
    Jan Kratochvil  <jan.kratochvil@redhat.com>

* target.c: Include target/target-utils.h and fcntl.h.
(target_fileio_read_stralloc_1_pread, target_fileio_read_stralloc_1)
(target_fileio_read_stralloc): New functions.

9 years agoPrepare linux_find_memory_regions_full & co. for move
Jan Kratochvil [Wed, 15 Jul 2015 15:37:27 +0000 (17:37 +0200)]
Prepare linux_find_memory_regions_full & co. for move

Prepare code for move into gdb/common/.

gdb/ChangeLog
2015-07-15  Aleksandar Ristovski  <aristovski@qnx.com
    Jan Kratochvil  <jan.kratochvil@redhat.com>

Prepare linux_find_memory_regions_full & co. for move.
* linux-tdep.c (linux_find_memory_region_ftype): Comment.
(linux_find_memory_regions_full): Change signature and prepare
for moving to linux-maps.
(linux_find_memory_regions_data): Rename field 'obfd' to 'data'.
(linux_find_memory_regions_thunk): New.
(linux_find_memory_regions_thunk): Use 'data' field instead of 'obfd'.
(linux_find_memory_regions_gdb): New.
(linux_find_memory_regions): Rename argument 'obfd' to 'func_data'.
(linux_make_mappings_corefile_notes): Use
linux_find_memory_regions_gdb.
* target.c (read_alloc_pread_ftype): New typedef.
(target_fileio_read_alloc_1_pread): New function.
(read_alloc): Refactor from target_fileio_read_alloc_1.
(read_stralloc_func_ftype): New typedef.
(target_fileio_read_alloc_1): New implementation. Use read_alloc.
(read_stralloc): Refactored from target_fileio_read_stralloc.
(target_fileio_read_stralloc): New implementation, use read_stralloc.

9 years agoMove gdb_regex* to common/
Jan Kratochvil [Wed, 15 Jul 2015 15:37:27 +0000 (17:37 +0200)]
Move gdb_regex* to common/

Later patches need regex support also in gdbserver.

gdb/ChangeLog
2015-07-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

* Makefile.in (HFILES_NO_SRCDIR): Change gdb_regex.h to
common/gdb_regex.h.
(COMMON_OBS): Add gdb_regex.o.
(gdb_regex.o): New.
* common/common.m4 (GDB_AC_COMMON): Add gdb_use_included_regex,
--without-included-regex and USE_INCLUDED_REGEX.
* common/gdb_regex.c: New file from utils.c functions.
* common/gdb_regex.h: Move it here from gdb_regex.h, update include
file wrapping define name.
* configure: Rebuilt.
* configure.ac (gdb_use_included_regex, --without-included-regex)
(USE_INCLUDED_REGEX): Move them to common/common.m4.
* gdb_regex.h: Move it to common/gdb_regex.h.
* utils.c: Remove include gdb_regex.h.
(do_regfree_cleanup, make_regfree_cleanup, get_regcomp_error)
(compile_rx_or_error): Move them to common/gdb_regex.c.

gdb/gdbserver/ChangeLog
2015-07-15  Jan Kratochvil  <jan.kratochvil@redhat.com>

* Makefile.in (OBS): Add gdb_regex.o.
(gdb_regex.o): New.
* config.in: Rebuilt.
* configure: Rebuilt.

9 years agoCreate empty nat/linux-maps.[ch] and common/target-utils.[ch]
Jan Kratochvil [Wed, 15 Jul 2015 15:37:27 +0000 (17:37 +0200)]
Create empty nat/linux-maps.[ch] and common/target-utils.[ch]

Prepare new files for later move.

gdb/ChangeLog
2015-07-15  Aleksandar Ristovski  <aristovski@qnx.com
    Jan Kratochvil  <jan.kratochvil@redhat.com>

Create empty nat/linux-maps.[ch] and common/target-utils.[ch].
* Makefile.in (HFILES_NO_SRCDIR); Add nat/linux-maps.h,
common/target-utils.h.
(COMMON_OBS): Add target-utils.o.
(linux-maps.o, target-utils.o): New.
* target/target-utils.c: New file.
* target/target-utils.h: New file.
* config/i386/linux.mh (NATDEPFILES): Add linux-maps.o.
* config/i386/linux64.mh (NATDEPFILES): Ditto.
* nat/linux-maps.c: New file.
* nat/linux-maps.h: New file.

gdb/gdbserver/ChangeLog
2015-07-15  Aleksandar Ristovski  <aristovski@qnx.com
    Jan Kratochvil  <jan.kratochvil@redhat.com>

Create empty nat/linux-maps.[ch] and common/target-utils.[ch].
* Makefile.in (OBS): Add target-utils.o.
(linux-maps.o, target-utils.o): New.
* configure.srv (srv_linux_obj): Add linux-maps.o.

9 years agoUnbreak nios2-*-linux* GDB testing.
Sandra Loosemore [Wed, 15 Jul 2015 15:30:14 +0000 (08:30 -0700)]
Unbreak nios2-*-linux* GDB testing.

2015-07-15  Sandra Loosemore  <sandra@codesourcery.com>

gdb/testsuite/
* gdb.base/sigaltstack.exp (finish_test): Add kfail for
nios2-*-linux*.
* gdb.base/sigbpt.exp (stepi_out): Likewise.
* gdb.base/siginfo.exp: Likewise.
* gdb.base/sigstep.exp (advance, advancei): Likewise.

9 years agoMake x86 Linux assembler default to gABI compliant
H.J. Lu [Wed, 15 Jul 2015 14:31:55 +0000 (07:31 -0700)]
Make x86 Linux assembler default to gABI compliant

The default compression is gABI compliant now.  This patch makes the
x86 Linux assembler default to gABI compliant.

* config/tc-i386.c (flag_compress_debug): Replace
COMPRESS_DEBUG_GNU_ZLIB with COMPRESS_DEBUG_GABI_ZLIB.

9 years agoMove ChangeLog entry to gdbserver
Pierre Langlois [Wed, 15 Jul 2015 14:03:01 +0000 (15:03 +0100)]
Move ChangeLog entry to gdbserver

gdb/gdbserver/ChangeLog:

* linux-aarch64-low.c (aarch64_supports_range_stepping): New
function, return 1.
(the_low_target): Install it.

9 years ago[GDBserver][AArch64] Enable support for range stepping
Pierre Langlois [Wed, 15 Jul 2015 13:58:32 +0000 (14:58 +0100)]
[GDBserver][AArch64] Enable support for range stepping

gdb/gdbserver/Changelog:

* linux-aarch64-low.c (aarch64_supports_range_stepping): New
function, return 1.
(the_low_target): Install it.

9 years ago[testsuite] Skip gdb.trace/range-stepping.exp test case if not supported
Pierre Langlois [Wed, 15 Jul 2015 13:33:32 +0000 (14:33 +0100)]
[testsuite] Skip gdb.trace/range-stepping.exp test case if not supported

Tracepoints and range stepping are independent features.  This patch
skips the gdb.trace/range-stepping.exp test case if the target does not
support range stepping.

gdb/testsuite/ChangeLog:

* gdb.base/range-stepping.exp (gdb_range_stepping_enabled):
Move it to ...
* lib/range-stepping-support.exp (gdb_range_stepping_enabled):
... here.
* gdb.trace/range-stepping.exp: Check that the target supports
range stepping.

9 years agoari, btrace: avoid unsigned long long
Markus Metzger [Wed, 8 Jul 2015 07:38:16 +0000 (09:38 +0200)]
ari, btrace: avoid unsigned long long

Fix the ARI warning about the use of unsigned long long.  We can't use
ULONGEST as this is defined unsigned long on 64-bit systems.  This will
result in a compile error when storing a pointer to an unsigned long long
structure field (declared in perf_event.h as __u64) in a ULONGEST * variable.

Use size_t to hold the buffer size inside GDB and __u64 when interfacing the
Linux kernel.

gdb/
* nat/linux-btrace.c (perf_event_read): Change the type of DATA_HEAD.
(perf_event_read_all): Change the type of SIZE and DATA_HEAD.
(perf_event_read_bts): Change the type of SIZE and READ.
(linux_enable_bts): Change the type of SIZE, PAGES, DATA_SIZE,
and DATA_OFFSET.  Move DATA_SIZE declaration.  Restrict the buffer size
to UINT_MAX.  Check for overflows when using DATA_HEAD from the perf
mmap page.
(linux_enable_pt): Change the type of PAGES and SIZE.  Restrict the
buffer size to UINT_MAX.
(linux_read_bts): Change the type of BUFFER_SIZE, SIZE, DATA_HEAD, and
DATA_TAIL.
* nat/linux-btrace.h (struct perf_event_buffer)<size, data_head>
<last_head>: Change type.
* common/btrace-common.h (struct btrace_dat_pt) <size>: Change type.
* common/btrace-common.c (btrace_data_append): Change the type of
SIZE.
* btrace.c (parse_xml_raw): Change the type of SIZE.  Change oddness
check.

9 years agoAutomatic date update in version.in
GDB Administrator [Wed, 15 Jul 2015 00:00:08 +0000 (00:00 +0000)]
Automatic date update in version.in

9 years agoRemove CHECK_TYPEDEF, use check_typedef instead
Simon Marchi [Mon, 6 Jul 2015 20:05:06 +0000 (16:05 -0400)]
Remove CHECK_TYPEDEF, use check_typedef instead

I think that the CHECK_TYPEDEF macro is not necessary, and even a bit
annoying.  It makes unclear the fact that the "type" variables gets
overwritten.  It has actually bitten me a few times.  I think the
following, explicit form, is better.

  type = check_typedef (type);

This patches changes all instances of CHECK_TYPEDEF for an equivalent
call to check_typedef.  The bulk of the change was done with this sed:

  sed -i 's/CHECK_TYPEDEF (\([^)]*\));/\1 = check_typedef (\1);/' <file>.c

The ChangeLog was generated using David Malcom's generate_changelog.py.
I manually fixed those places where it gets the wrong function name,
hopefully all of them.

The patch was built-tested, and I ran a few smoke tests.

gdb/ChangeLog:
* gdbtypes.h (CHECK_TYPEDEF): Remove.
* aarch64-tdep.c (aarch64_return_in_memory): Replace CHECK_TYPEDEF
        with check_typedef.
* ada-lang.c (decode_constrained_packed_array_type): Likewise.
(ada_array_length): Likewise.
(find_parallel_type_by_descriptive_type): Likewise.
(ada_check_typedef): Likewise.
* arm-tdep.c (arm_return_in_memory): Likewise.
* ax-gdb.c (gen_trace_static_fields): Likewise.
(gen_struct_ref_recursive): Likewise.
* c-exp.y (exp : SIZEOF '(' type ')' %prec UNARY): Likewise.
(variable: block COLONCOLON name): Likewise.
(qualified_name: TYPENAME COLONCOLON name): Likewise.
* c-lang.c (classify_type): Likewise.
* c-typeprint.c (c_print_type): Likewise.
(c_print_typedef): Likewise.
(c_type_print_base): Likewise.
* c-valprint.c (c_val_print): Likewise.
* compile/compile-c-types.c (convert_type): Likewise.
* compile/compile-object-load.c (get_out_value_type): Likewise.
* completer.c (add_struct_fields): Likewise.
(expression_completer): Likewise.
* cp-namespace.c (cp_find_type_baseclass_by_name): Likewise.
(cp_lookup_nested_symbol_1): Likewise.
(cp_lookup_nested_symbol): Likewise.
* cp-valprint.c (cp_print_value_fields): Likewise.
(cp_print_static_field): Likewise.
* d-valprint.c (d_val_print): Likewise.
* eval.c (evaluate_subexp_standard): Likewise.
(evaluate_subexp_for_sizeof): Likewise.
* f-exp.y (exp : SIZEOF '(' type ')' %prec UNARY): Likewise.
* f-typeprint.c (f_type_print_base): Likewise.
* f-valprint.c (f_val_print): Likewise.
* gdbtypes.c (get_discrete_bounds): Likewise.
(create_array_type_with_stride): Likewise.
(type_name_no_tag_or_error): Likewise.
(lookup_struct_elt_type): Likewise.
(get_unsigned_type_max): Likewise.
(internal_type_vptr_fieldno): Likewise.
(set_type_vptr_fieldno): Likewise.
(internal_type_vptr_basetype): Likewise.
(set_type_vptr_basetype): Likewise.
        (get_vptr_fieldno): Likewise.
(is_integral_type): Likewise.
(is_scalar_type): Likewise.
        (is_scalar_type_recursive): Likewise.
(distance_to_ancestor): Likewise.
(is_unique_ancestor_worker): Likewise.
(check_types_equal): Likewise.
* gnu-v2-abi.c (gnuv2_value_rtti_type): Likewise.
* gnu-v3-abi.c (gnuv3_dynamic_class): Likewise.
(gnuv3_get_vtable): Likewise.
(gnuv3_pass_by_reference): Likewise.
* go-exp.y (exp : SIZEOF_KEYWORD '(' type ')' %prec UNARY): Likewise.
* go-lang.c (gccgo_string_p): Likewise.
(go_classify_struct_type): Likewise.
* go-typeprint.c (go_print_type): Likewise.
* go-valprint.c (go_val_print): Likewise.
* guile/scm-math.c (vlscm_binop): Likewise.
* guile/scm-value.c (gdbscm_value_dynamic_type): Likewise.
(gdbscm_value_to_bytevector): Likewise.
(gdbscm_value_to_bool): Likewise.
(gdbscm_value_to_integer): Likewise.
(gdbscm_value_to_real): Likewise.
* infcall.c (call_function_by_hand_dummy): Likewise.
* infcmd.c (get_return_value): Likewise.
* jv-lang.c (is_object_type): Likewise.
* jv-typeprint.c (java_type_print_base): Likewise.
* jv-valprint.c (java_print_value_fields): Likewise.
(java_val_print): Likewise.
* linespec.c (find_methods): Likewise.
(collect_one_symbol): Likewise.
* m2-typeprint.c (m2_print_type): Likewise.
(m2_print_typedef): Likewise.
(m2_get_discrete_bounds): Likewise.
* m2-valprint.c (m2_print_long_set): Likewise.
(m2_print_unbounded_array): Likewise.
(m2_print_array_contents): Likewise.
(m2_val_print): Likewise.
* opencl-lang.c (opencl_print_type): Likewise.
* p-exp.y (exp : SIZEOF '(' type ')' %prec UNARY): Likewise.
* p-typeprint.c (pascal_print_type): Likewise.
(pascal_print_typedef): Likewise.
(pascal_type_print_base): Likewise.
* p-valprint.c (pascal_val_print): Likewise.
(pascal_object_print_value_fields): Likewise.
(pascal_object_print_static_field): Likewise.
* python/py-type.c (typy_fields_items): Likewise.
(typy_get_composite): Likewise.
* python/py-value.c (valpy_get_dynamic_type): Likewise.
(valpy_binop): Likewise.
(valpy_long): Likewise.
(valpy_float): Likewise.
* stack.c (return_command): Likewise.
* symtab.c (check_field): Likewise.
(lookup_symbol_aux): Likewise.
* tic6x-tdep.c (tic6x_return_value): Likewise.
* typeprint.c (print_type_scalar): Likewise.
* valarith.c (value_vector_widen): Likewise.
* valops.c (value_cast): Likewise.
(value_assign): Likewise.
(do_search_struct_field): Likewise.
(search_struct_method): Likewise.
(find_method_list): Likewise.
* valprint.c (val_print_scalar_type_p): Likewise.
(valprint_check_validity): Likewise.
(generic_val_print): Likewise.
* value.c (unpack_double): Likewise.
(value_primitive_field): Likewise.
(unpack_bits_as_long): Likewise.

9 years agoAdd support reading D modules from DWARF
Iain Buclaw [Tue, 14 Jul 2015 18:31:21 +0000 (20:31 +0200)]
Add support reading D modules from DWARF

Extends existing support for namespaces/modules in C++/Fortran/Java to
include language_d too.  However unlike Fortran/C++, the separator for
qualified names is a single dot.

2015-07-14  Iain Buclaw  <ibuclaw@gdcproject.org>

* dwarf2read.c (find_slot_in_mapped_hash): Extend language support to
also test for language_d.
(dwarf2_compute_name): Likewise.
(read_func_scope): Likewise.
(read_structure_type): Likewise.
(determine_prefix): Likewise.
(read_import_statement): Use dot as the separator for language_d.
(typename_concat): Likewise, but don't prefix the D main function.

9 years agoi386-biarch-core.exp: Fix comment typo
Jan Kratochvil [Tue, 14 Jul 2015 17:50:20 +0000 (19:50 +0200)]
i386-biarch-core.exp: Fix comment typo

gdb/testsuite/ChangeLog
2015-07-14  Jan Kratochvil  <jan.kratochvil@redhat.com>

* gdb.arch/i386-biarch-core.exp: Fix comment typo.

9 years agoMake default compression gABI compliant
H.J. Lu [Tue, 14 Jul 2015 17:25:52 +0000 (10:25 -0700)]
Make default compression gABI compliant

All programs in binutils+gdb git repo now support gABI compression
with the SHF_COMPRESSED bit.  This patch makes the zlib-gabi option
as compression default for gas, gold, ld and objcopy, instead of the
zlib-gnu option whose outputs are incompatible with gABI.

binutils/

* objcopy.c (copy_file): Set BFD_COMPRESS_GABI if not
zlib-gnu.
* doc/binutils.texi: Change --compress-debug-sections and
--compress-debug-sections=zlib to zlib-gabi.

binutils/testsuite/

* binutils-all/compress.exp: Update.

gas/

* as.c (parse_args): Make --compress-debug-sections and
--compress-debug-sections=zlib the same as
--compress-debug-sections=zlib-gabi.
* doc/as.texinfo: Change --compress-debug-sections and
--compress-debug-sections=zlib to zlib-gabi.

gold/

* compressed_output.cc (Output_compressed_section::set_final_data_size):
Make --compress-debug-sections=zlib the same as
--compress-debug-sections=zlib-gabi.
* testsuite/Makefile.am (flagstest_compress_debug_sections.check):
Expect ".debug_.*" with the SHF_COMPRESSED bit, instead of
".zdebug_".
* testsuite/Makefile.in: Regenerated.

ld/

* emultempl/elf32.em (gld${EMULATION_NAME}_handle_option): Make
--compress-debug-sections=zlib the same as
--compress-debug-sections=zlib-gabi.
* ld.texinfo: Change --compress-debug-sections=zlib to zlib-gabi.

ld/testsuite/

* ld-elf/zlibbegin.rS: Updated to .debug_.* with the
SHF_COMPRESSED bit.
* ld-elf/zlibnormal.rS: Likewise.

9 years agoSync Makefile.tpl with GCC
H.J. Lu [Tue, 14 Jul 2015 16:52:36 +0000 (09:52 -0700)]
Sync Makefile.tpl with GCC

* Makefile.in: Regenerated.

Sync with GCC
2015-05-21  Jason Merrill  <jason@redhat.com>

* Makefile.tpl: Update comments.

2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

* Makefile.tpl: Remove surplus whitespace throughout.

2015-03-25  Martin Liska  <mliska@suse.cz>
    Yury Gribov  <y.gribov@samsung.com>

* Makefile.tpl: Fix ln source location for vimrc file.

9 years agoSync longlong.h with GCC
H.J. Lu [Tue, 14 Jul 2015 16:17:41 +0000 (09:17 -0700)]
Sync longlong.h with GCC

Sync with GCC
2014-10-28  Richard Henderson  <rth@redhat.com>

* longlong.h [__alpha] (umul_ppmm): Disable for c++.

9 years agoSync hashtab.h, splay-tree.h with GCC
H.J. Lu [Tue, 14 Jul 2015 16:16:33 +0000 (09:16 -0700)]
Sync hashtab.h, splay-tree.h with GCC

Sync with GCC
2014-12-09  Trevor Saunders  <tsaunders@mozilla.com>

* hashtab.h, splay-tree.h: Remove GTY markers.

9 years agoRemove trailing spaces in demangle.h
H.J. Lu [Tue, 14 Jul 2015 16:14:50 +0000 (09:14 -0700)]
Remove trailing spaces in demangle.h

9 years agoSync ansidecl.h with GCC
H.J. Lu [Tue, 14 Jul 2015 16:10:59 +0000 (09:10 -0700)]
Sync ansidecl.h with GCC

Sync with GCC
2015-03-02  Markus Trippelsdorf  <markus@trippelsdorf.de>

PR target/65261
* ansidecl.h (ATTRIBUTE_NO_SANITIZE_UNDEFINED): New macro.

9 years agoSync config files with GCC
H.J. Lu [Tue, 14 Jul 2015 15:43:24 +0000 (08:43 -0700)]
Sync config files with GCC

Sync with GCC
2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>

* sjlj.m4: New file.

2015-05-04  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* bitfields.m4: Change int to long long, and use bitfields of
width 1 instead of 0.

2015-05-01  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* bitfields.m4: New file.

2015-04-14  H.J. Lu  <hongjiu.lu@intel.com>

* bootstrap-mpx.mk: New file.

2015-03-25  Uros Bizjak  <ubizjak@gmail.com>

PR bootstrap/65537
* bootstrap-lto-noplugin.mk: New build configuration.

2014-11-13  Kirill Yukhin  <kirill.yukhin@intel.com>

* target-posix: New file.

2014-10-27  Tom Tromey  <tromey@redhat.com>

* gcc-plugin.m4: New file.

9 years agoFix build issue with nat/linux-namespaces.c.
Peter Bergner [Tue, 14 Jul 2015 15:46:16 +0000 (10:46 -0500)]
Fix build issue with nat/linux-namespaces.c.

* nat/linux-namespaces.c (setns): Rename from this ...
(do_setns): ... to this.  Support calling setns if it exists.
(mnsh_handle_setns): Call do_setns.

9 years agoSync config/warnings.m4 with GCC
H.J. Lu [Tue, 14 Jul 2015 15:39:12 +0000 (08:39 -0700)]
Sync config/warnings.m4 with GCC

config/

Sync with GCC
2015-05-27  Jason Merrill  <jason@redhat.com>

PR bootstrap/66304
* warnings.m4 (ACX_PROG_CXX_WARNING_OPTS)
(ACX_PROG_CXX_WARNINGS_ARE_ERRORS)
(ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC): New.
(ACX_PROG_CC_WARNING_OPTS, ACX_PROG_CC_WARNING_ALMOST_PEDANTIC)
(ACX_PROG_CC_WARNINGS_ARE_ERRORS): Push into C language context.

libdecnumber/

* configure: Regenerated.

libiberty/

* configure: Regenerated.

opcodes/

* configure: Regenerated.

9 years agoSync toplevel configure with GCC
H.J. Lu [Tue, 14 Jul 2015 15:17:27 +0000 (08:17 -0700)]
Sync toplevel configure with GCC

Sync with GCC
2015-05-16  James Bowman  <james.bowman@ftdichip.com>

* configure.ac: FT32 target added.
* configure: Regenerate.

9 years agoSync toplevel configure.ac with GCC
H.J. Lu [Tue, 14 Jul 2015 14:49:50 +0000 (07:49 -0700)]
Sync toplevel configure.ac with GCC

Sync with GCC
2015-06-02  Jason Merrill  <jason@redhat.com>

PR bootstrap/66319
* configure.ac: Use -std=gnu++98.

2015-05-28  Mike Frysinger  <vapier@gentoo.org>

* configure.ac (--vtable-verify): Use AS_HELP_STRING for help.
* configure: Regenerate.

2015-05-11  Paulo Matos  <paulo@matos-sorge.com>

* configure.ac: Fix typo.
* configure: Regenerate.

2015-05-03  Matthias Klose  <doko@ubuntu.com>

* configure.ac: Match $host configured with triplets.
* configure: Regenerate.

2015-04-17  Jakub Jelinek  <jakub@redhat.com>

PR bootstrap/62077
* configure.ac (--enable-stage1-checking): Default to
release,misc,gimple,rtlflag,tree,types if --disable-checking
or --enable-checking is not specified and DEV-PHASE is not
experimental.
* configure: Regenerated.

2015-03-27  Uros Bizjak  <ubizjak@gmail.com>

Install back PR target/47230 fix (Revert the revert).

config/

Sync with GCC
* mh-alpha-linux: Restored.

9 years agoRemove extraneous whitespace from ARM sim sources.
Nick Clifton [Tue, 14 Jul 2015 11:06:33 +0000 (12:06 +0100)]
Remove extraneous whitespace from ARM sim sources.

* armcopro.c: Remove extraneous whitespace.
* armdefs.h: Likewise.
* armfpe.h: Likewise.
* arminit.c: Likewise.
* armopts.h: Likewise.
* armos.c: Likewise.
* armos.h: Likewise.
* armrdi.c: Likewise.
* armsupp.c: Likewise.
* armvirt.c: Likewise.
* bag.c: Likewise.
* bag.h: Likewise.
* communicate.c: Likewise.
* communicate.h: Likewise.
* dbg_conf.h: Likewise.
* dbg_cp.h: Likewise.
* dbg_hif.h: Likewise.
* dbg_rdi.h: Likewise.
* gdbhost.c: Likewise.
* gdbhost.h: Likewise.
* iwmmxt.c: Likewise.
* iwmmxt.h: Likewise.
* kid.c: Likewise.
* main.c: Likewise.
* maverick.c: Likewise.
* parent.c: Likewise.
* thumbemu.c: Likewise.
* wrapper.c: Likewise.

9 years agoFix texinfo problem by adding the required period after an @xref.
Nick Clifton [Tue, 14 Jul 2015 10:31:42 +0000 (11:31 +0100)]
Fix texinfo problem by adding the required period after an @xref.

* ld.texinfo (Options): Add missing period after @xref.

9 years agoAdd test that exercises the inferior being killed while stopped under GDB
Pedro Alves [Wed, 11 Mar 2015 15:20:31 +0000 (15:20 +0000)]
Add test that exercises the inferior being killed while stopped under GDB

This exercises the case of the inferior disappearing while GDB is
debugging it, such as something doing "kill -9 PID" while the program
is stopped under GDB or GDBserver.  This triggered a set of internal
errors, fixed by previous patches.

gdb/testsuite/ChangeLog:
2015-07-14  Pedro Alves  <palves@redhat.com>

* gdb.base/killed-outside.exp: New file.
* gdb.base/killed-outside.c: New file.

9 years agogdbserver/Linux: internal error when killing a process that is already gone
Pedro Alves [Tue, 14 Jul 2015 09:10:50 +0000 (10:10 +0100)]
gdbserver/Linux: internal error when killing a process that is already gone

If the process disappears (e.g., killed with "kill -9" from the shell)
while it was stopped under GDBserver's control, and the GDBserver
tries to kill it, GDBserver asserts:

 (gdb) shell kill -9 23084
 (gdb) kill
 ...
 Killing process(es): 23084
 /home/pedro/gdb/mygit/src/gdb/gdbserver/linux-low.c:972: A problem internal to GDBserver has been detected.
 kill_wait_lwp: Assertion `res > 0' failed.
 ...

gdb/gdbserver/ChangeLog:
2015-07-14  Pedro Alves  <palves@redhat.com>

* linux-low.c (kill_wait_lwp): Don't assert if waitpid fails.
Instead, ignore ECHILD, and throw an error for other errnos.

9 years agoAutomatic date update in version.in
GDB Administrator [Tue, 14 Jul 2015 00:00:08 +0000 (00:00 +0000)]
Automatic date update in version.in

9 years agoFix attach-pie-noexec.exp fail on native-extended-gdbserver
Yao Qi [Mon, 13 Jul 2015 16:14:13 +0000 (17:14 +0100)]
Fix attach-pie-noexec.exp fail on native-extended-gdbserver

When I examine the buildbot fails, I see this fail on
native-extended-gdbserver,

 Attaching to process 13529^M
 "target:/scratch/yao/gdb/build-git/x86_64/gdb/testsuite/gdb.base/attach-pie-noexec (deleted)": could not open as an executable file: No such file or directory^M
 (gdb) FAIL: gdb.base/attach-pie-noexec.exp: attach

if I run tests with board file unix, it doesn't exist,

 Attaching to process 13869^M
 /scratch/yao/gdb/build-git/x86_64/gdb/testsuite/gdb.base/attach-pie-noexec (deleted): No such file or directory.^M
 (gdb) PASS: gdb.base/attach-pie-noexec.exp: attach

the test expects to see the period at the end of the error message,

  gdb_test "attach $testpid" "Attaching to process $testpid\r\n.*: No such file or directory\\." "attach"

however the period is missing when running with native-extended-gdbserver.

in exec.c:exec_file_attach, GDB has two places may throw errors [1] and [2],

      if (load_via_target)
{
  ...
}
      else
{
    ...
  if (scratch_chan < 0)
    perror_with_name (filename);  <--- [1]
}

...
      if (!exec_bfd)
{
  error (_("\"%s\": could not open as an executable file: %s"), <-- [2]
 scratch_pathname, bfd_errmsg (bfd_get_error ()));
}

perror_with_name [1] append a period at the end of error message,
but error [2] doesn't.  This fix is to add a period at the end of the
error message.  Note that this fail is shown up on 7.9 release as well.

gdb:

2015-07-13  Yao Qi  <yao.qi@linaro.org>

* exec.c (exec_file_attach): Add period at the end of error
message.

9 years agogdb/tui: Add command completion to winheight command.
Andrew Burgess [Fri, 10 Jul 2015 13:06:28 +0000 (14:06 +0100)]
gdb/tui: Add command completion to winheight command.

Share the window name completion code from the focus command with the
winheight command, providing window name completion for the winheight
command.

gdb/ChangeLog:

* tui/tui-win.c (window_name_completer): New function.
(focus_completer): Call window_name_completer.  All old content
moved into window_name_completer.
(winheight_completer): New function.
(_initialize_tui_win): Rename variable.  Add completer to
winheight command.  Update doc string on winheight.

9 years agoAutomatic date update in version.in
GDB Administrator [Mon, 13 Jul 2015 00:00:08 +0000 (00:00 +0000)]
Automatic date update in version.in

9 years agoExtend --compress-debug-sections in gold
H.J. Lu [Sun, 12 Jul 2015 17:56:41 +0000 (10:56 -0700)]
Extend --compress-debug-sections in gold

This patch extends --compress-debug-sections= with [zlib-gnu|zlib-gabi]
in gold.

PR gold/18322
* compressed_output.cc (zlib_compress): Add argument for
compression header size.  Set header size to compression header
size if it isn't 0.  Don't write out the zlib header here.
(Output_compressed_section::set_final_data_size): Support
zlib-gnu and zlib-gabi compressions.  Pass compression header
size to zlib_compress and write out compression header.  Set
the SHF_COMPRESSED bit for zlib-gabi compression.  Otherwise
clear the SHF_COMPRESSED bit
* options.h (compress_debug_sections): Add zlib-gnu and
zlib-gabi.
* output.h (Output_section::set_flags): New.
* testsuite/Makefile.am (check_PROGRAMS): Add
flagstest_compress_debug_sections_none,
flagstest_compress_debug_sections_gnu and
flagstest_compress_debug_sections_gabi.
(check_DATA): Add flagstest_compress_debug_sections_none.stdout.
flagstest_compress_debug_sections.stdout,
flagstest_compress_debug_sections.cmp,
flagstest_compress_debug_sections.check,
flagstest_compress_debug_sections_gnu.stdout,
flagstest_compress_debug_sections_gnu.cmp,
flagstest_compress_debug_sections_gnu.check,
flagstest_compress_debug_sections_gabi.stdout,
flagstest_compress_debug_sections_gabi.cmp and
flagstest_compress_debug_sections_gabi.check.
(flagstest_compress_debug_sections_none): New.
(flagstest_compress_debug_sections_none.stdout): Likewise.
(flagstest_compress_debug_sections.stdout): Likewise.
(flagstest_compress_debug_sections.check): Likewise.
(flagstest_compress_debug_sections.cmp): Likewise.
(flagstest_compress_debug_sections_gnu): Likewise.
(flagstest_compress_debug_sections_gnu.stdout): Likewise.
(flagstest_compress_debug_sections_gnu.check): Likewise.
(flagstest_compress_debug_sections_gnu.cmp): Likewise.
(flagstest_compress_debug_sections_gabi): Likewise.
(flagstest_compress_debug_sections_gabi.stdout): Likewise.
(flagstest_compress_debug_sections_gnu.check): Likewise.
(flagstest_compress_debug_sections_gnu.cmp): Likewise.
* testsuite/Makefile.in: Regenerated.

9 years agoAdd SHF_COMPRESSED section decompression to gold
H.J. Lu [Sun, 12 Jul 2015 17:50:25 +0000 (10:50 -0700)]
Add SHF_COMPRESSED section decompression to gold

This patch adds SHF_COMPRESSED section decompression to gold.

PR gold/18321
* compressed_output.h (decompress_input_section): Add arguments
for ELF class, big endian and sh_flags.
* compressed_output.cc (decompress_input_section): Likewise.
Support the SHF_COMPRESSED section.
* dynobj.h (Dynobj): Add elfsize and is_big_endian member
functions.
* plugin.h (Pluginobj): Likewise.
* layout.cc (Layout::get_output_section_flags): Also clear the
SHF_COMPRESSED bit.
* object.h (Compressed_section_info): Add flag to store sh_flags.
(Object): Add pure virtual elfsize and is_big_endian member
functions.
* object.cc (need_decompressed_section): Don't skip the ".zdebug"
prefix here.
(build_compressed_section_map): Check SHF_COMPRESSED for
uncompressed size.  Store sh_flags in Compressed_section_info.
Pass size, big_endian and sh_flags to decompress_input_section.
Skip the ".debug"/".zdebug" prefix when passing section name to
need_decompressed_section.
(Sized_relobj_file<size, big_endian>::do_find_special_section):
Don't check ".zdebug_*" sections.
(Object::decompressed_section_contents): Pass ELF class, big
endian and sh_flags to decompress_input_section.
* reloc.cc (Sized_relobj_file<size, big_endian>::write_sections):
Likewise.
* testsuite/Makefile.am (check_DATA): Add
debug_msg_cdebug_gabi.err and gdb_index_test_2_gabi.stdout.
(MOSTLYCLEANFILES): Add debug_msg_cdebug_gabi.err and
gdb_index_test_2_gabi.stdout.
(debug_msg_cdebug_gabi.o): New.
(odr_violation1_cdebug_gabi.o): Likewise.
(odr_violation2_cdebug_gabi.o): Likewise.
(debug_msg_cdebug_gabi.err): Likewise.
(check_SCRIPTS): Add gdb_index_test_2_gabi.sh.
(gdb_index_test_cdebug_gabi.o): Likewise.
(gdb_index_test_2_gabi): Likewise.
(gdb_index_test_2_gabi.stdout): Likewise.
* testsuite/gdb_index_test_2_gabi.sh: New file.
* testsuite/Makefile.in: Regenerated.

9 years agoFix GDB breakage due to addition of new nios2 mach types in BFD.
Sandra Loosemore [Sun, 12 Jul 2015 14:13:12 +0000 (07:13 -0700)]
Fix GDB breakage due to addition of new nios2 mach types in BFD.

2015-07-12  Sandra Loosemore  <sandra@codesourcery.com>

gdb/
* nios2-linux-tdep.c (_initialize_nios2_linux_tdep): Register
all nios2 mach variants.

9 years agoAutomatic date update in version.in
GDB Administrator [Sun, 12 Jul 2015 00:00:08 +0000 (00:00 +0000)]
Automatic date update in version.in

9 years agoAutomatic date update in version.in
GDB Administrator [Sat, 11 Jul 2015 00:00:08 +0000 (00:00 +0000)]
Automatic date update in version.in

9 years agoProperly convert objects between different ELF classes
H.J. Lu [Fri, 10 Jul 2015 21:20:20 +0000 (14:20 -0700)]
Properly convert objects between different ELF classes

The output SHF_COMPRESSED section size is different from input if
ELF classes of input and output aren't the same.  We must adjust
the section sizes as well as the compression headers in
SHF_COMPRESSED sections when converting objects between different
ELF classes.

bfd/

 PR binutils/18656
 * bfd.c (bfd_convert_section_size): New function.
 (bfd_convert_section_contents): Likewise.
 * bfd-in2.h: Regenerated.

binutils/

2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>

 PR binutils/18656
 * objcopy.c (setup_section): Call bfd_convert_section_size
 to get the output section size.
 (copy_section): Get the section size from the output section
 and call bfd_get_full_section_contents to convert section
 contents for output.

binutils/testsuite/

 PR binutils/18656
 * binutils-all/compress.exp (convert_test): New proc.
 Run conversion tests between x86-64 and x32.

9 years agorx-tdep.c: Use target_read_code instead of target_read_memory.
Kevin Buettner [Thu, 9 Jul 2015 23:05:31 +0000 (16:05 -0700)]
rx-tdep.c: Use target_read_code instead of target_read_memory.

This change causes the prologue scanner and the frame type scanner in
rx-tdep.c to use target_read_code() instead of target_read_memory().
This change allows these instruction scanners to operate much more
quickly due to the fact that target_read_code() can potentially read
from a cache maintained by GDB.

gdb/ChangeLog:

* rx-tdep.c (rx_get_opcode_byte): Use target_read_code instead
of target_read_memory.

9 years agogdbserver/event-loop.c: type mismatch
Pedro Alves [Fri, 10 Jul 2015 18:47:17 +0000 (19:47 +0100)]
gdbserver/event-loop.c: type mismatch

Building with C++ catches a buglet here:

../../../src/gdb/gdbserver/event-loop.c:205:19: warning: invalid conversion from â€˜gdb_client_data {aka void*}’ to â€˜void**’ [-fpermissive]
   event_ptr->data = data;
                   ^

This works in practice because gdb_client_data is a pointer already
(hence in C we get an implicit conversion), and nothing deferences the
pointer.  It's passed from client at event registration/creation time,
only to pass straight back to client callback.

Well, that and nothing in gdbserver uses the event data anyway.

gdb/gdbserver/ChangeLog:
2015-07-10  Pedro Alves  <palves@redhat.com>

* event-loop.c (struct callback_event) <data>: Change type to
gdb_client_data instance instead of gdb_client_data pointer.
(append_callback_event): Adjust.

9 years agoWarn unsupported compress type and corrupted compressed section
H.J. Lu [Fri, 10 Jul 2015 17:23:12 +0000 (10:23 -0700)]
Warn unsupported compress type and corrupted compressed section

* readelf.c (dump_section_as_strings): Warn unsupported compress
type and corrupted compressed section.
(dump_section_as_bytes): Likewise.
(load_specific_debug_section): Likewise.

9 years agoUpdated to accept .debug_* sections
H.J. Lu [Fri, 10 Jul 2015 15:41:10 +0000 (08:41 -0700)]
Updated to accept .debug_* sections

* gas/i386/dw2-compress-1.d: Updated to accept .debug_* sections.

9 years agoUpdated to accept .debug_* sections
H.J. Lu [Fri, 10 Jul 2015 15:14:59 +0000 (08:14 -0700)]
Updated to accept .debug_* sections

* binutils-all/dw2-3.W: Updated to accept .debug_* sections.

9 years agoFix testsuite regression by: Do not skip prologue for asm (.S) files
Jan Kratochvil [Fri, 10 Jul 2015 13:04:51 +0000 (15:04 +0200)]
Fix testsuite regression by: Do not skip prologue for asm (.S) files

I have somehow missed gdb.asm/asm-source.exp PASS->FAIL even on x86_64.

It has no longer valid assumption that "break" breaks after the prologue even
in assembler.  So I have changed this assumption of the testfile.

gdb/testsuite/ChangeLog
2015-07-10  Jan Kratochvil  <jan.kratochvil@redhat.com>

* gdb.asm/asm-source.exp (f at main): Stop at gdbasm_enter.
(n at main): New.
* gdb.asm/asmsrc1.s: Add comment "mark: main enter".

9 years ago[GDBserver][AArch64] Cleanup comments for each linux_target_ops method
Pierre Langlois [Thu, 2 Jul 2015 11:11:47 +0000 (12:11 +0100)]
[GDBserver][AArch64] Cleanup comments for each linux_target_ops method

This patch cleans up the comments for each linux_target_ops methods.  We
should mention which method each function implements but there is no
need to duplicate information already mentionned in the base target_ops
or linux_target_ops definitions.

gdb/gdbserver/ChangeLog:

* linux-aarch64-low.c: Add comments for each linux_target_ops
method.  Remove comments already covered in target_ops and
linux_target_ops definitions.
(the_low_target): Add comments for each unimplemented method.

9 years agogdb/tui: Use cleanups to free string copies.
Andrew Burgess [Mon, 6 Jul 2015 17:16:24 +0000 (18:16 +0100)]
gdb/tui: Use cleanups to free string copies.

In parse_scrolling_args it is possible for a string copy to leak if an
error occurs.  Switching to using a cleanup fixes this leak.

In tui_set_win_height the string can't be leaked, but switching to using
a cleanup guards against the possibility that a leak could be introduced
in the future (by adding an error somewhere in the call stack).

gdb/ChangeLog:

* tui/tui-win.c (tui_set_win_height): Use a cleanup to free the
string copy.
(parse_scrolling_args): Likewise.

9 years agogdb/tui: Define tui window names once.
Andrew Burgess [Mon, 6 Jul 2015 16:50:28 +0000 (17:50 +0100)]
gdb/tui: Define tui window names once.

Don't duplicate the window names inside the completion function.
Instead make use of the existing defines, and the tui_win_name function
to obtain the window names.

gdb/ChangeLog:

* tui/tui-win.c (focus_completer): Don't duplicate the tui window
names in this function.

9 years agogdb: Convert TUI windows names to lower case.
Andrew Burgess [Mon, 6 Jul 2015 10:09:05 +0000 (11:09 +0100)]
gdb: Convert TUI windows names to lower case.

This commit converts the window names for the TUI windows to lower case.
The windows names are already lower case in the documentation, and are
shown as lower case in some of the command completion results.

Given that all the commands that take a window name currently accept
upper or lower case, this commit just changes the window names to lower
case in the remaining places they are displayed by gdb.

gdb/ChangeLog:

* tui/tui-data.h (SRC_NAME): Convert to lower case.
(CMD_NAME): Likewise.
(DATA_NAME): Likewise.
(DISASSEM_NAME): Likewise.
* tui/tui-win.c (tui_set_focus): Window names are now lower case.
(tui_set_win_height): Likewise.
(parse_scrolling_args): Likewise.

9 years agoMake ALIGN(x) behave as ALIGN(.,x)
Alan Modra [Wed, 8 Jul 2015 12:48:34 +0000 (22:18 +0930)]
Make ALIGN(x) behave as ALIGN(.,x)

Inside output sections, ALIGN(.,x) uses a section-relative value for
dot.  The unary ALIGN always used the absolute value of dot.

* ldexp.c (align_dot_val): New function.
(fold_unary <ALIGN_K, NEXT>): Use it.

9 years agoAdd missing changelog entries
Alan Modra [Fri, 10 Jul 2015 10:36:25 +0000 (20:06 +0930)]
Add missing changelog entries

9 years agognu_vector.exp: Skip infcall tests on x86/x86_64
Andreas Arnez [Fri, 10 Jul 2015 08:36:02 +0000 (10:36 +0200)]
gnu_vector.exp: Skip infcall tests on x86/x86_64

Since the new KFAILs/KPASSs for the infcall tests on x86 and x86_64
targets generated unnecessary noise, this change skips them with
UNSUPPORTED instead.

gdb/testsuite/ChangeLog:

* gdb.base/gnu_vector.exp: On x86 and x86_64 targets, skip the
infcall tests instead of setting up for KFAIL.

9 years agorecord: set stop_pc in "record goto" command
Markus Metzger [Mon, 6 Jul 2015 14:36:45 +0000 (16:36 +0200)]
record: set stop_pc in "record goto" command

When navigating in the recorded execution trace via "record goto", we do not
set stop_pc.  This may trigger an internal error in infrun.c when stepping
from that location.  Set it.

(gdb) rec full
(gdb) c
Continuing.

Breakpoint 1, foo (void) at foo.c:42
42             x = y
(gdb) rn
foo (void)
    at foo.c:41
41             y = x
(gdb) rec go end
Go forward to insn number 98724
    at foo.c:42
42             x = y
(gdb) n
infrun.c:2382: internal-error: resume: Assertion `sig != GDB_SIGNAL_0' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n)

This happens because there's a breakpoint at PC when the "next"
is issued, so that breapoint should be immediately stepped over.
That should have been detected/done by proceed, here:

  if (addr == (CORE_ADDR) -1)
    {
      if (pc == stop_pc
  && breakpoint_here_p (aspace, pc) == ordinary_breakpoint_here
  && execution_direction != EXEC_REVERSE)
/* There is a breakpoint at the address we will resume at,
   step one instruction before inserting breakpoints so that
   we do not stop right away (and report a second hit at this
   breakpoint).

   Note, we don't do this in reverse, because we won't
   actually be executing the breakpoint insn anyway.
   We'll be (un-)executing the previous instruction.  */
tp->stepping_over_breakpoint = 1;

But since stop_pc was stale, the pc == stop_pc check failed, and left the
breakpont at PC inserted.

gdb/
* record-btrace.c (record_btrace_goto_begin, record_btrace_goto_end)
record_btrace_goto): Move call to print_stack_frame ...
(record_btrace_set_replay): ... here.  Set stop_pc.
* record-full.c (record_full_goto_entry): Set stop_pc.

testsuite/
* gdb.btrace/record_goto-step.exp: New.

9 years agoUse "gold_info" instead of "gold_warning" for erratum fix.
Han Shen [Thu, 9 Jul 2015 22:55:55 +0000 (15:55 -0700)]
Use "gold_info" instead of "gold_warning" for erratum fix.

gold/ChangeLog:

* aarch64.cc (Target_aarch64::scan_erratum_843419_span): Use 'gold_info'.
(Target_aarch64::scan_erratum_835769_span): USe 'gold_info'.

9 years agoAutomatic date update in version.in
GDB Administrator [Fri, 10 Jul 2015 00:00:08 +0000 (00:00 +0000)]
Automatic date update in version.in

9 years agoDrop 'missing mapping symbols' warning for arm and aarch64.
Han Shen [Thu, 9 Jul 2015 22:38:12 +0000 (15:38 -0700)]
Drop 'missing mapping symbols' warning for arm and aarch64.

The psABI (AAELF) says this about mapping symbols:

    4.6.5.1 Section-relative mapping symbols

    Mapping symbols defined in a section define a sequence of
    half-open address intervals that cover the address range of the
    section. Each interval starts at the address defined by the
    mapping symbol, and continues up to, but not including, the
    address defined by the next (in address order) mapping symbol or
    the end of the section. A section must have a mapping symbol
    defined at the beginning of the section; however, if the section
    contains only data then the mapping symbol may be omitted.

That makes it pretty clear that, in the absence of a mapping symbol,
the entire section can be treated as data.

gold/ChangeLog:
* aarch64.cc (AArch64_relobj::scan_errata): Drop missing symbol warning.
* arm.cc (Arm_relobj::scan_section_for_cortex_a8_erratum): Drop missing
symbol warning.

9 years agoAdd NEWS entry for tracepoints support on aarch64-linux
Pierre Langlois [Thu, 9 Jul 2015 15:35:11 +0000 (16:35 +0100)]
Add NEWS entry for tracepoints support on aarch64-linux

gdb/ChangeLog:

* NEWS: Mention support for tracepoints on aarch64-linux.

9 years ago[GDBServer][AArch64] Enable support for tracepoints
Pierre Langlois [Thu, 9 Jul 2015 15:35:11 +0000 (16:35 +0100)]
[GDBServer][AArch64] Enable support for tracepoints

gdb/gdbserver/ChangeLog:

* linux-aarch64-low.c (aarch64_supports_tracepoints): New
function.  Return 1.
(the_low_target): Install it.

9 years ago[testsuite][AArch64] Port gdb.trace
Pierre Langlois [Thu, 9 Jul 2015 15:35:11 +0000 (16:35 +0100)]
[testsuite][AArch64] Port gdb.trace

This patch adds support for AArch64 to the gdb.trace testsuite.

Note that it does not add support for testing fast tracepoint as it
isn't supported.  Therefore the test cases with inline assembly are not
ported in this patch, as we do not know what the conditions for
inserting a fast tracepoint on AArch64 would be.

gdb/testsuite/ChangeLog:

* gdb.trace/backtrace.exp: Set registers for aarch64 target.
* gdb.trace/collection.exp: Likewise.
* gdb.trace/mi-trace-frame-collected.exp: Likewise.
* gdb.trace/mi-trace-unavailable.exp: Likewise.
* gdb.trace/report.exp: Likewise.
* gdb.trace/trace-break.exp: Likewise.
* gdb.trace/unavailable.exp: Likewise.
* gdb.trace/while-dyn.exp: Likewise.

9 years ago[AArch64] Implement gdbarch_gen_return_address gdbarch method
Pierre Langlois [Thu, 9 Jul 2015 15:35:11 +0000 (16:35 +0100)]
[AArch64] Implement gdbarch_gen_return_address gdbarch method

This patch implements the 'collect $_ret' command to collect the return
address of a function in a tracepoint.  It marks the LR register for
collection.

gdb/ChangeLog:

* aarch64-tdep.c: Add ax.h and ax-gdb.h includes.
(aarch64_gen_return_address): New function.
(aarch64_gdbarch_init): Hook it.

9 years ago[AArch64] Teach stub unwinder to terminate gracefully
Pierre Langlois [Thu, 9 Jul 2015 15:35:11 +0000 (16:35 +0100)]
[AArch64] Teach stub unwinder to terminate gracefully

The stub unwinder is used on AArch64 if the target's memory is not
readable at the current PC.  For example, the user could try to call at
an invalid address such as 0x0, as covered in the gdb.base/signull.exp
test case.  Many GDB ports use a similar unwinder to handle this case
too.

If we purposely kill the inferior before examining the trace then we get
the following issue:

~~~
...
(gdb) trace f
Tracepoint 3 at 0x7fb7fc28c0
(gdb) tstart
(gdb) continue
...
(gdb) tstop
(gdb) tsave /tmp/trace
(gdb) kill
...
(gdb) target tfile /tmp/trace
...
(gdb) tfind
Register 31 is not available.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Found trace frame 0, tracepoint 3
#-1 0x0000007fb7fc28c0 in f () ...
^^^
~~~

This patch teaches the stub unwinder to report to the core frame code
with UNWIND_UNAVAILABLE when either the stack pointer of the return
address are unavailable to read from the target.

gdb/ChangeLog:

* aarch64-tdep.c (aarch64_make_stub_cache): Set available_p and
swallow NOT_AVAILABLE_ERROR.
(aarch64_stub_this_id): Call frame_id_build_unavailable_stack if
available_p is not set.
(aarch64_stub_frame_unwind_stop_reason): New function.
(aarch64_stub_unwind): Install it.

9 years ago[AArch64] Teach prologue unwinder to terminate gracefully
Pierre Langlois [Thu, 9 Jul 2015 15:35:11 +0000 (16:35 +0100)]
[AArch64] Teach prologue unwinder to terminate gracefully

Without debugging information, we have the following issue when
examining a trace buffer:

~~~
...
(gdb) trace f
Tracepoint 3 at 0x7fb7fc28c0
(gdb) tstart
(gdb) continue
...
(gdb) tstop
(gdb) tfind start
Register 31 is not available.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Found trace frame 0, tracepoint 3
#-1 0x0000007fb7fc28c0 in f () ...
^^^
~~~

The reason for this is that the target's stack pointer is unavailable
when examining the trace buffer.  What we are seeing is due to the
'tfind' command creating a sentinel frame and unwinding it.  If an
exception is thrown, we are left with the sentinel frame being displayed
at level #-1.  The exception is thrown when the prologue unwinder tries
to read the stack pointer to construct an ID for the frame.

This patch fixes this by making the prologue unwinder catch
NOT_AVAILABLE_ERROR exceptions when either registers or memory is
unreadable and report back to the frame core code with
UNWIND_UNAVAILABLE.

gdb/ChangeLog:

* aarch64-tdep.c (aarch64_prologue_cache) <available_p>: New
field.
(aarch64_make_prologue_cache_1): New function, factored out from
aarch64_make_prologue_cache.  Do not allocate cache.  Set
available_p.
(aarch64_make_prologue_cache): Reimplement wrapping
aarch64_make_prologue_cache_1, and swallowing
NOT_AVAILABLE_ERROR.
(aarch64_prologue_frame_unwind_stop_reason): New function.
Return UNWIND_UNAVAILABLE if available_p is not set.
(aarch64_prologue_unwind): Install it.
(aarch64_prologue_this_id): Move prev_pc and prev_sp limit
checks into aarch64_prologue_frame_unwind_stop_reason.  Call
frame_id_build_unavailable_stack if available_p is not set.

9 years ago[AArch64] Only access inferior registers when creating a frame cache
Pierre Langlois [Thu, 9 Jul 2015 15:35:11 +0000 (16:35 +0100)]
[AArch64] Only access inferior registers when creating a frame cache

This patch moves the address of the start of a function (func) and the
address from which it was called (prev_pc) into aarch64_prologue_cache.
The idea is to keep accesses to the inferior's registers into
aarch64_make_prologue_cache and aarch64_make_stub_cache.

gdb/ChangeLog:

* aarch64-tdep.c (aarch64_prologue_cache) <func, prev_pc>: New
fields.
(aarch64_scan_prologue): Set prev_pc.
(aarch64_make_prologue_cache): Set func.
(aarch64_make_stub_cache): Set prev_pc.
(aarch64_prologue_this_id): Remove local variables id, pc and
func.  Read prev_pc and func from cache.
(aarch64_stub_this_id): Read prev_pc from cache.

9 years ago[AArch64] Refactor aarch64_make_stub_cache
Pierre Langlois [Thu, 9 Jul 2015 15:35:10 +0000 (16:35 +0100)]
[AArch64] Refactor aarch64_make_stub_cache

We would previously have to make sure the frame cache was not already
created before calling aarch64_make_stub_cache.  This patch makes this
function check it so the caller does not need to do so.

gdb/ChangeLog:

* aarch64-tdep.c (aarch64_make_stub_cache): Update comment.  New
argument this_cache.  Remove unused local variables reg and
unwound_fp.  Return early if this_cache is already set.  Set
this_cache.
(aarch64_stub_this_id): Update call to aarch64_make_stub_cache.

9 years ago[AArch64] Refactor aarch64_make_prologue_cache
Pierre Langlois [Thu, 9 Jul 2015 15:35:10 +0000 (16:35 +0100)]
[AArch64] Refactor aarch64_make_prologue_cache

We would previously have to make sure the frame cache was not already
created before calling aarch64_make_prologue_cache.  This patch makes
this function check it so that the caller does not need to do so.

gdb/ChangeLog:

* aarch64-tdep.c (aarch64_make_prologue_cache): Update comment.
New argument this_cache.  Return early if this_cache is already
set.  Set this_cache.
(aarch64_prologue_this_id): Update call to
aarch64_make_prologue_cache.
(aarch64_prologue_prev_register): Likewise.
(aarch64_normal_frame_base): Likewise.

9 years ago2015-07-09 Catherine Moore <clm@codesourcery.com>
Catherine Moore [Thu, 9 Jul 2015 15:24:54 +0000 (08:24 -0700)]
2015-07-09  Catherine Moore  <clm@codesourcery.com>

        include/
        * elf/mips/mips.h (Val_GNU_MIPS_ABI_FP_NAN2008): New.

        gas/
        * config/tc-mips.c (check_fpabi):  Handle
        VAL_GNU_MIPS_ABI_FP_NAN2008.

        binutils/
        * readelf.c (print_mips_fp_abi_value): Handle
        Val_GNU_MIPS_ABI_FP_NAN2008.

        ld/testsuite/
        * ld-mips-elf/attr-gnu-4-08.d: Update expected output.
        * ld-mips-elf/attr-gnu-4-09.d: New.
        * ld-mips-elf/attr-gnu-4-19.d: New.
        * ld-mips-elf/attr-gnu-4-29.d: New.
        * ld-mips-elf/attr-gnu-4-39.d: New.
        * ld-mips-elf/attr-gnu-4-49.d: New.
        * ld-mips-elf/attr-gnu-4-59.d: New.
        * ld-mips-elf/attr-gnu-4-69.d: New.
        * ld-mips-elf/attr-gnu-4-79.d: New.
        * ld-mips-elf/attr-gnu-4-89.d: New.
        * ld-mips-elf/attr-gnu-4-9.s: New.
        * ld-mips-elf/mips-elf.exp: Run new tests.

9 years agoFactor out memberptr printing code from c_val_print
Simon Marchi [Thu, 9 Jul 2015 15:19:25 +0000 (11:19 -0400)]
Factor out memberptr printing code from c_val_print

gdb/ChangeLog:

* c-valprint.c (c_val_print): Factor out memberptr printing code
from c_val_print to ...
(c_val_print_memberptr): ... this new function.

9 years agoFactor out int printing code from c_val_print
Simon Marchi [Thu, 9 Jul 2015 15:18:59 +0000 (11:18 -0400)]
Factor out int printing code from c_val_print

gdb/ChangeLog:

* c-valprint.c (c_val_print): Factor out int printing code to ...
(c_val_print_int): ... this new function.

9 years agoFactor out struct and union printing code from c_val_print
Simon Marchi [Thu, 9 Jul 2015 15:18:39 +0000 (11:18 -0400)]
Factor out struct and union printing code from c_val_print

gdb/ChangeLog:

* c-valprint.c (c_val_print): Factor out struct and union
printing code to ...
(c_val_print_struct): ... this new function ...
(c_val_print_union): ... and this new function.

9 years agoFactor out pointer printing code from c_val_print
Simon Marchi [Thu, 9 Jul 2015 15:18:12 +0000 (11:18 -0400)]
Factor out pointer printing code from c_val_print

gdb/ChangeLog:

* c-valprint.c (c_val_print): Factor out pointer printing code
to ...
(c_val_print_ptr): ... this new function.

9 years agoFactor out array printing code from c_val_print
Simon Marchi [Thu, 9 Jul 2015 15:17:20 +0000 (11:17 -0400)]
Factor out array printing code from c_val_print

gdb/ChangeLog:

* c-valprint.c (c_valprint): Factor our array printing code from
c_val_print to ...
(c_val_print_array): ... this new function.

9 years agoFactor out print_unpacked_pointer from c_val_print
Simon Marchi [Thu, 9 Jul 2015 15:16:22 +0000 (11:16 -0400)]
Factor out print_unpacked_pointer from c_val_print

Turn this code into a function, instead of a goto.

gdb/ChangeLog:

* c-valprint.c (c_val_print): Factor out pointer printing code
to ...
(print_unpacked_pointer): ... this new function.

9 years agoRemove unneeded variable assignment
Simon Marchi [Thu, 9 Jul 2015 15:15:40 +0000 (11:15 -0400)]
Remove unneeded variable assignment

The assignment to i in the TYPE_CODE_PTR section is not useful.
Removing it allows to move i in a narrower scope, which will help
things somewhere in the next patches.

gdb/ChangeLog:

* c-valprint.c (c_val_print): Remove an assignment to i and move
its declaration.

9 years ago2015-07-09 Catherine Moore <clm@codesourcery.com>
Catherine Moore [Thu, 9 Jul 2015 15:07:47 +0000 (08:07 -0700)]
2015-07-09  Catherine Moore  <clm@codesourcery.com>

        * elflink.c (bfd_elf_size_dynamic_sections): Call to
        _bfd_elf_maybe_strip_eh_frame_hdr should be before
        bed->elf_backend_size_dynamic_sections.

9 years agoPass ptid to aarch64_linux_get_debug_reg_capacity
Yao Qi [Thu, 9 Jul 2015 11:55:45 +0000 (12:55 +0100)]
Pass ptid to aarch64_linux_get_debug_reg_capacity

This patch is to pass ptid to aarch64_linux_get_debug_reg_capacity,
and stop using global variable inferior_ptid.

gdb:

2015-07-09  Yao Qi  <yao.qi@linaro.org>

* aarch64-linux-nat.c (aarch64_linux_get_debug_reg_capacity): Add
argument ptid.  Update comments.  Caller update.

9 years ago[gdbserver, aarch64] Set usrregs to NULL in regs_info
Yao Qi [Thu, 9 Jul 2015 11:47:06 +0000 (12:47 +0100)]
[gdbserver, aarch64] Set usrregs to NULL in regs_info

Hi,
I happen to read the comments in regs_info below,

struct regs_info
{
  ...
  /* Info used when accessing registers with PTRACE_PEEKUSER /
     PTRACE_POKEUSER.  This can be NULL if all registers are
     transferred with regsets  .*/
  struct usrregs_info *usrregs;

that usrregs can be NULL if all registers are transferred with
regsets, which is exactly what aarch64-linux does.  This patch
is to set usrregs to NULL in regs_info and remove
aarch64_usrregs_info and aarch64_regmap.

gdb/gdbserver:

2015-07-09  Yao Qi  <yao.qi@linaro.org>

* linux-aarch64-low.c (aarch64_regmap): Remove.
(aarch64_usrregs_info): Remove.
(regs_info): Set field usrregs to NULL.

9 years agobtrace, pt: support new packets
Markus Metzger [Thu, 2 Jul 2015 13:16:09 +0000 (15:16 +0200)]
btrace, pt: support new packets

Add support for dumping new Intel(R) Processor Trace packets in the
"maint btrace packet-history" command.

gdb/
* btrace.c (pt_print_packet): Print stop, vmcs, tma, mtc, cyc, and
mnt packets.

9 years agobtrace: fix build fail with 32-bit BFD
Markus Metzger [Tue, 7 Jul 2015 11:54:34 +0000 (13:54 +0200)]
btrace: fix build fail with 32-bit BFD

When compiling GDB with 32-bit BFD, the build fails with:

In file included from btrace.h:33:0,
                 from btrace.c:23:
/usr/include/intel-pt.h:1643:51: note: expected 'int (*)(uint8_t *, size_t,
 const struct pt_asid *, uint64_t, void *)' but argument is of type 'int
 (*)(gdb_byte *, size_t, const struct pt_asid *, CORE_ADDR, void *)' extern
 pt_export int pt_image_set_callback(struct pt_image *image, ^

gdb/
* btrace.c (btrace_pt_readmem_callback): Change type of PC argument.

9 years agoAutomatic date update in version.in
GDB Administrator [Thu, 9 Jul 2015 00:00:07 +0000 (00:00 +0000)]
Automatic date update in version.in

9 years agoAdd missing spaces in previous patch
Simon Marchi [Wed, 8 Jul 2015 19:48:02 +0000 (15:48 -0400)]
Add missing spaces in previous patch

gdb/ChangeLog:

* progspace.c (delete_program_space): Add missing spaces.