Nick Clifton [Wed, 29 May 2013 14:58:35 +0000 (14:58 +0000)]
* dwarf2.c (struct dwarf2_debug): Add fields for handling
alternate debug info source.
(dwarf_debug_sections): Add entries for alternate .debug_str and
.debug_info sections.
(dwarf_debug_section_enum): Likewise.
(read_alt_indirect_string): New function. Handles a
DW_FORM_GNU_strp_alt attribute.
(read_alt_indirect_ref): New function. Handles a
DW_FORM_GNU_ref_alt attribute.
(read_attribute_value): Process DW_FORM_GNU_ref_alt and
DW_FORM_GNU_strp_alt.
(find_abstract_instance_name): Handle DW_FORM_GNU_ref_alt
attributes.
(_bfd_dwarf2_cleanup_debug_info): Free alternate debug info
sources.
* opncls.c (GNU_DEBUGALTLINK): Define.
(bfd_get_alt_debug_link_info): New function.
(separate_alt_debug_file_exists): New function.
(find_separate_debug_file): Add parameters for fetch and check
functions.
(bfd_follow_gnu_debugaltlink): New function.
* bfd-in2.h: Regenerate.
Pedro Alves [Wed, 29 May 2013 11:57:48 +0000 (11:57 +0000)]
[remote] Insert breakpoints in the right process.
I noticed that gdb.multi/multi-arch.exp wasn't passing with
extended-remote GDBserver with my pending multi-process+multi-arch
series anymore on current mainline, while it used to pass before:
(gdb) run
Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.multi/ma-hangout
Process /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.multi/ma-hangout created; pid = 32067
Warning:
Cannot insert breakpoint 2.
Error accessing memory address 0x4005c2: Unknown error -1.
Cannot insert breakpoint -1.
Temporarily disabling shared library breakpoints:
breakpoint #-1
(gdb) FAIL: gdb.multi/multi-arch.exp: starting inferior 2
Investigating manually, I found an easy way to reproduce. You just
need breakpoints on distinct inferiors, and a way to have GDB install
them in one go:
(gdb) set breakpoint always-inserted on
(gdb) info breakpoints
Num Type Disp Enb Address What
2 breakpoint del n <MULTIPLE>
2.1 y 0x00000000004005c2 in main at ../../../src/gdb/testsuite/gdb.multi/hello.c:40 inf 1
2.2 y 0x08048475 in main at ../../../src/gdb/testsuite/gdb.multi/hangout.c:22 inf 2
(gdb) enable 2
Warning:
Cannot insert breakpoint 2.
Error accessing memory address 0x4005c2: Unknown error -1.
And turning on remote debugging, we see:
(gdb) set debug remote 1
(gdb) disable 2
(gdb) enable 2
Sending packet: $Z0,4005c2,1#71...Packet received: E01
Sending packet: $Z0,8048475,1#87...Packet received: OK
Warning:
Cannot insert breakpoint 2.
Error accessing memory address 0x4005c2: Unknown error -1.
Notice that each of those Z0 breakpoints should be set in different
processes. However, no Hg packet to select a process has been sent in
between, so GDBserver tries to plant both on the same process that
happens to be current. The first Z0 then not so surprisingly fails.
IOW, the blame is on GDB, for telling GDBserver to plant both
breakpoints in the same process.
remote.c has a lazy scheme where it keeps a local cache of the
remote's selected general thread, and delays updating it on the remote
side until necessary (memory/register reads/writes, etc.). This is
done to reduce RSP traffic. The bug is that the Zx breakpoint
insert/remove methods weren't committing the selected thread/process
back to the remote side:
Breakpoint 3, remote_insert_breakpoint (gdbarch=0x1383ae0, bp_tgt=0x140c2b0) at ../../src/gdb/remote.c:8148
8148 if (remote_protocol_packets[PACKET_Z0].support != PACKET_DISABLE)
(top-gdb) p inferior_ptid
$3 = {pid = 3670, lwp = 0, tid = 3670}
(top-gdb) p general_thread
$4 = {pid = 3671, lwp = 0, tid = 3671}
IOW, a call to set_general_process is missing.
I did some auditing over remote.c, and added calls to all places I
found missing it.
This only used to work by chance before. breakpoint.c switches to a
thread of the target process before installing a breakpoint location.
That calls switch_to_thread. Before:
2012-07-27 Yao Qi <yao@codesourcery.com>
* thread.c (switch_to_thread): Don't call registers_changed.
that caused the register caches to all be flushed and refetched before
installing the breakpoint location. Given fetching registers commits
the remote general thread (with Hg), masking out the latent bug.
Tested on x86_64 Fedora 17 with GDBserver.
gdb/
2013-05-29 Pedro Alves <palves@redhat.com>
* remote.c (remote_insert_breakpoint, remote_remove_breakpoint)
(remote_insert_watchpoint, remote_remove_watchpoint)
(remote_insert_hw_breakpoint, remote_remove_hw_breakpoint)
(remote_verify_memory, compare_sections_command)
(remote_search_memory): Set the general process/thread on the
remote side.
Pedro Alves [Wed, 29 May 2013 09:18:48 +0000 (09:18 +0000)]
[AArch64] Remove all traces of aarch64-without-fpu.xml.
The aarch64-without-fpu description is unused.
Linux requires an FPU, so the AArch64 native port always returns the
with-fpu variant:
static const struct target_desc *
aarch64_linux_read_description (struct target_ops *ops)
{
initialize_tdesc_aarch64 ();
return tdesc_aarch64;
}
When the target doesn't report a target description at all, we
fallback to a register set with an FPU:
aarch64_gdbarch_init ()
...
if (!tdesc_has_registers (tdesc))
tdesc = tdesc_aarch64;
This just removes the dead description.
Tested by building on x86_64 Fedora 17 with --enable=targets=all.
gdb/
2013-05-29 Pedro Alves <palves@redhat.com>
* aarch64-tdep.c: Don't include "features/aarch64-without-fpu.c".
(_initialize_aarch64_tdep): Don't call
initialize_tdesc_aarch64_without_fpu.
* features/Makefile (WHICH): Remove reference to
aarch64-without-fpu.
* features/aarch64-without-fpu.c: Delete file.
* regformats/aarch64-without-fpu.dat: Delete file.
Cary Coutant [Wed, 29 May 2013 00:39:34 +0000 (00:39 +0000)]
binutils/
* dwarf.c (display_debug_lines_raw): Print section offsets.
binutils/testsuite/
* binutils-all/dw2-1.W: Adjust expected output.
* binutils-all/objdump.W: Likewise.
* binutils-all/i386/compressed-1a.d: Likewise.
* binutils-all/x86-64/compressed-1a.d: Likewise.
gas/testsuite/
* gas/cris/rd-dw2-1.d: Adjust expected output.
* gas/cris/rd-dw2-10.d: Likewise.
* gas/cris/rd-dw2-11.d: Likewise.
* gas/cris/rd-dw2-12.d: Likewise.
* gas/cris/rd-dw2-13.d: Likewise.
* gas/cris/rd-dw2-14.d: Likewise.
* gas/cris/rd-dw2-15.d: Likewise.
* gas/cris/rd-dw2-2.d: Likewise.
* gas/cris/rd-dw2-3.d: Likewise.
* gas/cris/rd-dw2-4.d: Likewise.
* gas/cris/rd-dw2-5.d: Likewise.
* gas/cris/rd-dw2-6.d: Likewise.
* gas/cris/rd-dw2-7.d: Likewise.
* gas/cris/rd-dw2-8.d: Likewise.
* gas/cris/rd-dw2-9.d: Likewise.
* gas/elf/dwarf2-1.d: Likewise.
* gas/elf/dwarf2-2.d: Likewise.
* gas/elf/dwarf2-3.d: Likewise.
* gas/i386/debug1.d: Likewise.
* gas/i386/dw2-compress-1.d: Likewise.
* gas/i386/ilp32/lns/lns-common-1.d: Likewise.
* gas/i386/ilp32/lns/lns-duplicate.d: Likewise.
* gas/ia64/pr13167.d: Likewise.
* gas/lns/lns-big-delta.d: Likewise.
* gas/lns/lns-common-1-alt.d: Likewise.
* gas/lns/lns-common-1.d: Likewise.
* gas/lns/lns-duplicate.d: Likewise.
* gas/mips/loc-swap-2.d: Likewise.
* gas/mips/loc-swap.d: Likewise.
* gas/mips/micromips@loc-swap-2.d: Likewise.
* gas/mips/micromips@loc-swap.d: Likewise.
* gas/mips/mips16-dwarf2-n32.d: Likewise.
* gas/mips/mips16-dwarf2.d: Likewise.
* gas/mips/mips16@loc-swap-2.d: Likewise.
* gas/mips/mips16@loc-swap.d: Likewise.
Alan Modra [Wed, 29 May 2013 00:00:04 +0000 (00:00 +0000)]
daily update
gdbadmin [Wed, 29 May 2013 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***
Maciej W. Rozycki [Tue, 28 May 2013 22:19:34 +0000 (22:19 +0000)]
gas/
* config/tc-mips.c (macro) <ld>: Don't use $zero for address
calculation.
gas/testsuite/
* gas/mips/ld-zero.d: New test.
* gas/mips/ld-zero-2.d: New test.
* gas/mips/ld-zero-3.d: New test.
* gas/mips/ld-zero-q.d: New test.
* gas/mips/ld-zero-u.d: New test.
* gas/mips/ecoff@ld-zero-3.d: New test.
* gas/mips/micromips@ld-zero-2.d: New test.
* gas/mips/micromips@ld-zero-3.d: New test.
* gas/mips/ld-zero.s: New test source.
* gas/mips/ld-zero-2.s: New test source.
* gas/mips/ld-zero-3.s: New test source.
* gas/mips/ld-zero-q.s: New test source.
* gas/mips/ld-zero-u.s: New test source.
* gas/mips/mips.exp: Run the new tests.
Yufeng Zhang [Tue, 28 May 2013 16:39:51 +0000 (16:39 +0000)]
Correct the relocation names for R_AARCH64_TLSDESC_LD_PREL19 and R_AARCH64_TLSDESC_ADR_PAGE21.
Kyrylo Tkachov [Tue, 28 May 2013 14:58:52 +0000 (14:58 +0000)]
gas/
2013-05-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/tc-arm.c (it_fsm_post_encode): Improve
warning messages about deprecated IT block formats.
gas/testsuite
2013-05-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* gas/arm/armv8-a-bad.l: Update expected warning message.
* gas/arm/armv8-a-it-bad.l: Likewise.
Pedro Alves [Tue, 28 May 2013 10:41:17 +0000 (10:41 +0000)]
[GDBserver][AArch64] Remove references to aarch64-without-fpu.xml.
The GDBserver Aarch64 port includes the aarch64-without-fpu
description in the build, but doesn't actually use it anywhere. As
Linux always requires an FPU, just remove the dead code.
gdb/gdbserver/
2013-05-28 Pedro Alves <palves@redhat.com>
* Makefile.in (clean): Remove reference to aarch64-without-fpu.c.
(aarch64-without-fpu.c): Delete rule.
* configure.srv (aarch64*-*-linux*): Remove references to
aarch64-without-fpu.o and aarch64-without-fpu.xml.
* linux-aarch64-low.c (init_registers_aarch64_without_fpu): Remove
declaration.
Marcus Shawcroft [Tue, 28 May 2013 09:43:42 +0000 (09:43 +0000)]
[AArch64] Range check only resolved relocations.
2013-05-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
* config/tc-aarch64.c (md_apply_fix): Move value range checking
inside fx_done condition.
2013-05-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
* gas/aarch64/adr_1.d: New file.
* gas/aarch64/adr_1.s: New file.
* gas/aarch64/b_1.d: New file.
* gas/aarch64/b_1.s: New file.
* gas/aarch64/beq_1.d: New file.
* gas/aarch64/beq_1.s: New file.
* gas/aarch64/ldr_1.d: New file.
* gas/aarch64/ldr_1.s: New file.
* gas/aarch64/tbz_1.d: New file.
* gas/aarch64/tbz_1.s: New file.
Yao Qi [Tue, 28 May 2013 02:55:04 +0000 (02:55 +0000)]
gdb/
* tracepoint.c (stringify_collection_list): Remove parameter
'string'.
(encode_actions): Caller update. Remove local variables.
Alan Modra [Tue, 28 May 2013 00:00:04 +0000 (00:00 +0000)]
daily update
gdbadmin [Tue, 28 May 2013 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***
Mark Wielaard [Mon, 27 May 2013 07:55:17 +0000 (07:55 +0000)]
bfd: Make bfd_cache_max_open depend on actual open file limit.
The current hard coded limit of open files in bfd/cache.c is 10. This
is pretty low these days. Binaries are often linked against much more
than 10 files (and sometimes against more than 100 shared libraries).
When debugging with GDB some files are opened and closed multiple
times because of this low limit. If possible make the BFD cache file
limit depend on the actual open file limit of the process so more BFD
files can be open at the same time.
* cache.c (BFD_CACHE_MAX_OPEN): Remove define.
(max_open_files): New static int initialized to zero.
(bfd_cache_max_open): New static function to set and return
max_open_files.
(bfd_cache_init): Use bfd_cache_max_open.
(bfd_open_file): Likewise.
* configure.in (AC_CHECK_HEADERS): Add sys/resource.h.
(AC_CHECK_FUNCS): Add getrlimit.
* configure: Regenerated.
* config.in: Likewise.
* sysdep.h: Check and include sys/resource.h for getrlimit.
Alan Modra [Mon, 27 May 2013 00:00:04 +0000 (00:00 +0000)]
daily update
gdbadmin [Mon, 27 May 2013 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Sun, 26 May 2013 00:00:04 +0000 (00:00 +0000)]
daily update
gdbadmin [Sun, 26 May 2013 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Sat, 25 May 2013 00:00:04 +0000 (00:00 +0000)]
daily update
gdbadmin [Sat, 25 May 2013 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Richard Sandiford [Fri, 24 May 2013 17:13:49 +0000 (17:13 +0000)]
opcodes/
* s390-opc.txt (flogr): Require a register pair destination.
gas/testsuite/
* gas/s390/zarch-z9-109-err.s, gas/s390/zarch-z9-109-err.l: New test.
* gas/s390/s390.exp: Run it.
Jan Kratochvil [Fri, 24 May 2013 15:37:25 +0000 (15:37 +0000)]
gdb/testsuite/
PR testsuite/12649
* gdb.mi/mi-dprintf.exp (mi_continue_dprintf) (mi 2nd dprintf): Replace
$mi_gdb_prompt expectation by mi_expect_stop.
(mi 1st dprintf, agent, mi 2nd dprintf, agent)
(mi info dprintf second time): Replace them by mi_send_resuming_command
and mi_expect_stop.
Gary Benson [Fri, 24 May 2013 14:02:35 +0000 (14:02 +0000)]
2013-05-24 Gary Benson <gbenson@redhat.com>
* gdb.base/solib-disc.exp (exec_opts): Remove unnecesary
backslash.
* gdb.base/unload.exp (exec_opts): Remove two unnecessary
backslashes.
* gdb.base/watchpoint-solib.exp (exec_opts): Remove unnecesary
backslash.
Yao Qi [Fri, 24 May 2013 12:27:39 +0000 (12:27 +0000)]
gdb/
* tracepoint.c (TFILE_PID): Remove.
(tfile_open): Don't add thread and inferior.
(tfile_close): Don't set 'inferior_ptid'. Don't call
exit_inferior_silent.
(tfile_thread_alive): Remove.
(init_tfile_ops): Don't set field 'to_thread_alive' of
tfile_ops.
gdb/testsuite/
* gdb.trace/tfile.exp: Test inferior and thread.
Pedro Alves [Fri, 24 May 2013 11:28:06 +0000 (11:28 +0000)]
[gdbserver] Don't assume vCont;r ADDR1,ADDR2 comes with a ptid attached.
This bit:
+ p1 = strchr (p, ':');
+ decode_address (&resume_info[i].step_range_end, p, p1 - p);
should not expect the ':' to be there. An action without a ptid is
valid:
"If an action is specified with no thread-id, then it is applied to any
threads that don't have a specific action specified"
This is handled further below:
if (p[0] == 0)
{
resume_info[i].thread = minus_one_ptid;
default_action = resume_info[i];
/* Note: we don't increment i here, we'll overwrite this entry
the next time through. */
}
else if (p[0] == ':')
A stub that doesn't support and report to gdb thread ids at all (like
metal metal targets) only will always only see a single default action
with no ptid.
Use unpack_varlen_hex instead of decode_address. The former doesn't
need to be told where the hex number ends, and it actually returns
that info instead, which we can use for validation.
Tested on x86_64 Fedora 17.
gdb/gdbserver/
2013-05-24 Pedro Alves <palves@redhat.com>
* server.c (handle_v_cont) <vCont;r>: Use unpack_varlen_hex
instead of strchr/decode_address. Error if the range isn't split
with a ','. Don't assume there's be a ':' in the action.
Yao Qi [Fri, 24 May 2013 09:57:12 +0000 (09:57 +0000)]
gdb/testsuite/
* gdb.base/range-stepping.exp: Skip the rest of tests if the
test fails.
* lib/range-stepping-support.exp (exec_cmd_expect_vCont_count):
Return 0 if the test passes, otherwise return 1.
Joel Brobecker [Fri, 24 May 2013 04:50:26 +0000 (04:50 +0000)]
Fix gdb.info build failure
gdb.texinfo:36367: `Installed System-wide Configuration Scripts' has no Up field (perhaps incorrect sectioning?).
gdb.texinfo:36367: warning: unreferenced node `Installed System-wide Configuration Scripts'.
gdb/doc/ChangeLog:
* gdb.texinfo (System-wide Configuration Scripts): Renames
"Installed System-wide Configuration Scripts". Add associated
@menu block.
Doug Evans [Fri, 24 May 2013 01:33:50 +0000 (01:33 +0000)]
Update to load fission.exp.
Doug Evans [Fri, 24 May 2013 01:30:05 +0000 (01:30 +0000)]
* boards/fission-dwp.exp: New file.
Doug Evans [Fri, 24 May 2013 00:30:24 +0000 (00:30 +0000)]
* contrib/cc-with-tweaks.sh (-p): Handle no dwo files.
Alan Modra [Fri, 24 May 2013 00:28:06 +0000 (00:28 +0000)]
* aarch64.c (aarch64_find_call): Promote to bfd_vma before sign
extending.
Alan Modra [Fri, 24 May 2013 00:00:05 +0000 (00:00 +0000)]
daily update
gdbadmin [Fri, 24 May 2013 00:00:02 +0000 (00:00 +0000)]
*** empty log message ***
Pedro Alves [Thu, 23 May 2013 18:37:00 +0000 (18:37 +0000)]
common/filestuff.c: No sockets on DJGPP.
Building gdb with --host=i586-pc-msdosdjgpp ends up with:
i586-pc-msdosdjgpp-gcc -g -O2 -I../../src/gdb/config/djgpp -I. -I../../src/gdb -I../../src/gdb/common -I../../src/gdb/config -DLOCALEDIR="\"/usr/local/share/locale\"" -DHAVE_CONFIG_H -I../../src/gdb/../include/opcode -I../../src/gdb/../opcodes/.. -I../../src/gdb/../readline/.. -I../bfd -I../../src/gdb/../bfd -I../../src/gdb/../include -I../libdecnumber -I../../src/gdb/../libdecnumber -I./../intl -I../../src/gdb/gnulib/import -Ibuild-gnulib/import -Wall -Wdeclaration-after-statement -Wpointer-arith -Wformat-nonliteral -Wpointer-sign -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wmissing-prototypes -Wdeclaration-after-statement -Wempty-body -Werror -c -o filestuff.o -MT filestuff.o -MMD -MP -MF .deps/filestuff.Tpo ../../src/gdb/common/filestuff.c
../../src/gdb/common/filestuff.c:38:24: fatal error: sys/socket.h: No such file or directory
There are no sockets on djgpp. This #ifdef's out the bits in the file
that use sockets, depending on whether winsock or sys/socket.h is
available.
As alternative approach, given ser-tcp.c, ser-pipe.c, etc. are split
into separate files, and which to use is selected by configure.ac:
dnl Figure out which of the many generic ser-*.c files the _host_ supports.
SER_HARDWIRE="ser-base.o ser-unix.o ser-pipe.o ser-tcp.o"
case ${host} in
*go32* ) SER_HARDWIRE=ser-go32.o ;;
*djgpp* ) SER_HARDWIRE=ser-go32.o ;;
*mingw32*) SER_HARDWIRE="ser-base.o ser-tcp.o ser-mingw.o" ;;
esac
AC_SUBST(SER_HARDWIRE)
... I considered splitting filestuff.c similarly. But I quickly gave
up on the idea, as it looked like a lot more complication over this
approach, for no real gain. Plus, there are uses of these functions
outside the ser*.c framework.
gdbserver's configure.ac is already checking for sys/socket.h.
gdb/
2013-05-23 Pedro Alves <palves@redhat.com>
* common/filestuff.c [USE_WIN32API]: Define HAVE_SOCKETS.
[HAVE_SYS_SOCKET_H]: Define HAVE_SOCKETS.
(socket_mark_cloexec, gdb_socketpair_cloexec, gdb_socket_cloexec):
Only define if HAVE_SOCKETS is defined.
* configure.ac: Check for sys/socket.h.
* config.in, configure: Regenerate.
Pedro Alves [Thu, 23 May 2013 18:31:29 +0000 (18:31 +0000)]
dwarf2read.c: Don't assume uint32_t is unsigned int on all hosts.
Building gdb on GNU/Linux, for --host=i586-pc-msdosdjgpp, I get:
../../src/gdb/dwarf2read.c: In function 'create_dwp_hash_table':
../../src/gdb/dwarf2read.c:8626:7: error: format '%u' expects argument of type 'unsigned int', but argument 2 has type 'uint32_t' [-Werror=format]
../../src/gdb/dwarf2read.c:8632:7: error: format '%u' expects argument of type 'unsigned int', but argument 2 has type 'uint32_t' [-Werror=format]
../../src/gdb/dwarf2read.c: In function 'create_dwo_in_dwp':
../../src/gdb/dwarf2read.c:8754:6: error: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'uint32_t' [-Werror=format]
../../src/gdb/dwarf2read.c: In function 'open_and_init_dwp_file':
../../src/gdb/dwarf2read.c:9248:6: error: format '%u' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Werror=format]
../../src/gdb/dwarf2read.c:9248:6: error: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Werror=format]
And:
$ grep uint32_t /usr/i586-pc-msdosdjgpp/sys-include/*
/usr/i586-pc-msdosdjgpp/sys-include/stdint.h:typedef unsigned long uint32_t;
As decided on the discussion at
<http://sourceware.org/ml/gdb-patches/2013-05/msg00788.html>, use
pulongest rather than PRIu32.
Tested on F17. Also confirmed GDB still builds OK with
--host=i686-w64-mingw32.
gdb/
2013-05-23 Pedro Alves <palves@redhat.com>
* dwarf2read.c (create_dwp_hash_table, create_dwo_in_dwp)
(open_and_init_dwp_file): Use %s/pulongest instead of %u for
printing uint32_t variables.
Pedro Alves [Thu, 23 May 2013 17:19:05 +0000 (17:19 +0000)]
range stepping: tests
This adds tests to verify range stepping is used as expected, by
inspecting the RSP traffic, looking for vCont;s and vCont;r packets.
gdb/testsuite/
2013-05-23 Yao Qi <yao@codesourcery.com>
Pedro Alves <palves@redhat.com>
* gdb.base/range-stepping.c: New file.
* gdb.base/range-stepping.exp: New file.
* gdb.trace/range-stepping.c: New file.
* gdb.trace/range-stepping.exp: New file.
* lib/range-stepping-support.exp: New file.
Pedro Alves [Thu, 23 May 2013 17:17:50 +0000 (17:17 +0000)]
range stepping: gdbserver (x86 GNU/Linux)
This patch adds support for range stepping to GDBserver, teaching it
about vCont;r.
It'd be easy to enable this for all hardware single-step targets
without needing the linux_target_ops hook, however, at least PPC needs
special care, due to the fact that PPC atomic sequences can't be
hardware single-stepped through, a thing which GDBserver doesn't know
about. So this leaves the support limited to x86/x86_64.
gdb/
2013-05-23 Pedro Alves <palves@redhat.com>
* NEWS: Mention GDBserver range stepping support.
gdb/gdbserver/
2013-05-23 Yao Qi <yao@codesourcery.com>
Pedro Alves <palves@redhat.com>
* linux-low.c (lwp_in_step_range): New function.
(linux_wait_1): If the thread was range stepping and stopped
outside the stepping range, report the stop to GDB. Otherwise,
continue stepping. Add range stepping debug output.
(linux_set_resume_request): Copy the step range from the resume
request to the lwp.
(linux_supports_range_stepping): New.
(linux_target_ops) <supports_range_stepping>: Set to
linux_supports_range_stepping.
* linux-low.h (struct linux_target_ops)
<supports_range_stepping>: New field.
(struct lwp_info) <step_range_start, step_range_end>: New fields.
* linux-x86-low.c (x86_supports_range_stepping): New.
(the_low_target) <supports_range_stepping>: Set to
x86_supports_range_stepping.
* server.c (handle_v_cont): Handle 'r' action.
(handle_v_requests): Append ";r" if the target supports range
stepping.
* target.h (struct thread_resume) <step_range_start,
step_range_end>: New fields.
(struct target_ops) <supports_range_stepping>:
New field.
(target_supports_range_stepping): New macro.
Pedro Alves [Thu, 23 May 2013 17:15:35 +0000 (17:15 +0000)]
range stepping: gdb
This patch teaches GDB to take advantage of target-assisted range
stepping. It adds a new 'r ADDR1,ADDR2' action to vCont (vCont;r),
meaning, "step once, and keep stepping as long as the thread is in the
[ADDR1,ADDR2) range".
Rationale:
When user issues the "step" command on the following line of source,
a = b + c + d * e - a;
GDB single-steps every single instruction until the program reaches a
new different line. E.g., on x86_64, that line compiles to:
0x08048434 <+65>: mov 0x1c(%esp),%eax
0x08048438 <+69>: mov 0x30(%esp),%edx
0x0804843c <+73>: add %eax,%edx
0x0804843e <+75>: mov 0x18(%esp),%eax
0x08048442 <+79>: imul 0x2c(%esp),%eax
0x08048447 <+84>: add %edx,%eax
0x08048449 <+86>: sub 0x34(%esp),%eax
0x0804844d <+90>: mov %eax,0x34(%esp)
0x08048451 <+94>: mov 0x1c(%esp),%eax
and the following is the RSP traffic between GDB and GDBserver:
--> vCont;s:p2e13.2e13;c
<-- T0505:
68efffbf;04:
30efffbf;08:
3c840408;thread:p2e13.2e13;core:1;
--> vCont;s:p2e13.2e13;c
<-- T0505:
68efffbf;04:
30efffbf;08:
3e840408;thread:p2e13.2e13;core:2;
--> vCont;s:p2e13.2e13;c
<-- T0505:
68efffbf;04:
30efffbf;08:
42840408;thread:p2e13.2e13;core:2;
--> vCont;s:p2e13.2e13;c
<-- T0505:
68efffbf;04:
30efffbf;08:
47840408;thread:p2e13.2e13;core:0;
--> vCont;s:p2e13.2e13;c
<-- T0505:
68efffbf;04:
30efffbf;08:
49840408;thread:p2e13.2e13;core:0;
--> vCont;s:p2e13.2e13;c
<-- T0505:
68efffbf;04:
30efffbf;08:
4d840408;thread:p2e13.2e13;core:0;
--> vCont;s:p2e13.2e13;c
<-- T0505:
68efffbf;04:
30efffbf;08:
51840408;thread:p2e13.2e13;core:0;
IOW, a lot of roundtrips between GDB and GDBserver.
If we add a new command to the RSP, meaning "keep stepping and don't
report a stop until the program goes out of the [0x08048434,
0x08048451) address range", then the RSP traffic can be reduced down
to:
--> vCont;r8048434,8048451:p2db0.2db0;c
<-- T0505:
68efffbf;04:
30efffbf;08:
51840408;thread:p2db0.2db0;core:1;
As number of packets is reduced dramatically, the performance of
stepping source lines is much improved.
In case something is wrong with range stepping on the stub side, the
debug info or even gdb, this adds a "set/show range-stepping" command
to be able to turn range stepping off.
gdb/
2013-05-23 Yao Qi <yao@codesourcery.com>
Pedro Alves <palves@redhat.com>
* gdbthread.h (struct thread_control_state) <may_range_step>: New
field.
* infcmd.c (step_once, until_next_command): Enable range stepping.
* infrun.c (displaced_step_prepare): Disable range stepping.
(resume): Disable range stepping if stepping over a breakpoint or
we have software watchpoints. If range stepping is enabled,
assert the thread is in the stepping range.
(clear_proceed_status_thread): Clear may_range_step.
(handle_inferior_event): Disable range stepping as soon as we know
the thread that hit the event. Re-enable it whenever we're going
to step with a step range.
* remote.c (struct vCont_action_support) <r>: New field.
(use_range_stepping): New global.
(remote_vcont_probe): Handle 'r' action.
(append_resumption): Append an 'r' action if the thread may range
step.
(show_range_stepping): New function.
(set_range_stepping): New function.
(_initialize_remote): Call add_setshow_boolean_cmd to register the
'set range-stepping' and 'show range-stepping' commands.
* NEWS: Mention range stepping, the new vCont;r action, and the
new "set/show range-stepping" commands.
gdb/doc/
2013-05-23 Yao Qi <yao@codesourcery.com>
Pedro Alves <palves@redhat.com>
* gdb.texinfo (Packets): Document 'vCont;r'.
(Continuing and Stepping): Document target-assisted range
stepping, and the 'set range-stepping' and 'show range-stepping'
commands.
Pedro Alves [Thu, 23 May 2013 17:13:57 +0000 (17:13 +0000)]
Convert rs->support_vCont_t to a struct.
Convert the 'support_vCont_t' int field to a struct, in preparation
for adding more fields to it.
gdb/
2013-05-23 Yao Qi <yao@codesourcery.com>
Pedro Alves <palves@redhat.com>
* remote.c (struct vCont_action_support): New struct.
(struct remote_state) <support_vCont_t>: Remove field.
<vCont_actions_support>: New field.
(remote_vcont_probe, remote_stop_ns): Update.
Pedro Alves [Thu, 23 May 2013 17:12:51 +0000 (17:12 +0000)]
Factor out in-stepping-range checks.
This adds a function for doing within-thread's-stepping-range checks,
and converts a couple spots to use it. Following patches will add
more uses.
gdb/
2013-05-23 Yao Qi <yao@codesourcery.com>
Pedro Alves <palves@redhat.com>
* gdbthread.h (pc_in_thread_step_range): New declaration.
* thread.c (pc_in_thread_step_range): New function.
* infrun.c (handle_inferior_event): Use it.
Andreas Krebbel [Thu, 23 May 2013 15:48:47 +0000 (15:48 +0000)]
2013-05-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* s390-opc.c: Fix length operand in RSL_LRDFU and RSL_LRDFEU
instruction format.
2013-05-23 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* gas/s390/zarch-zEC12.d: Adjust length operands for cdzt, cxzt,
czdt, and czxt.
* gas/s390/zarch-zEC12.d: Likewise.
Joel Brobecker [Thu, 23 May 2013 06:39:42 +0000 (06:39 +0000)]
mi/mi-cmd-break.c: Use xsnprintf instead of sprintf (ARI fix)
gdb/ChangeLog:
* mi/mi-cmd-break.c (mi_argv_to_format): Use xsnprintf instead
of sprintf.
Joel Brobecker [Thu, 23 May 2013 06:00:53 +0000 (06:00 +0000)]
Document new <data-dir>/system-gdbinit area
gdb/doc/ChangeLog:
* gdb.texinfo (Installed System-wide Configuration Scripts):
Add subsection describing the scripts now available under
the data-dir's system-gdbbinit subdirectory.
* NEWS: Add entry announcing the availability of system-wide
configuration scripts for ElinOS and Wind River Linux.
Alan Modra [Thu, 23 May 2013 03:35:59 +0000 (03:35 +0000)]
* format.c (bfd_check_format_matches): Don't match a target in
targ_selvecs if some other target is a better match. If
targets implement match priority, fall back to the first of
the best matches.
Alan Modra [Thu, 23 May 2013 00:00:05 +0000 (00:00 +0000)]
daily update
gdbadmin [Thu, 23 May 2013 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Keith Seitz [Wed, 22 May 2013 21:16:18 +0000 (21:16 +0000)]
* ada-lang.c (is_known_support_routine): Add explicit free of
'func_name' from find_frame_funname.
(ada_unhandled_exception_name_addr_from_raise): Add cleanups
for func_name from find_frame_funname.
* python/py-frame.c (frapy_name): Add explicit free of
'name' from find_frame_funname.
* stack.c (find_frame_funname): Add comment explaining that
funcp must be freed by the caller.
Return copy of symbol names instead of pointers.
(print_frame): Add a cleanup for 'funname' from
find_frame_funname.
* stack.h (find_frame_funname): Remove "const" from
'funname' parameter.
Tom Tromey [Wed, 22 May 2013 20:51:49 +0000 (20:51 +0000)]
PR c++/15401:
* c-valprint.c (c_value_print): Use value_addr for
references. Convert back to reference type with value_ref.
gdb/testsuite
* gdb.cp/class2.cc (main): New local 'aref'.
* gdb.cp/class2.exp: Check printing of 'aref'.
Richard Sandiford [Wed, 22 May 2013 18:08:26 +0000 (18:08 +0000)]
include/opcode/
2013-05-22 Jürgen Urban <JuergenUrban@gmx.de>
* mips.h (M_LQC2_AB, M_SQC2_AB): New macros.
opcodes/
2013-05-22 Jürgen Urban <JuergenUrban@gmx.de>
* mips-opc.c (mips_builtin_opcodes): Add R5900 VU0 instructions.
gas/
2013-05-22 Jürgen Urban <JuergenUrban@gmx.de>
* config/tc-mips.c (macro): Handle M_LQC2_AB and M_SQC2_AB.
gas/testsuite/
2013-05-22 Jürgen Urban <JuergenUrban@gmx.de>
* gas/mips/r5900-full.s, gas/mips/r5900-full.d: Add tests for LQ
and SQ macros.
* gas/mips/r5900-vu0.s, gas/mips/r5900-vu0.d: New test.
* gas/mips/mips.exp: Run it.
H.J. Lu [Wed, 22 May 2013 17:02:35 +0000 (17:02 +0000)]
Add EM_INTEL205 to EM_INTEL209
* common.h (EM_INTEL205): New.
(EM_INTEL206): Likewise.
(EM_INTEL207): Likewise.
(EM_INTEL208): Likewise.
(EM_INTEL209): Likewise.
Doug Evans [Wed, 22 May 2013 16:30:24 +0000 (16:30 +0000)]
* gdb.threads/wp-replication.c (main): Insert some code at the start
to ensure the breakpoint on main is only hit once. Fix comment.
Eli Zaretskii [Wed, 22 May 2013 16:18:12 +0000 (16:18 +0000)]
Fix reporting of DLL unload events on MS-Windows.
gdb/windows-nat.c (handle_unload_dll): Don't call solib_add for the
unloaded DLL, it will be done by handle_solib_event. See
http://sourceware.org/ml/gdb-patches/2013-05/msg00713.html for the
details.
Alan Modra [Wed, 22 May 2013 13:29:43 +0000 (13:29 +0000)]
* aarch64.c: New file.
* corefile.c (find_call): Call aarch64_find_call for bfd_arch_aarch64.
* Makefile.am (sources): Add aarch64.c.
* Makefile.in: Regenerate.
Phil Muldoon [Wed, 22 May 2013 12:27:13 +0000 (12:27 +0000)]
2013-05-22 Phil Muldoon <pmuldoon@redhat.com>
* ui-out.c: Create typedef ui_out_level_p and define vector
operations for that type.
(struct ui_out): Use a vector instead of an array.
(current_level): Return level from a vector.
(push_level): Create a level in a vector.
(pop_level): Delete a level in a vector.
(ui_out_new): Create initial level zero level, and store in a
vector.
(ui_out_destroy): Add vector cleanup.
Yao Qi [Wed, 22 May 2013 09:51:49 +0000 (09:51 +0000)]
readline/
* configure.in: Invoke AC_CANONICAL_BUILD.
Change $host_os to $build_os.
* configure: Regenerated.
Pedro Alves [Wed, 22 May 2013 09:31:44 +0000 (09:31 +0000)]
Let the ARI know gdb_Py_DECREF is OK.
The ARI complains with:
> gdb/python/python-internal.h:177: code: editCase function: Function name starts lower case but has uppercased letters.
gdb/python/python-internal.h:177:gdb_Py_DECREF (void *op)
gdb_Py_DECREF is just wrapping a python macro that happens to be mixed case.
gdb/
2013-05-22 Pedro Alves <palves@redhat.com>
* python/python-internal.h (gdb_Py_DECREF): Tag with
"ARI: editCase function".
Alan Modra [Wed, 22 May 2013 08:39:52 +0000 (08:39 +0000)]
PR binutils/15462
* elfxx-mips.c (_bfd_mips_elf_relocate_section): Warning fix.
Alan Modra [Wed, 22 May 2013 06:13:59 +0000 (06:13 +0000)]
PR binutils/15474
* srec.c (srec_set_section_contents): Properly convert size
and offset to address when octets_per_byte is not unity.
Alan Modra [Wed, 22 May 2013 00:00:05 +0000 (00:00 +0000)]
daily update
gdbadmin [Wed, 22 May 2013 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Paul Pluzhnikov [Tue, 21 May 2013 23:41:29 +0000 (23:41 +0000)]
2013-05-21 Paul Pluzhnikov <ppluzhnikov@google.com>
* solib-svr4.c (svr4_free_so): Protect against NULL dereference.
Cary Coutant [Tue, 21 May 2013 21:14:40 +0000 (21:14 +0000)]
gold/
* symtab.h (Symbol::is_cxx_vtable): New function.
* target-reloc.h (relocate_section): Check for vtable symbol.
* testsuite/Makefile.am (missing_key_func.sh): New test case.
* testsuite/Makefile.in: Regenerate.
* testsuite/missing_key_func.cc: New test source.
* testsuite/missing_key_func.sh: New test script.
Cary Coutant [Tue, 21 May 2013 20:56:13 +0000 (20:56 +0000)]
gold/
* object.cc (Sized_relobj_file::get_symbol_location_info): Set
type of enclosing symbol.
(Relocate_info::location): Check symbol type when describing symbol.
* object.h (Symbol_location_info): Remove unused line_number;
add enclosing_symbol_type.
* testsuite/debug_msg.sh: Adjust expected output.
Pedro Alves [Tue, 21 May 2013 20:53:21 +0000 (20:53 +0000)]
py_decref: Don't check for NULL before calling Py_DECREF.
The only difference between Py_DECREF and Py_XDECREF is that the latter allows passing
in a NULL object, while the former prohibits it. Given that, it's natural to expect
the same from py_decref vs py_xdecref.
gdb/
2013-05-21 Pedro Alves <palves@redhat.com>
* python/py-prettyprint.c (apply_val_pretty_printer): Check
whether PRINTER is NULL before installing a Py_DECREF cleanup.
* python/py-utils.c (py_decref): Don't check for NULL before
calling Py_DECREF.
Pedro Alves [Tue, 21 May 2013 20:52:30 +0000 (20:52 +0000)]
Centralize workaround for Python 2.6's Py_DECREF.
Wrap/redefine Py_DECREF ourselves, avoiding the need for uses to care
about extra braces due to the fact that Python only started wrapping Py_DECREF
in 'do {} while (0)' after 2.6.
gdb/
2013-05-21 Pedro Alves <palves@redhat.com>
* python/py-utils.c (py_decref): Remove extra braces.
(gdb_pymodule_addobject): Remove extra braces.
* python-internal.h (gdb_Py_DECREF): New static inline function.
(Py_DECREF): Redefine as calling gdb_Py_DECREF.
Keith Seitz [Tue, 21 May 2013 19:11:50 +0000 (19:11 +0000)]
* gdb.base/filesym.exp: Use gdb_test_multiple instead of
gdb_expect.
Add test to flush the remaining input buffer so that this
file passes testsuite/12649.
Philippe Waroquiers [Tue, 21 May 2013 18:47:05 +0000 (18:47 +0000)]
Fix internal error caused by interaction between catch signal and fork
Sterling Augustine [Tue, 21 May 2013 17:58:46 +0000 (17:58 +0000)]
2013-05-21 Sterling Augustine <saugustine@google.com>
* boards/remote-stdio-gdbserver.exp: New file.
Jan Kratochvil [Tue, 21 May 2013 15:02:28 +0000 (15:02 +0000)]
gdb/
Workaround Python 2.6.
* python/py-utils.c (gdb_pymodule_addobject): Wrap Py_DECREF into
a block.
Jan Kratochvil [Tue, 21 May 2013 15:00:32 +0000 (15:00 +0000)]
gdb/testsuite/
PR testsuite/12649
* gdb.mi/mi-dprintf.exp (mi_continue_dprintf): Fix expect strings for
racy matches.
Jan Kratochvil [Tue, 21 May 2013 08:16:10 +0000 (08:16 +0000)]
gdb/
Code cleanup: constification.
* solib.c (solib_ops): Make return type and ops variable type const.
(set_solib_ops): Make the new_ops parameter and ops variable const.
(solib_find, solib_map_sections, clear_so, free_so, update_solib_list)
(solib_add, solib_keep_data_in_core, clear_solib)
(solib_create_inferior_hook, in_solib_dynsym_resolve_code)
(reload_shared_libraries, solib_global_lookup): Make the ops variable
const.
* solib.h (set_solib_ops): Make the new_ops parameter const.
Christian Groessler [Tue, 21 May 2013 07:25:51 +0000 (07:25 +0000)]
* gdb.dwarf2/dw2-dir-file-name.exp: Don't use brace expansion,
since it's not supported in all shells.
Alan Modra [Tue, 21 May 2013 07:15:22 +0000 (07:15 +0000)]
PR ld/12982
* ld-plugin/pr12982.d: Fail if RWE GNU_STACK present.
Joel Brobecker [Tue, 21 May 2013 06:50:12 +0000 (06:50 +0000)]
Add new system-gdbinit infrastructure
gdb/ChangeLog:
* data-directory/Makefile.in (SYSTEM_GDBINIT_SRCDIR): New
variable.
(VPATH): Add SYSTEM_GDBINIT_SRCDIR.
(SYSTEM_GDBINIT_DIR, SYSTEM_GDBINIT_INSTALL_DIR)
(SYSTEM_GDBINIT_FILES): New variables.
(all): Add stamp-system-gdbinit.
(stamp-system-gdbinit): New rule.
(clean-system-gdbinit, install-system-gdbinit)
(uninstall-system-gdbinit): New rules. Make them .PHONY.
(install-only): Add dependency on install-system-gdbinit.
(uninstall): Add dependency on uninstall-system-gdbinit.
(clean): Add dependency on clean-system-gdbinit.
* system-gdbinit/elinos.py: New file.
* system-gdbinit/wrs-linux.py: New file.
Joel Brobecker [Tue, 21 May 2013 05:41:31 +0000 (05:41 +0000)]
[Ada] Fix cleanup leak in ada-lang.c:old_renaming_is_invisible
gdb/ChangeLog:
* ada-lang.c (old_renaming_is_invisible): Fix cleanup leak.
Hui Zhu [Tue, 21 May 2013 04:18:55 +0000 (04:18 +0000)]
2013-05-21 Hui Zhu <hui@codesourcery.com>
* breakpoint.c (dprintf_breakpoint_ops): Remove its static.
* breakpoint.h (dprintf_breakpoint_ops): Add extern.
* mi/mi-cmd-break.c (ctype.h): New include.
(gdb_obstack.h): New include.
(mi_argv_to_format, mi_cmd_break_insert_1): New.
(mi_cmd_break_insert): Call mi_cmd_break_insert_1.
(mi_cmd_dprintf_insert): New.
* mi/mi-cmds.c (mi_cmds): Add "dprintf-insert".
* mi/mi-cmds.h (mi_cmd_dprintf_insert): New extern.
2013-05-21 Hui Zhu <hui@codesourcery.com>
* gdb.texinfo (GDB/MI Breakpoint Commands): Describe the
"-dprintf-insert" command.
2013-05-21 Hui Zhu <hui@codesourcery.com>
* gdb.mi/Makefile.in (PROGS): Add "mi-dprintf".
* gdb.mi/mi-dprintf.exp, gdb.mi/mi-dprintf.c: New.
Alan Modra [Tue, 21 May 2013 03:26:18 +0000 (03:26 +0000)]
* gas/ppc/vsx2.d: Ignore trailing padding.
Alan Modra [Tue, 21 May 2013 01:37:41 +0000 (01:37 +0000)]
* ld-powerpc/export-class.exp (supports_ppc64): Delete.
(powerpc_export_class_test): Add "endian" param.
(abis): Add little-endian targets and test.
* ld-powerpc/powerpc-64-export-class.xd: Update for little-endian.
Peter Bergner [Tue, 21 May 2013 01:36:46 +0000 (01:36 +0000)]
opcodes/
* ppc-dis.c (powerpc_init_dialect): Set default dialect to power8.
* ppc-opc.c (BHRBE, ST, SIX, PS, SXL, VXPS_MASK, XX1RB_MASK,
XLS_MASK, PPCVSX2): New defines.
(powerpc_opcodes) <bcdadd., bcdsub., bctar, bctar, bctarl, clrbhrb,
fmrgew, fmrgow, lqarx, lxsiwax, lxsiwzx, lxsspx, mfbhrbe,
mffprd, mffprwz, mfvrd, mfvrwz, mfvsrd, mfvsrwz, msgclrp, msgsndp,
mtfprd, mtfprwa, mtfprwz, mtsle, mtvrd, mtvrwa, mtvrwz, mtvsrd,
mtvsrwa, mtvsrwz, pbt., rfebb, stqcx., stxsiwx, stxsspx,
vaddcuq, vaddecuq, vaddeuqm, vaddudm, vadduqm, vbpermq, vcipher,
vcipherlast, vclzb, vclzd, vclzh, vclzw, vcmpequd, vcmpequd.,
vcmpgtsd, vcmpgtsd., vcmpgtud, vcmpgtud., veqv, vgbbd, vmaxsd,
vmaxud, vminsd, vminud, vmrgew, vmrgow, vmulesw, vmuleuw, vmulosw,
vmulouw, vmuluwm, vnand, vncipher, vncipherlast, vorc, vpermxor,
vpksdss, vpksdus, vpkudum, vpkudus, vpmsumb, vpmsumd, vpmsumh,
vpmsumw, vpopcntb, vpopcntd, vpopcnth, vpopcntw, vrld, vsbox,
vshasigmad, vshasigmaw, vsld, vsrad, vsrd, vsubcuq, vsubecuq,
vsubeuqm, vsubudm, vsubuqm, vupkhsw, vupklsw, waitasec, xsaddsp,
xscvdpspn, xscvspdpn, xscvsxdsp, xscvuxdsp, xsdivsp, xsmaddasp,
xsmaddmsp, xsmsubasp, xsmsubmsp, xsmulsp, xsnmaddasp, xsnmaddmsp,
xsnmsubasp, xsnmsubmsp, xsresp, xsrsp, xsrsqrtesp, xssqrtsp,
xssubsp, xxleqv, xxlnand, xxlorc>: New instructions.
<lxvx, stxvx>: New extended mnemonics.
gas/
* config/tc-ppc.c (ppc_setup_opcodes): Use new_seg to fix error
and clean up warning when using PRINT_OPCODE_TABLE.
gas/testsuite/
* gas/ppc/altivec2.d <bcdadd., bcdadd., vaddcuq, vaddecuq, vaddeuqm,
vaddudm, vadduqm, vbpermq, vcipher, vcipherlast, vclzb, vclzd, vclzh,
vclzw, vcmpequd, vcmpequd., vcmpgtsd, vcmpgtsd., vcmpgtud, vcmpgtud.,
veqv, vgbbd, vmaxsd, vmaxud, vminsd, vminud, vmrgew, vmrgow, vmulesw,
vmuleuw, vmulosw, vmulouw, vmuluwm, vnand, vncipher, vncipherlast,
vorc, vpermxor, vpksdss, vpksdus, vpkudum, vpkudus, vpmsumb, vpmsumd,
vpmsumh, vpmsumw, vpopcntb, vpopcntd, vpopcnth, vpopcntw, vrld, vsbox,
vshasigmad, vshasigmaw, vsld, vsrad, vsrd, vsubcuq, vsubecuq, vsubeuqm,
vsubudm, vsubuqm, vupkhsw, vupklsw>: Add new tests.
* gas/ppc/altivec2.s: Likewise.
* gas/ppc/power8.d <bcdadd., bcdsub., bctar, bctarl, clrbhrb, fmrgew,
fmrgow, lqarx, lxsiwax, lxsiwzx, lxsspx, mfbhrbe, mfvsrd, mfvsrwz,
msgclrp, msgsndp, mtsle, mtvsrd, mtvsrwa, mtvsrwz, pbt., rfebb,
stqcx., stxsiwx, stxsspx, vaddcuq, vaddecuq, vaddeuqm, vaddudm,
vadduqm, vbpermq, vcipher, vcipherlast, vclzb, vclzd, vclzh, vclzw,
vcmpequd, vcmpequd., vcmpgtsd, vcmpgtsd., vcmpgtud, vcmpgtud., veqv,
vgbbd, vmaxsd, vmaxud, vminsd, vminud, vmrgow, vmulesw, vmuleuw,
vmulosw, vmulouw, vmuluwm, vnand, vncipher, vncipherlast, vorc,
vpermxor, vpksdss, vpksdus, vpkudum, vpkudus, vpmsumb, vpmsumd,
vpmsumh, vpmsumw, vpopcntb, vpopcntd, vpopcnth, vpopcntw, vrld, vsbox,
vshasigmad, vshasigmaw, vsld, vsrad, vsrd, vsubcuq, vsubecuq, vsubeuqm,
vsubuqm, vupkhsw, vupklsw, waitasec, xsaddsp, xscvdpspn, xscvspdpn,
xscvsxdsp, xscvuxdsp, xsdivsp, xsmaddasp, xsmaddmsp, xsmsubasp,
xsmsubmsp, xsmulsp, xsnmaddasp, xsnmaddmsp, xsnmsubasp, xsnmsubmsp,
xsresp, xsrsp, xsrsqrtesp, xssqrtsp, xssubsp, xxleqv, xxlnand,
xxlorc>: Add new tests.
* gas/ppc/power8.s Likewise.
* gas/ppc/vsx.d <lxvd2x, stxvd2x>: Add new tests.
* gas/ppc/vsx.s Likewise.
* gas/ppc/vsx2.d: New test file.
* gas/ppc/vsx2.s: Likewise.
* gas/ppc/ppc.exp: Run it.
gdbadmin [Tue, 21 May 2013 00:00:32 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Tue, 21 May 2013 00:00:04 +0000 (00:00 +0000)]
daily update
Maciej W. Rozycki [Mon, 20 May 2013 23:28:32 +0000 (23:28 +0000)]
* elf32-vax.c (elf_vax_instantiate_got_entries): Only set the
refcount member of the gotplt_union when resetting the reference
count. Adjust comment.
Doug Evans [Mon, 20 May 2013 22:11:37 +0000 (22:11 +0000)]
* lib/dwarf.exp (Dwarf): New variable _abbrev_section.
(_handle_DW_TAG): Use it.
(cu, tu): Replace parameters is_64, version, addr_size with options.
All callers updated. Add Fission support.
* gdb.dwarf2/implptrconst.exp: Update callers of "cu".
* gdb.dwarf2/method-ptr.exp: Ditto.
* gdb.dwarf2/nostaticblock.exp: Ditto.
* gdb.dwarf2/subrange.exp: Ditto.
* gdb.dwarf2/missing-sig-type.exp: Update callers of "cu", "tu".
Tom Tromey [Mon, 20 May 2013 20:43:28 +0000 (20:43 +0000)]
* gdb.gdb/python-selftest.exp: New file.
Tom Tromey [Mon, 20 May 2013 20:39:31 +0000 (20:39 +0000)]
* python/py-prettyprint.c (search_pp_list): Decref 'attr'.
Tom Tromey [Mon, 20 May 2013 20:38:47 +0000 (20:38 +0000)]
* python/py-value.c (valpy_get_dynamic_type): Simplify
dynamic_type assignment. Use Py_XINCREF.
Tom Tromey [Mon, 20 May 2013 20:37:48 +0000 (20:37 +0000)]
* python/py-type.c (typy_fields): Unconditionally decref 'r'.
Tom Tromey [Mon, 20 May 2013 20:37:06 +0000 (20:37 +0000)]
* python/py-frame.c (frapy_older, frapy_newer, gdbpy_newest_frame)
(gdbpy_selected_frame): Move object-construction code
out of TRY_CATCH.
Tom Tromey [Mon, 20 May 2013 20:36:19 +0000 (20:36 +0000)]
* python/py-arch.c (gdbpy_initialize_arch): Use
gdb_pymodule_addobject.
* python/py-block.c (gdbpy_initialize_blocks): Use
gdb_pymodule_addobject.
* python/py-breakpoint.c (gdbpy_initialize_breakpoints): Use
gdb_pymodule_addobject.
* python/py-cmd.c (gdbpy_initialize_breakpoints): Use
gdb_pymodule_addobject.
* python/py-event.c (gdbpy_initialize_event_generic): Use
gdb_pymodule_addobject.
* python/py-evtregistry.c (gdbpy_initialize_eventregistry): Use
gdb_pymodule_addobject.
* python/py-evts.c (add_new_registry): Use
gdb_pymodule_addobject.
(gdbpy_initialize_py_events): Likewise.
* python/py-finishbreakpoint.c
(gdbpy_initialize_finishbreakpoints): Use
gdb_pymodule_addobject.
* python/py-frame.c (gdbpy_initialize_frames): Use
gdb_pymodule_addobject.
* python/py-function.c (gdbpy_initialize_functions): Use
gdb_pymodule_addobject.
* python/py-inferior.c (gdbpy_initialize_inferior): Use
gdb_pymodule_addobject.
* python/py-infthread.c (gdbpy_initialize_thread): Use
gdb_pymodule_addobject.
* python/py-objfile.c (gdbpy_initialize_objfile): Use
gdb_pymodule_addobject.
* python/py-param.c (gdbpy_initialize_parameters): Use
gdb_pymodule_addobject.
* python/py-progspace.c (gdbpy_initialize_pspace): Use
gdb_pymodule_addobject.
* python/py-symbol.c (gdbpy_initialize_symbols): Use
gdb_pymodule_addobject.
* python/py-symtab.c (gdbpy_initialize_symtabs): Use
gdb_pymodule_addobject.
* python/py-type.c (gdbpy_initialize_types): Use
gdb_pymodule_addobject.
* python/py-utils.c (gdb_pymodule_addobject): New function.
* python/py-value.c (gdbpy_initialize_values): Use
gdb_pymodule_addobject.
* python/python-internal.h (gdb_pymodule_addobject): Declare.
* python/python.c (_initialize_python): Use
gdb_pymodule_addobject.
Tom Tromey [Mon, 20 May 2013 20:34:49 +0000 (20:34 +0000)]
* python/py-cmd.c (cmdpy_completer): Use explicit decref.
* python/py-param.c (get_set_value, get_show_value): Use
explicit decrefs.
* python/python.c (start_type_printers, apply_type_printers):
Use explicit decrefs.
Tom Tromey [Mon, 20 May 2013 20:34:11 +0000 (20:34 +0000)]
* python/py-evts.c (gdbpy_initialize_py_events): Don't
incref the module.
Tom Tromey [Mon, 20 May 2013 20:32:56 +0000 (20:32 +0000)]
* python/python.c (gdbpy_run_events): Decref the result
of PyObject_CallObject.
Tom Tromey [Mon, 20 May 2013 20:31:18 +0000 (20:31 +0000)]
* python/py-symtab.c (set_sal): Use
CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION. Return -1 on error.
(symtab_and_line_to_sal_object): Update.
Tom Tromey [Mon, 20 May 2013 20:30:24 +0000 (20:30 +0000)]
* python/py-param.c (compute_enum_values): Decref 'item'.
Tom Tromey [Mon, 20 May 2013 20:29:44 +0000 (20:29 +0000)]
* mi/mi-main.c: Include python-internal.h.
(mi_cmd_list_features): Check gdb_python_initialized.
* python/py-inferior.c (python_on_normal_stop, python_on_resume)
(python_inferior_exit, python_new_objfile, add_thread_object)
(delete_thread_object, py_free_inferior): Check
gdb_python_initialized.
* python/py-prettyprint.c (apply_val_pretty_printer): Check
gdb_python_initialized.
* python/py-type.c (save_objfile_types): Check
gdb_python_initialized.
* python/python-internal.h (gdb_python_initialized): Declare.
* python/python.c (ensure_python_env): Throw exception if
Python not initialized.
(before_prompt_hook, source_python_script_for_objfile)
(start_type_printers, apply_type_printers,
free_type_printers): Check gdb_python_initialized.
* varobj.c (varobj_get_display_hint)
(dynamic_varobj_has_child_method, update_dynamic_varobj_children)
(install_new_value_visualizer, varobj_set_visualizer)
(value_get_print_value): Check gdb_python_initialized.
Tom Tromey [Mon, 20 May 2013 20:28:52 +0000 (20:28 +0000)]
* python/py-arch.c (gdbpy_initialize_arch): Return 'int'.
Check errors.
* python/py-auto-load.c (gdbpy_initialize_auto_load): Return 'int'.
* python/py-block.c (gdbpy_initialize_blocks): Return 'int'.
Check errors.
* python/py-breakpoint.c (gdbpy_initialize_breakpoints): Return 'int'.
Check errors.
* python/py-cmd.c (gdbpy_initialize_commands): Return 'int'.
Check errors.
* python/py-event.c (gdbpy_initialize_event): Return 'int'.
Check errors.
* python/py-event.h (GDBPY_NEW_EVENT_TYPE): Change generated
init function to return 'int'.
* python/py-evtregistry.c (gdbpy_initialize_eventregistry):
Return 'int'. Check errors.
* python/py-evts.c (gdbpy_initialize_py_events): Return 'int'.
Check errors.
* python/py-finishbreakpoint.c (gdbpy_initialize_finishbreakpoints):
Return 'int'. Check errors.
* python/py-frame.c (gdbpy_initialize_frames): Return 'int'.
Check errors.
* python/py-function.c (gdbpy_initialize_functions): Return 'int'.
Check errors.
* python/py-gdb-readline.c (gdbpy_initialize_gdb_readline):
Check errors.
* python/py-inferior.c (gdbpy_initialize_inferior): Return 'int'.
Check errors.
* python/py-infthread.c (gdbpy_initialize_thread): Return 'int'.
Check errors.
* python/py-lazy-string.c (gdbpy_initialize_lazy_string): Return 'int'.
Check errors.
* python/py-objfile.c (gdbpy_initialize_objfile): Return 'int'.
Check errors.
* python/py-param.c (gdbpy_initialize_parameters): Return 'int'.
Check errors.
* python/py-progspace.c (gdbpy_initialize_pspace): Return 'int'.
Check errors.
* python/py-symbol.c (gdbpy_initialize_symbols): Return 'int'.
Check errors.
* python/py-symtab.c (gdbpy_initialize_symtabs): Return 'int'.
Check errors.
* python/py-type.c (gdbpy_initialize_types): Return 'int'.
Check errors.
* python/py-value.c (gdbpy_initialize_values): Return 'int'.
Check errors.
* python/python-internal.h (gdbpy_initialize_auto_load,
gdbpy_initialize_values, gdbpy_initialize_frames,
gdbpy_initialize_symtabs, gdbpy_initialize_commands,
gdbpy_initialize_symbols, gdbpy_initialize_symtabs,
gdbpy_initialize_blocks, gdbpy_initialize_types,
gdbpy_initialize_functions, gdbpy_initialize_pspace,
gdbpy_initialize_objfile, gdbpy_initialize_breakpoints,
gdbpy_initialize_finishbreakpoints,
gdbpy_initialize_lazy_string, gdbpy_initialize_parameters,
gdbpy_initialize_thread, gdbpy_initialize_inferior,
gdbpy_initialize_eventregistry, gdbpy_initialize_event,
gdbpy_initialize_py_events, gdbpy_initialize_stop_event,
gdbpy_initialize_signal_event,
gdbpy_initialize_breakpoint_event,
gdbpy_initialize_continue_event,
gdbpy_initialize_exited_event, gdbpy_initialize_thread_event,
gdbpy_initialize_new_objfile_event, gdbpy_initialize_arch):
Update. Use CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION.
* python/python.c (gdb_python_initialized): New global.
(gdbpy_initialize_events): Return 'int'. Check errors.
(_initialize_python): Check errors. Set
gdb_python_initialized.
Tom Tromey [Mon, 20 May 2013 20:27:44 +0000 (20:27 +0000)]
* python/py-finishbreakpoint.c (bpfinishpy_out_of_scope):
Decref the reslut of PyObject_CallMethod.
Tom Tromey [Mon, 20 May 2013 20:26:39 +0000 (20:26 +0000)]
* python/py-event.c (gdbpy_initialize_event_generic): Return
early if PyType_Ready fails.
Tom Tromey [Mon, 20 May 2013 20:25:40 +0000 (20:25 +0000)]
* python/py-type.c (make_fielditem): Add gdb_assert_not_reached
as 'default' in the switch.