Tom Tromey [Mon, 13 May 2013 16:51:52 +0000 (16:51 +0000)]
PR exp/15364:
* eval.c (evaluate_subexp_standard) <STRUCTOP_STRUCT,
STRUCTOP_PTR>: Return a not_lval value for
EVAL_AVOID_SIDE_EFFECTS.
* opencl-lang.c (evaluate_subexp_opencl): Return a not_lval value
for EVAL_AVOID_SIDE_EFFECTS.
gdb/testsuite
* gdb.base/exprs.exp (test_expr): Add regression test.
* gdb.base/exprs.c (null_t_struct): New global.
What happens, when the function is marked as prototyped, is that
GDB finds that the argument is a float, casts the value given in
the expression to a float, and then gives that float to ppc-aix/
ppc-lynx178's push_dummy_call gdbarch routine. The latter then blindly
copies it as is in the first floating-point register, instead of
making sure that it has the proper format first.
gdb/ChangeLog:
* rs6000-aix-tdep.c (rs6000_push_dummy_call): Convert
floating point registers to register type before storing
value.
* rs6000-lynx178-tdep.c (rs6000_lynx178_push_dummy_call):
Likewise.
Muhammad Bilal [Mon, 13 May 2013 08:49:23 +0000 (08:49 +0000)]
* History saving should stay disabled for test cases *
I saw some test cases in gdb.base/default.exp and gdb.base/setshow.exp
are enabling the history saving.
Hence .gdb_history file is modified with history information even
though, by default, we have History saving disabled.
So we should modify GDB test cases so that history saving should stay
off for all test cases.
ChangeLog:
2013-05-13 Muhammad Bilal <mbilal@codesourcery.com>
* gdb.base/default.exp: Disable history saving.
* gdb.base/setshow.exp: Likewise.
Pedro Alves [Fri, 10 May 2013 13:59:45 +0000 (13:59 +0000)]
PR remote/15455 - QTro remote packet broken
In the function remote_trace_set_readonly_regions in gdb/remote.c, the
local variable 'offset' does not account for "QTro" at the start of
the packet with the result that if there are any read-only regions,
the packet is sent -- but without the "QTro" -- causing the remote
stub to report that the packet is unsupported:
We don't see the problem when testing with GDBserver, as that supports
qXfer:trace-frame-info:read, meaning GDBserver never needs to read
from the read-only sections directly itself. This commit adds a test
that explicitly disables qXfer:trace-frame-info:read.
gdb/
2013-05-10 David Taylor <dtaylor@emc.com>
PR remote/15455
* remote.c (remote_trace_set_readonly_regions): Do not overwrite
"QTro" at start of packet.
gdb/testsuite/
2013-05-10 Pedro Alves <palves@redhat.com>
PR remote/15455
* gdb.trace/qtro.c: New file.
* gdb.trace/qtro.exp: New file.
Joel Brobecker [Fri, 10 May 2013 12:10:20 +0000 (12:10 +0000)]
move sparc-sol-thread.c back into sol-thread.c.
The routines in sparc-sol-thread used to be SPARC-specific (and
documented as such in the ptrace man page), and therefore hosting them
in a sparc-specific file made sense. However, newer versions of
Solaris now use those callbacks (Solaris 10 Update 10, apparently),
and thus the note about these callbacks being specific to SPARC
was removed.
So this patch deletes sparc-sol-thread.c and moves the code back
inside sol-thread.c.
gas/ChangeLog:
* config/tc-mips.c (struct mips_set_options): New ase_virt field.
(mips_opts): Update for the new field.
(file_ase_virt): New variable.
(ISA_SUPPORTS_VIRT_ASE): New macro.
(ISA_SUPPORTS_VIRT64_ASE): New macro.
(MIPS_CPU_ASE_VIRT): New define.
(is_opcode_valid): Handle ase_virt.
(macro_build): Handle "+J".
(validate_mips_insn): Likewise.
(mips_ip): Likewise.
(enum options): Add OPTION_VIRT and OPTION_NO_VIRT.
(md_longopts): Add mvirt and mnovirt
(md_parse_option): Handle OPTION_VIRT and OPTION_NO_VIRT.
(mips_after_parse_args): Handle ase_virt field.
(s_mipsset): Handle "virt" and "novirt".
(mips_elf_final_processing): Add a comment about virt ASE might need a new flag.
(md_show_usage): Print out the usage of -mvirt and mno-virt options.
* doc/c-mips.texi: Document -mvirt and -mno-virt.
Document ".set virt" and ".set novirt".
gas/testsuite/ChangeLog:
* gas/mips/mips.exp: Run virt and virt64 testcases.
* gas/mips/virt.d: New file.
* gas/mips/virt.s: New file.
* gas/mips/virt64.d: New file.
* gas/mips/virt64.s: New file.
include/opcode/ChangeLog:
* mips.h (OP_MASK_CODE10): Correct definition.
(OP_SH_CODE10): Likewise.
Add a comment that "+J" is used now for OP_*CODE10.
(INSN_ASE_MASK): Update.
(INSN_VIRT): New macro.
(INSN_VIRT64): New macro
opcodes/ChangeLog:
* mips-dis.c (mips_arch_choices): Add INSN_VIRT to mips32r2 .
Add INSN_VIRT and INSN_VIRT64 to mips64r2.
(parse_mips_dis_option): Handle the virt option.
(print_insn_args): Handle "+J".
(print_mips_disassembler_options): Print out message about virt64.
* mips-opc.c (IVIRT): New define.
(IVIRT64): New define.
(mips_builtin_opcodes): Add dmfgc0, dmtgc0, hypcall, mfgc0, mtgc0,
tlbgr, tlbgwi, tlbginv, tlbginvf, tlbgwr, tlbgp VIRT instructions.
Move rfe to the bottom as it conflicts with tlbgp.
* gdb.trace/circ.exp: Remove unnecessary 'if then' checks.
(set_a_tracepoint): Set tracepoint before prologue.
(run_trace_experiment): Test setup_tracepoints and 'break end'
in it.
(trace_buffer_normal): Remove.
(gdb_trace_circular_tests): Remove. Move tests to...
(top level): ...here. Call 'runto_main' before checking for
trace support. Use commands to check the support for circular
trace buffer and changing of trace buffer size. Add test
to calculate size of single frame. Use this size to
calculate the size of trace buffer. Use 'tfind pc func9'
instead of 'tfind 9'. Use 'with_test_prefix'.
Joel Brobecker [Wed, 8 May 2013 06:23:50 +0000 (06:23 +0000)]
Improve output of "maintenance info sol-threads" command.
This patch does the following:
- Puts the startfunc and "Sleep func" info on the same line;
- Renames "Sleep func" into "sleepfunc" to be consistent with
"startfunc"
- Avoids the use of a '-' as a separate before the "sleepfunc"
output, because the '-' looks odd and out of place when the
"startfunc" field is not printed (ti.ti_startfunc is nul).
- Use a '=' instead of ':' and avoids the space between
the name of the value and its value, mostly to help group
the value with its name.
For the record, this is how the new outout now looks like:
(gdb) maintenance info sol-threads
user thread #1, lwp 1, (active)
system thread #2, lwp 2, (active)
system thread #3, lwp 0, (asleep) sleepfunc=0xff32d9e0
user thread #4, lwp 4, (asleep) startfunc=[...].task_wrapper sleepfunc=0xff3290f0
system thread #5, lwp 7, (active) startfunc=_co_timerset
user thread #6, lwp 8, (active) startfunc=[...].task_wrapper
gdb/ChangeLog:
* sol-thread.c (info_cb): Rework the output of the "maintenance
info sol-threads" command a bit.
Joel Brobecker [Wed, 8 May 2013 05:50:47 +0000 (05:50 +0000)]
[doco] Document the XML format used for AIX shared lib support.
gdb/doc/ChangeLog:
* gdbint.texinfo (Native Debugging): Add "AIX Shared Library
Support" subsection documenting the XML format used to transfer
shared library info on AIX.
Pedro Alves [Tue, 7 May 2013 17:51:42 +0000 (17:51 +0000)]
Merge gdb.arch/system-gcore.exp into gdb.base/gcore.exp
The test case gdb.arch/system-gcore.exp is almost an identical copy of
gdb.base/gcore.exp. The only functional change is the additional
comparison of the "info reg system" command output.
It should be safe to perform this comparison on all architectures.
Thus the patch removes the arch-specific version and adds "info reg
system" to the common gcore test case instead.
Tested on i686-linux and s390x-linux.
gdb/testsuite/Changelog:
2013-05-07 Andreas Arnez <arnez@linux.vnet.ibm.com>
PR breakpoints/15413:
* breakpoint.c (condition_completer): Simplify the code to
disconsider multiple locations of breakpoints when completing the
"condition" command.
PR breakpoints/15413:
* gdb.base/pending.exp: Add test for completion of the "condition"
command for pending breakpoints.
* gdb.linespec/linespec.ex: Add test for completion of the
"condition" command when dealing with multiple locations.
Will Newton [Tue, 7 May 2013 17:03:52 +0000 (17:03 +0000)]
bfd/elf-ifunc.c: Add header size arg to _bfd_elf_allocate_ifunc_dyn_relocs.
bfd/ChangeLog:
2013-05-07 Will Newton <will.newton@linaro.org>
* elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Add a
plt_header_size argument for ports where it differs from
plt_entry_size.
* elf-bfd.h: Likewise.
* elf32-i386.c: Pass plt_header_size to
_bfd_elf_allocate_ifunc_dyn_relocs.
* elf64-x86-64.c: Likewise.
Yao Qi [Tue, 7 May 2013 09:23:28 +0000 (09:23 +0000)]
gdb/
* solib-dsbt.c (enable_break): Declare.
(dsbt_current_sos): Remove call to enable_break2.
(enable_break2): Rename to enable_break. Set solib breakpoint
on '_dl_debug_state'.
(enable_break): Remove.
Alan Modra [Mon, 6 May 2013 23:36:48 +0000 (23:36 +0000)]
* config/tc-ppc.c (PPC_VLE_SPLIT16A): Delete unused macro.
(PPC_VLE_SPLIT16D, PPC_VLE_LO16A, PPC_VLE_LO16D): Likewise.
(PPC_VLE_HI16A, PPC_VLE_HI16D): Likewise.
(PPC_VLE_HA16A, PPC_VLE_HA16D): Likewise.
(md_apply_fix): Set fx_no_overflow for assorted relocations.
Shift and sign-extend fieldval for use by some VLE reloc
operand->insert functions.
Doug Evans [Mon, 6 May 2013 22:20:18 +0000 (22:20 +0000)]
* gdb.base/solib-search-lib1.c: New file.
* gdb.base/solib-search-lib2.c: New file.
* gdb.base/solib-search.c: New file.
* gdb.base/solib-search.h: New file.
* gdb.base/solib-search.exp: New file.
Doug Evans [Mon, 6 May 2013 22:18:39 +0000 (22:18 +0000)]
* solist.h (struct target_so_ops): New member clear_so.
* solib-svr4.c (svr4_clear_so): New function.
(_initialize_svr4_solib): Set svr4_so_ops.clear_so.
* solib.c (clear_so): Renamed from free_so_symbols.
All callers updated. Call target clear_so if it exists.
Tom Tromey [Mon, 6 May 2013 19:46:15 +0000 (19:46 +0000)]
* ada-lang.c (ada_value_primitive_packed_val): Don't
call value_incref.
* value.c (set_value_parent): Incref the new parent and decref
the old parent.
(value_copy, value_primitive_field): Use set_value_parent.
Joel Brobecker [Mon, 6 May 2013 12:41:14 +0000 (12:41 +0000)]
darwin: warning resuming inferior after attach
This patch avoids a warning when resuming the execution of a program
that we attached to. For instance:
(gdb) attach 29989
(gdb) continue
Continuing.
warning: Mach error at "/[...]/darwin-nat.c:738" in function
"darwin_resume_thread": (os/kern) failure (0x5)
The warning is relatively harmless, but worrisome for the average
user. The warning comes from the fact that darwin_wait recorded
that the fake stop event corresponding to the suspend action was
caused by the main thread being suspended on a SIGTRAP. As a result
of this, when resuming the program's execution, we try to resume
the thread's execution as well. This is where the issue occurs,
as the thread was not in fact suspended, thus triggering the warning.
gdb/ChangeLog:
* darwin-nat.c (darwin_setup_fake_stop_event): New function.
(darwin_attach): Adjust using darwin_setup_fake_stop_event.
Joel Brobecker [Mon, 6 May 2013 12:35:46 +0000 (12:35 +0000)]
darwin-nat.c: Do not use gdb_assert on system call outcomes.
There were many cases were we make a system call which could fail
due to reasons outside of the debugger control. We should handle
these situations a little more gracefully than triggering an
internal error.
gdb/ChangeLog:
* darwin-nat.c (darwin_mourn_inferior): Replace call to
gdb_assert by call to MACH_CHECK_ERROR.
(darwin_attach_pid): Raise an error rather than a failed
assertion when various system calls failed. Report a warning
instead of raising a failed assertion when PREV_NOT is not NULL
after call to mach_port_request_notification.
(darwin_ptrace_me): Raise an error rather than a failed
assertion when read returns nonzero.
Alan Modra [Mon, 6 May 2013 08:45:40 +0000 (08:45 +0000)]
* elflink.c (elf_link_add_object_symbols): Don't save symbol
hashes around loading as-needed library. Zero them on allocation,
and restore to initial all-zero state if library not needed.
Arrange to reuse hashes if we load library again later.
Jan Kratochvil [Sun, 5 May 2013 16:54:26 +0000 (16:54 +0000)]
gdb/
* event-top.c (display_gdb_prompt): Call missing do_cleanups.
* infcmd.c (get_return_value) <!stop_regs>: Do not overwrite CLEANUP.
* symfile.c (symfile_bfd_open): New variable back_to. Do not leave
a stale cleanup. Fix double free of NAME.
Eli Zaretskii [Sat, 4 May 2013 13:36:18 +0000 (13:36 +0000)]
Announce thread death on MS-Windows.
* windows-nat.c (windows_delete_thread): Accept an additional
argument, the thread's exit code, and announce thread death when
print_thread_events is non-zero and we are deleting a thread that
is not the main thread.
(get_windows_debug_event): Pass thread exit code to
windows_delete_thread.