Pedro Alves [Mon, 14 Feb 2011 11:10:53 +0000 (11:10 +0000)]
Base support for <unavailable> value contents.
gdb/
* value.h (value_bytes_available): Declare.
(mark_value_bytes_unavailable): Declare.
* value.c (struct range): New struct.
(range_s): New typedef.
(ranges_overlap): New function.
(range_lessthan): New function.
(ranges_contain_p): New function.
(struct value) <unavailable>: New field.
(value_bytes_available): New function.
(mark_value_bytes_unavailable): New function.
(require_not_optimized_out): Constify parameter.
(require_available): New function.
(value_contents_all, value_contents): Require all bytes be
available.
(value_free): Free `unavailable'.
(value_copy): Copy `unavailable'.
* valprint.h (val_print_unavailable): Declare.
* valprint.c (valprint_check_validity): Rename `offset' parameter
to `embedded_offset'. If printing a scalar, check whether the
value chunk is available.
(val_print_unavailable): New.
(val_print_scalar_formatted): Check whether the value is
available.
* python/py-prettyprint.c (apply_val_pretty_printer): Refuse
pretty-printing unavailable values.
Mike Frysinger [Mon, 14 Feb 2011 05:14:28 +0000 (05:14 +0000)]
sim: punt zfree()
The sim keeps track of which allocations are zero-ed internally (via
zalloc) and then calls a helper "zfree" function rather than "free".
But this "zfree" function simply calls "free" itself. Since I can
see no point in this and it is simply useless overhead, punt it.
The only real change is in hw-alloc.c where we remove the zalloc_p
tracking, and sim-utils.c where zfree is delete. The rest of the
changes are a simple `sed` from "zfree" to "free".
Mike Frysinger [Mon, 14 Feb 2011 04:58:12 +0000 (04:58 +0000)]
sim: change to 64bit time keeping to avoid 32bit overflows
The sim-events code jumps through some hoops to avoid using 64bit math
to manage the current time. One fundamental assumption here is that by
constantly scheduling the sim poll event a short time into the future,
the 64bit difference will always fall into a signed 32bit value. This
does work most of the time, except for when processing the sim poll event
itself.
Normally, sim_events_process() will dequeue the sim poll event, update
the current time (time_from_event) according to the next pending event,
process the sim poll event (which will then requeue the sim poll event),
and then continue on.
The problem here of course is that the current time is updated in that
small window before the sim poll event gets a chance to reschedule itself.
So if the 64bit difference between the current time and the next event
does not fit into the signed 32bit value, time_from_event overflows, and
the internal assert at the end of update_time_from_event() triggers.
Since attempts at tweaking sim_events_process() logic introduced other
subtle bugs (due to tangled assumptions between most pieces of the sim
time keeping code), change the time_from_event to a real 64bit value.
Tests on my system between a 32bit ELF and a 64bit ELF show no practical
difference (it's all lost in the system noise). Basically, I booted a
Linux kernel to userspace and then paniced it; this gave me a constant
sample size of about 18 million insns.
This was noticed when simulating Blackfin Das U-Boot. The simulated core
timer is given the max unsigned timeout value possible on a 32bit processor
(0xffffffff). This timeout value is used directly to schedule a hw event
in the sim future (the IRQ firing). Once the sim poll event is kicked off,
the next pending event is the core timer event which is more than 2^31
ticks in the future, and the sim aborts with:
sim-events.c:435: assertion failed - current_time == sim_events_time (sd)
Remove support for FreeBSD 1.x.
* libtool.m4 (_LT_LINKER_SHLIBS)
(_LT_SYS_DYNAMIC_LINKER): Remove handling of freebsd1* which
soon would incorrectly match FreeBSD 10.0.
Mike Frysinger [Sun, 13 Feb 2011 18:54:49 +0000 (18:54 +0000)]
opcodes: blackfin: fix decoding of dsp mult insns
When assigning to a register half, the mac0 part of the mult insn
was not decoding properly. It would always show a full dreg instead
of the dreg low half.
Once we fix the disassembler, we have to update a few of the gas
tests as their previous expected output was incorrect.
Jan Kratochvil [Sun, 13 Feb 2011 09:15:54 +0000 (09:15 +0000)]
gdb/
Fix const/volatile qualifiers of C++ types, PR c++/12328.
* c-typeprint.c (c_type_print_args): Update the function comment. New
variable param_type, initialize it. Remove const/volatile qualifiers
for language_cplus and !show_artificial. Use param_type.
gdb/testsuite/
Fix const/volatile qualifiers of C++ types, PR c++/12328.
* gdb.cp/overload-const.exp: New file.
* gdb.cp/overload-const.cc: New file.
Jan Kratochvil [Sun, 13 Feb 2011 09:09:36 +0000 (09:09 +0000)]
gdb/
* symtab.c (find_pc_sect_line): New variable objfile, initialize it
from S. Iterate S using ALL_OBJFILE_SYMTABS. Verify BV for each S.
* symtab.h (struct symtab) <next>: Comment extension.
Mike Frysinger [Sat, 12 Feb 2011 19:37:32 +0000 (19:37 +0000)]
opcodes: blackfin: drop "GP" register
There never was a "GP" register, so punt it from the decode map. It's
a hold over from a very old processor definition and never made it into
actual silicon.
Ralf Wildenhues [Sat, 12 Feb 2011 15:47:02 +0000 (15:47 +0000)]
Import move-if-change script from gnulib.
/:
PR binutils/12283
* MAINTAINERS (mkinstalldirs): Comes from Automake.
(move-if-change): Comes from gnulib.
* move-if-change: Import version from gnulib.
Mike Frysinger [Fri, 11 Feb 2011 19:05:30 +0000 (19:05 +0000)]
gas: blackfin: docs: typo fixes and fill out directive info
A bunch of Blackfin-specific directives were lacking info on what they
actually do, so fill in the blanks. Further, the byte2/byte4 descriptions
were swapped.
Alan Modra [Thu, 10 Feb 2011 11:59:12 +0000 (11:59 +0000)]
* config/tc-ppc.c (md_show_usage): Remove -l and -b. Add -K PIC.
* doc/as.texinfo: Refer to and include c-ppc.texi for PowerPC options.
(Overview <Target PowerPC options>): Add a number of missing options.
* doc/c-ppc.texi: Likewise. Add markup for use in manpage generation.
Alan Modra [Wed, 9 Feb 2011 08:18:54 +0000 (08:18 +0000)]
* ld-elfvsb/elfvsb.exp: Don't run any non-PIC tests on powerpc*-linux.
* ld-gc/gc.exp: Ensure powerpc64 test continues to fail.
* ld-srec/srec.exp: Don't edit toc on powerpc64.
Alan Modra [Wed, 9 Feb 2011 08:16:00 +0000 (08:16 +0000)]
* elf64-ppc.c (ppc64_elf_edit_toc): Don't free toc relocs until
we are done. When optimising large toc, check that a global
symbol on a toc reloc is defined in a kept section.
Jan Kratochvil [Tue, 8 Feb 2011 14:01:47 +0000 (14:01 +0000)]
gdb/
* i386-tdep.c (i386_process_record): Rename l suffixes to d suffixes
in comments for pcmpgtd, pcmpeqd, psubd, paddd, pcmpgtd, pcmpeqd,
psubd and paddd.
Jan Kratochvil [Tue, 8 Feb 2011 13:58:02 +0000 (13:58 +0000)]
gdb/
PR 12361.
* i386-tdep.c (i386_process_record) <0x660f3807>: Fix the comment to
phsubsw.
(i386_process_record) <lddqu>: Fix the opcode to 0xf20ff0.
(i386_process_record) <0x0f3807>: Fix the comment to phsubsw.
* dwarf2read.c (read_subroutine_type): Set special calling
convention flag for functions compiled by IBM XL C for OpenCL.
* ppc-sysv-tdep.c: Include "dwarf2.h"
(ppc_sysv_abi_push_dummy_call): Implement IBM OpenCL vector types
calling convention.
(do_ppc_sysv_return_value): Add FUNC_TYPE argument. Implement
IBM OpenCL vector types calling convention.
(ppc_sysv_abi_return_value): Pass through FUNC_TYPE.
(ppc_sysv_abi_broken_return_value): Likewise.
(ppc64_sysv_abi_push_dummy_call): Implement IBM OpenCL vector
types calling convention.
(ppc64_sysv_abi_return_value): Likewise.
* spu-tdep.c: Include "dwarf2.h"
(spu_return_value): Implement IBM OpenCL vector types calling
convention.
gdb/testsuite/ChangeLog:
* gdb.opencl/callfuncs.cl: New file.
* gdb.opencl/callfuncs.exp: New test.
* gdb.opencl/Makefile.in (EXECUTABLES): Add callfuncs.
Nick Clifton [Tue, 8 Feb 2011 09:40:05 +0000 (09:40 +0000)]
PR binutils/12467
* readelf.c (process_program_headers): Issue a warning if there
are no program headers but the file header has a non-zero program
header offset.
(process_section_headers): Issue a warning if there are no section
headers but the file header has a non-zero section header offset.
(process_section_groups): Reword the no section message so that it
can be distinguished from the one issued by process_section_headers.
* elf.c (assign_file_positions_for_load_sections): Set the program
header offset and entry size to zero if there are no program
headers.
Alan Modra [Mon, 7 Feb 2011 00:04:09 +0000 (00:04 +0000)]
PR gas/3041
* gas/m68k/p3041pcrel.s, * gas/m68k/p3041pcrel.d: New test.
* gas/m68k/all.exp: Add "p3041pcrel" and enable p3041 tests for
all m68k-aout targets.
Sami Wagiaalla [Fri, 4 Feb 2011 21:54:16 +0000 (21:54 +0000)]
Add Python support for GDB events.
2011-02-04 Sami Wagiaalla <swagiaal@redhat.com>
* gdb.python/py-evthreads.c: New file.
* gdb.python/py-evthreads.exp: New file.
* gdb.python/py-events.py: New file.
* gdb.python/py-events.exp: New file.
* gdb.python/py-events.c: New file.
2011-02-04 Sami Wagiaalla <swagiaal@redhat.com>
Oguz Kayral <oguzkayral@gmail.com>
* python/py-inferior.c (python_on_normal_stop): New function.
(python_on_resume): New function.
(python_inferior_exit): New function.
(gdbpy_initialize_inferior): Add normal_stop, target_resumed, and
inferior_exit observers.
* python/py-evtregistry.c: New file.
* python/py-threadevent.c : New file.
* python/py-event.c: New file.
* python/py-evts.c: New file.
* python/py-continueevent.c: New file.
* python/py-bpevent.c: New file.
* python/py-signalevent.c: New file.
* python/py-exetiedevent.c: New file.
* python/py-breakpoint.c (gdbpy_breakpoint_from_bpstats): New function.
Move struct breakpoint_object from here...
* python/python-internal.h: ... to here.
* python/py-event.h: New file.
* python/py-events.h: New file.
* Makefile.in (SUBDIR_PYTHON_OBS): Add py-breakpointstopevent.o,
py-continueevent.o, py-event.o, py-eventregistry.o, py-events.o,
py-exitedevent.o, py-signalstopevent.o, and py-stopevent.o.
(SUBDIR_PYTHON_SRCS): Add py-breakpointstopevent.c,
py-continueevent.c, py-event.c, py-eventregistry.c, py-events.c,
py-exitedevent.c, py-signalstopevent.c, and py-stopevent.c.
Add build rules for all the above.
Tom Tromey [Fri, 4 Feb 2011 20:33:09 +0000 (20:33 +0000)]
* dwarf2read.c (dwarf2_section_empty_p): New function.
(dwarf2_read_section): Use dwarf2_section_empty_p.
(dwarf2_section_size): New function.
(dwarf2_get_section_info): Unconditionally read section.
(dwarf2_read_index): Use dwarf2_section_empty_p.
(partial_read_comp_unit_head): Use dwarf2_section_size.
(dwarf2_symbol_mark_computed): Likewise.
David Daney [Fri, 4 Feb 2011 18:34:43 +0000 (18:34 +0000)]
gdb/
2011-02-04 David Daney <ddaney@caviumnetworks.com>
* mips-linux-tdep.c: Include xml-syscall.h.
(mips_linux_get_syscall_number): New function.
(mips_linux_init_abi): Add calls to
mips_linux_get_syscall_number() and set_xml_syscall_file_name().
* data-directory/Makefile.in (SYSCALLS_FILES): Add
mips-o32-linux.xml, mips-n32-linux.xml and mips-n64-linux.xml
* syscalls/mips-n32-linux.xml: New file.
* syscalls/mips-n64-linux.xml: New file.
* syscalls/mips-o32-linux.xml: New file.
gdb/testsuite/
2011-02-04 David Daney <ddaney@caviumnetworks.com>
* gdb.base/catch-syscall.exp: Enable for mips*-linux*.
Fix some typos.
* breakpoint.c (update_watchpoint): Fix name of the
update_global_location_list function.
(print_one_breakpoint): Fix typo.
(_initialize_breakpoint): Remove extra space in hbreak help
string.
* breakpoint.h (struct bp_location) <length>: Fix field
description.
Pedro Alves [Fri, 4 Feb 2011 15:46:49 +0000 (15:46 +0000)]
* regcache.c (registers_changed_ptid): Don't explictly always
clear `current_regcache'. Only clear current_thread_ptid and
current_thread_arch when PTID matches. Only reinit the frame
cache if PTID matches the current inferior_ptid. Move alloca(0)
call to ...
(registers_changed): ... here.
Andrew Burgess [Thu, 3 Feb 2011 14:45:37 +0000 (14:45 +0000)]
http://sourceware.org/ml/gdb-patches/2010-12/msg00300.html
Improve the ordering of line table entries when dealing with the end
of sequence markers. This will allow us to disassemble over the border
between two compile units while also displaying source code information.
Sriraman Tallam [Wed, 2 Feb 2011 21:55:29 +0000 (21:55 +0000)]
2011-02-02 Sriraman Tallam <tmsriram@google.com>
* icf.h (is_section_foldable_candidate): Change type of parameter
to std::string.
* icf.cc (Icf::find_identical_sections): Change type of local variable
section_name to be std::string.
(is_function_ctor_or_dtor): Change type of parameter to std::string.
Ulrich Weigand [Wed, 2 Feb 2011 19:45:32 +0000 (19:45 +0000)]
* arm-tdep.c (skip_prologue_function): Add GDBARCH and IS_THUMB
arguments. Skip in-prologue calls to glibc __aeabi_read_tp
implementation even if no symbols are available.
(thumb_analyze_prologue): Update call to skip_prologue_function.
(arm_analyze_prologue): Likewise.
Ulrich Weigand [Wed, 2 Feb 2011 19:44:44 +0000 (19:44 +0000)]
* arm-tdep.c: Include "observer.h".
(arm_prologue_this_id): Use frame PC if get_frame_func returns 0.
(arm_exidx_data_key): New static variable.
(struct arm_exidx_entry, arm_exidx_entry_s): New data types.
(struct arm_exidx_data): Likewise.
(arm_exidx_data_free): New function.
(arm_compare_exidx_entries): Likewise.
(arm_obj_section_from_vma): Likewise.
(arm_exidx_new_objfile): Likewise.
(arm_find_exidx_entry): Likewise.
(arm_exidx_fill_cache): Likewise.
(arm_exidx_unwind_sniffer): Likewise.
(arm_exidx_unwind): New global variable.
(arm_gdbarch_init): Append unwinder arm_exidx_unwind.
(_initialize_arm_tdep): Attach arm_exidx_new_objfile to new_objfile
observer. Register arm_exidx_data_key as objfile data.