Doug Evans [Sun, 16 Oct 2011 19:54:33 +0000 (19:54 +0000)]
Add comma after "If True" to previous checkin.
Doug Evans [Sun, 16 Oct 2011 19:40:37 +0000 (19:40 +0000)]
* NEWS: Document python gdb.printing.register_pretty_printer's new
`replace' parameter.
H.J. Lu [Sun, 16 Oct 2011 19:36:10 +0000 (19:36 +0000)]
Set target from the the first object only if it isn't set.
2011-10-16 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/13278
* ar.c (open_inarch): Set the target from the the first object
on the list only if it isn't set.
Jan Kratochvil [Sun, 16 Oct 2011 08:42:04 +0000 (08:42 +0000)]
gdb/testsuite/
Fix results with system glibc debug info installed.
* gdb.base/disp-step-syscall.exp (continue to $syscall (1st time))
(continue to $syscall (2nd time), continue to $syscall (3rd time)):
Accept also __libc_ symbol prefix and no prefix.
gdbadmin [Sun, 16 Oct 2011 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Sat, 15 Oct 2011 23:00:05 +0000 (23:00 +0000)]
daily update
Alan Modra [Sat, 15 Oct 2011 09:22:42 +0000 (09:22 +0000)]
* emultempl/ppc64elf.em (gld${EMULATION_NAME}_finish): Remove toc check.
gdbadmin [Sat, 15 Oct 2011 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Fri, 14 Oct 2011 23:00:05 +0000 (23:00 +0000)]
daily update
Keith Seitz [Fri, 14 Oct 2011 20:22:50 +0000 (20:22 +0000)]
PR c++/13225
* gdb.cp/converts.cc (foo3_1): New function.
(foo3_2): New functions.
* gdb.cp/converts.exp: Add tests for int to pointer conversion
and null pointer conversions of integer constant zero.
Add test to check if all arguments are checked for incompatible
conversion BADNESS.
Keith Seitz [Fri, 14 Oct 2011 20:22:17 +0000 (20:22 +0000)]
PR c++/13225
* eval.c (evaluate_subexp_standard): Do not construct
an array of types; pass the value array directly to
find_overload_match.
* gdbtypes.h (NULL_POINTER_CONVERSION_BADNESS): Declare.
(rank_function): Take an array of values instead of types.
(rank_one_type): Add struct value * parameter.
* gdbtypes.c (NULL_POINTER_CONVERSION_BADNESS): Define.
(rank_function): For each argument, pass the argument's
value to rank_one_type.
(rank_one_type): Add VALUE parameter.
If the parameter type is a pointer and the argument type
is an integer, return NULL_POINTER_CONVERSION_BADNESS if
VALUE is zero.
Update all calls to rank_one_type, passing NULL for new
VALUE parameter.
* valarith.c (value_user_defined_cpp_op): Do not construct
an array of types; pass the value array directly to
find_overload_match.
* valops.c (find_overload_method_list): Take an array of
values instead of types.
Save the type of OBJP for later use.
Update calls to find_oload_champ, and find_oload_champ_namespace.
(find_oload_champ_namespace): Take an array of values instead
of types.
(find_oload_champ_namespace_loop): Likewise.
(find_oload_champ): Likewise.
(classify_oload_match): Inspect all arguments
until INCOMPATIBLE is found. Return the worst badness found
otherwise.
(compare_parameters): Update call to rank_one_type.
* value.h (find_overload_match): Take an array of values instead
of types.
Tom Tromey [Fri, 14 Oct 2011 19:31:46 +0000 (19:31 +0000)]
2011-10-14 Alexey Makhalov <makhaloff@gmail.com>
* sim-alu.h (ALU32_AND): Clear carry flag.
(ALU32_AND): Clear carry flag.
Tom Tromey [Fri, 14 Oct 2011 16:05:05 +0000 (16:05 +0000)]
* gdb.threads/attachstop-mt.exp: Add $srcfile to the linespecs.
* gdb.threads/attach-stopped.exp (corefunc): Add $srcfile to the
linespec.
Jan Kratochvil [Fri, 14 Oct 2011 07:58:58 +0000 (07:58 +0000)]
gdb/
Drop lazy lm_info reading.
* solib-svr4.c (struct lm_info): Remove field lm. New fields l_addr_p,
l_addr_inferior, l_ld, l_next, l_prev and l_name.
(lm_info_read): New function.
(lm_addr_from_link_map, lm_dynamic_from_link_map): Remove.
(lm_addr_check): Use l_addr_p. No longer use lm_addr_from_link_map and
lm_dynamic_from_link_map.
(lm_next, lm_prev, lm_name): Remove.
(svr4_keep_data_in_core): Use lm_info_read, drop the lm_info entries
initialization incl. read_memory. No longer use lm_name.
(svr4_free_so): Drop lm_info->lm freeing.
(svr4_default_sos): Initialize lminfo with zeroes. Use l_addr_p. Drop
explicit lm_addr and lm initialization.
(svr4_read_so_list): Use lm_info_read, drop the initailization of
fields by hand, incl. read_memory. No longer use lm_next, lm_prev and
lm_name.
Jan Kratochvil [Fri, 14 Oct 2011 07:55:26 +0000 (07:55 +0000)]
gdb/
* defs.h (struct so_list): New forward declaration.
(make_cleanup_free_so): New declaration.
* solib-svr4.c (ignore_first_link_map_entry): Remove.
(svr4_free_so): Move the function here from downwards. Handle NULL
so->lm_info.
(svr4_free_library_list): New.
(svr4_read_so_list): New, moved here code from svr4_current_sos.
Use more cleanups. Use new parameter ignore_first instead of
ignore_first_link_map_entry.
(svr4_current_sos): New variable ignore_first, initialize it. New
variable back_to, use it for svr4_free_library_list protection.
(svr4_free_so): Remove - move upwards.
* utils.c: Include solist.h.
(do_free_so, make_cleanup_free_so): New functions.
Hans-Peter Nilsson [Fri, 14 Oct 2011 06:52:46 +0000 (06:52 +0000)]
* elf32-cris.c (cris_elf_gc_sweep_hook) <R_CRIS_16_GOTPLT>
<R_CRIS_32_GOTPLT>: Fix missing update of gotplt refcount for
global symbols.
<R_CRIS_8, R_CRIS_16, R_CRIS_32>: New cases for similar missing
updates of the plt refcount.
(elf_cris_adjust_gotplt_to_got): Assert integrity of the gotplt
refcount in relation to the plt refcount.
Hans-Peter Nilsson [Fri, 14 Oct 2011 06:51:48 +0000 (06:51 +0000)]
* ld-cris/pic-gc-72.d: Adjust for dropping unused undefined
dynamic symbol "dsofn".
gdbadmin [Fri, 14 Oct 2011 00:00:03 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Thu, 13 Oct 2011 23:00:09 +0000 (23:00 +0000)]
daily update
Jan Kratochvil [Thu, 13 Oct 2011 16:26:28 +0000 (16:26 +0000)]
gdb/
Fix internal error regression.
* value.c (value_primitive_field): Handle value_optimized_out. Move
packed bitfields comment.
gdb/testsuite/
Fix internal error regression.
* gdb.dwarf2/implptr-optimized-out.S: New file.
* gdb.dwarf2/implptr-optimized-out.exp: New file.
Nick Clifton [Thu, 13 Oct 2011 15:33:34 +0000 (15:33 +0000)]
2011-10-13 Nick Clifton <nickc@redhat.com>
Fixes to aid translation:
* addr2line.c (translate_address): Add comments describing context
of a couple of printf statements.
* ar.c (write_archive): Allow translation of error message.
* bucomm.c (endian_string): Allow translation of strings.
(display_target_list): Allow translation.
* coffdump.c (dump_coff_type): Allow translation of output.
(dump_coff_where): Likewise.
(dump_coff_symbol): Likewise.
(dump_coff_scope): Likewise.
(dump_coff_sfile): Likewise.
(dump_coff_section): Likewise.
(coff_dump): Likewise.
* dlltool (def_version): Allow translation of output.
(run): Likewise.
* dllwrap.c (run): Allow translation of output.
* dwarf.c (print_dwarf_vma): Allow translation of output.
(process_extended_line_op): Remove spurious translation.
Add translation for strings that can be translated.
(decode_location_exression): Allow translation of output.
(read_and_display_attr_value): Allow translation of output.
* readelf.c (slurp_rela_relocs): Add translation for error
messages when failing to get data.
(slurp_rel_relocs): Likewise.
(get_32bit_elf_symbols): Likewise.
(get_64bit_elf_symbols): Likewise.
(dump_ia64_vms_dynamic_relocs): Replace abbreviation with full
word.
(process_relocs): Remove spurious translation.
(decode_tic6x_unwind_bytecode): Likewise.
(process_version_section): Improve error messages.
(process_mips_specific): Likewise.
(print_gnu_note): Remove spurious translation.
(print_stapsdt_note): Likewise.
(get_ia64_vms_note_type): Likewise.
* sysdump.c (getCHARS): Allow translation.
(fillup): Allow translation of output.
(getone): Likewise.
(must): Likewise.
(derived_type): Likewise.
* doc/binutils.doc (addr2line): Extend description of command line
options.
* po/binutils.pot: Regenerate.
Tom Tromey [Thu, 13 Oct 2011 14:54:14 +0000 (14:54 +0000)]
* python/py-breakpoint.c (gdbpy_breakpoint_deleted): Ensure GIL is
always released.
Kevin Pouget [Thu, 13 Oct 2011 14:50:08 +0000 (14:50 +0000)]
PR python/13285 Document named constants for frame unwind stop reasons
* gdb.texinfo (Frames In Python): Document gdb.FRAME_UNWIND_*
constants.
Tom Tromey [Thu, 13 Oct 2011 13:55:30 +0000 (13:55 +0000)]
* python/py-type.c (typy_has_key): Make 'field' const.
Luis Machado [Thu, 13 Oct 2011 13:15:16 +0000 (13:15 +0000)]
2011-10-13 Luis Machado <lgustavo@codesourcery.com>
* remote.c (remote_save_trace_data): Invert comparison.
Luis Machado [Thu, 13 Oct 2011 13:06:18 +0000 (13:06 +0000)]
2011-10-13 Luis Machado <lgustavo@codesourcery.com>
* tracepoint.c (trace_save_command): Use filename instead of
args when printing.
Nick Clifton [Thu, 13 Oct 2011 09:47:51 +0000 (09:47 +0000)]
* elf32-arm.c (elf32_arm_final_link_relocate): Mark PLT calls via
stubs as resolved.
Jan Kratochvil [Thu, 13 Oct 2011 09:36:47 +0000 (09:36 +0000)]
gdb/
* dwarf2read.c (dwarf2_fetch_die_location_block): Initialize .data even
if .size is 0.
Nick Clifton [Thu, 13 Oct 2011 09:33:02 +0000 (09:33 +0000)]
PR binutils/13219
* readelf.c (GET_ELF_SYMBOLS): Add sym_count parameter.
(get_32bit_elf_symbols): Add num_syms_return argument.
Return the number of symbols loaded into the symbol table.
(get_64bit_elf_symbols): Likewise.
(process_section_headers): Use GET_ELF_SYMBOLS to initialise
symbol count.
(proces_relocs): Likewise.
(ia64_process_unwind): Likewise.
(hppa_process_unwind): Likewise.
(arm_process_unwind): Likewise.
(process_dynamic_section): Likewise.
(process_version_sections): Likewise.
(process_symbol_table): Likewise.
(process_section_groups): Likewise.
Add check before indexing into the symbol table.
(apply_relocations): Likewise.
Yao Qi [Thu, 13 Oct 2011 08:16:49 +0000 (08:16 +0000)]
PR gdb/12703
* arm-tdep.c (thumb_analyze_prologue): Call thumb_insn_size to check
whether insn is a 32-bit Thumb-2 instruction.
(thumb_in_function_epilogue_p): Likewise.
(thumb_get_next_pc_raw): Likewise.
(arm_breakpoint_from_pc): Likewise.
Nick Clifton [Thu, 13 Oct 2011 08:15:17 +0000 (08:15 +0000)]
* config/tc-arm.c (check_ldr_r15_aligned): New.
(do_ldst): Warn in upredictable cases.
(do_t_ldst): Likewise.
(insns): Update accordingly.
* gas/arm/ldr-bad.s: New testcase.
* gas/arm/ldr-bad.l: Likewise.
* gas/arm/ldr-bad.d: Likewise.
* gas/arm/ldr.s: Likewise.
* gas/arm/ldr.d: Likewise.
* gas/arm/ldr-t-bad.s: Likewise.
* gas/arm/ldr-t-bad.l: Likewise.
* gas/arm/ldr-t-bad.d: Likewise.
* gas/arm/ldr-t.s: Likewise.
* gas/arm/ldr-t.d: Likewise.
* gas/arm/sp-pc-usage-t.s: Correct.
* gas/arm/sp-pc-usage-t.d: Update accordingly.
Cary Coutant [Thu, 13 Oct 2011 05:06:45 +0000 (05:06 +0000)]
* gold/output.cc (Output_file::open_base_file): Handle case where
::read returns less than requested size.
Dave Korn [Thu, 13 Oct 2011 02:34:36 +0000 (02:34 +0000)]
* pe-dll.c (generate_reloc): Don't emit a base reloc for an
underlying BFD reloc that will be discarded in eh_frame data.
gdbadmin [Thu, 13 Oct 2011 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Wed, 12 Oct 2011 23:00:05 +0000 (23:00 +0000)]
daily update
Jan Kratochvil [Wed, 12 Oct 2011 22:04:12 +0000 (22:04 +0000)]
gdb/
Fix empty DWARF expressions DATA vs. SIZE conditionals.
* dwarf2loc.c (dwarf2_find_location_expression): Clear *LOCEXPR_LENGTH.
(dwarf_expr_frame_base_1): Indicate unavailability via zero *LENGTH.
(locexpr_tracepoint_var_ref): Check only zero SIZE, not zero DATA.
(loclist_read_variable, loclist_tracepoint_var_ref): Do not check for
zero DATA.
* dwarf2loc.h (struct dwarf2_locexpr_baton): Comment DATA vs. SIZE
validity.
* dwarf2read.c (struct dwarf_block): Comment DATA validity.
(dwarf2_fetch_die_location_block, dwarf2_symbol_mark_computed): Do not
clear DATA on zero SIZE.
gdb/testsuite/
Fix empty DWARF expressions DATA vs. SIZE conditionals.
* gdb.dwarf2/dw2-op-call.S (arraycallnoloc, arraynoloc): New DIEs.
(loclist): New.
(4): New abbrev.
* gdb.dwarf2/dw2-op-call.exp: Remove variable srcfile and executable.
Use prepare_for_testing, remove clean_restart.
(p arraynoloc, p arraycallnoloc): New tests.
Alan Modra [Wed, 12 Oct 2011 21:07:07 +0000 (21:07 +0000)]
* as.c (main): Define .gasversion. rather than __GAS_VERSION__.
* frags.h (bss_address_frag): Delete
(predefined_address_frag): New.
* frags.c (frag_init): Init predefined_address_frag. Delete ref
to bss_addres_frag.
* symbols.c (S_CAN_BE_REDEFINED): New function.
* symbols.h (S_CAN_BE_REDEFINED): Declare.
* read.c (assign_symbol): Use S_CAN_BE_REDEFINED.
Doug Evans [Wed, 12 Oct 2011 16:28:41 +0000 (16:28 +0000)]
* dwarf2read.c (partial_read_comp_unit_head): Set header->offset,
header->first_die_offset here. All callers updated.
Jan Kratochvil [Wed, 12 Oct 2011 15:55:04 +0000 (15:55 +0000)]
gdb/
Fix compatibility with texinfo versions older than 4.12.
* Makefile.in (MAKEINFO): Set to @MAKEINFO@.
(MAKEINFOFLAGS, MAKEINFO_EXTRA_FLAGS, MAKEINFO_CMD): New.
(MAKEHTMLFLAGS): Use MAKEINFO_CMD.
(FLAGS_TO_PASS): Add MAKEINFOFLAGS and MAKEINFO_EXTRA_FLAGS.
* configure: Regenerate.
* configure.ac (MAKEINFO): Find it, from libiberty/configure.ac.
(MAKEINFOFLAGS): Pre-set it to --split-size=
5000000.
(MAKEINFO_EXTRA_FLAGS): New test for -DHAVE_MAKEINFO_CLICK.
gdb/doc/
Fix compatibility with texinfo versions older than 4.12.
* Makefile.in (MAKEINFO): Set to @MAKEINFO@.
(MAKEINFOFLAGS, MAKEINFO_EXTRA_FLAGS, MAKEINFO_CMD): New.
(MAKEHTMLFLAGS): Use MAKEINFO_CMD.
(gdb.info, gdbint.info, stabs.info, annotate.info): Use MAKEINFO_CMD.
* gdb.texinfo (Tail Call Frames): Convert @arrow{} to @click, when possible.
Make the conversion conditional on HAVE_MAKEINFO_CLICK, using variables
CALLSEQ1A, CALLSEQ1B, CALLSEQ2A and CALLSEQ2B.
Gary Benson [Wed, 12 Oct 2011 15:43:49 +0000 (15:43 +0000)]
2011-10-12 Gary Benson <gbenson@redhat.com>
* breakpoint.h (pc_at_non_inline_function): Declare.
* breakpoint.c (is_non_inline_function,
pc_at_non_inline_function): New functions.
* infrun.c (handle_inferior_event): Don't call skip_inline_frames
if the stop is at a location where functions cannot be inlined.
Pedro Alves [Wed, 12 Oct 2011 12:17:29 +0000 (12:17 +0000)]
Fix incomplete entry. Should have been:
2011-10-12 Pedro Alves <pedro@codesourcery.com>
* linux-nat.c (stop_and_resume_callback): Don't re-resume LWPs if
the core wanted them stopped, or if they now have a pending event
to report.
(linux_nat_filter_event): New parameter `new_pending_p'. Pass it
down to stop_and_resume_callback.
(linux_nat_wait_1): Always clear `options' when retrying. Handle
having new pending events after calling linux_nat_filter_event.
Pedro Alves [Wed, 12 Oct 2011 12:11:26 +0000 (12:11 +0000)]
2011-10-12 Pedro Alves <pedro@codesourcery.com>
gdb/
* linux-nat.c (stop_and_resume_callback): Don't re-resume LWPs if
the core wanted them stopped, or if they now have a pending event
to report.
Jan Kratochvil [Wed, 12 Oct 2011 09:19:42 +0000 (09:19 +0000)]
gdb/testsuite/
* gdb.cp/namespace-enum.exp (executable): New variable.
(binfile): Use ${objdir}/${subdir}/ prefix.
Use ${executable} for clean_restart.
Alan Modra [Wed, 12 Oct 2011 02:57:07 +0000 (02:57 +0000)]
* symbols.c (local_symbol_make): Make global.
* symbols.h (local_symbol_make): Declare.
* as.c (main): Define __GAS_VERSION__.
Sterling Augustine [Wed, 12 Oct 2011 00:23:23 +0000 (00:23 +0000)]
2011-05-11 Sterling Augustine <saugustine@google.com>
* complete.c (rl_completion_matches): Undo inadvertant checkin.
gdbadmin [Wed, 12 Oct 2011 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Sterling Augustine [Tue, 11 Oct 2011 23:30:27 +0000 (23:30 +0000)]
2011-10-11 Sterling Augustine <saugustine@google.com>
* dwarf2read.c: Undo inadvertent changes in previous commit.
Alan Modra [Tue, 11 Oct 2011 23:00:05 +0000 (23:00 +0000)]
daily update
Sterling Augustine [Tue, 11 Oct 2011 19:19:08 +0000 (19:19 +0000)]
gdb/ChangeLog
2011-10-11 Sterling Augustine <saugustine@google.com>
* dwarf2read.c (partial_die_parent_scope): Rearrange conditional
logic.
gdb/testsuite/ChangeLog
2011-10-11 Sterling Augustine <saugustine@google.com>
* gdb.cp/Makefile.in: Add namespace-enum test.
* gdb.cp/namespace-enum.exp: New file.
* gdb.cp/namespace-enum.c: New file.
* gdb.cp/namespace-enum-main.c: New file.
David S. Miller [Tue, 11 Oct 2011 19:08:59 +0000 (19:08 +0000)]
Fix jit.exp on most 32-bit targets.
* gdbarch.sh: New field 'long_long_align_bit'.
* gdbarch.c, gdbarch.h: Regenerate.
* i386-tdep.c (i386_gdbarch_init): Set long_long_align_bit to 32.
* jit.c (jit_read_code_entry): Use it to determine correct size offset.
Ulrich Weigand [Tue, 11 Oct 2011 19:01:31 +0000 (19:01 +0000)]
* gdb.python/py-shared.exp: Relax filename check to handle remote:
sysroot.
Ulrich Weigand [Tue, 11 Oct 2011 19:00:22 +0000 (19:00 +0000)]
* symfile.c (separate_debug_file_exists): Fix condition.
David S. Miller [Tue, 11 Oct 2011 18:35:26 +0000 (18:35 +0000)]
Fix regcache_restore() handling of unavailable regs.
* regcache.c (regcache_restore): Do not write unavailable regs, mark
static.
* regcache.h (regcache_restore): Remove declaration.
Nick Clifton [Tue, 11 Oct 2011 15:56:29 +0000 (15:56 +0000)]
PR binutils/13051
Fix a syntax error bug when compiling rc files with the VERSIONINFO resource
containing more than one language block inside a single StringFileInfo block.
* windint.h (rc_ver_stringtable): New structure definition.
(rc_ver_info): Use it.
* rcparse.y (verstringtable): New variable.
(verstringtables): New type.
(verstringtables:): New rule declaration.
(verblocks:): Use it.
* resrc.c (append_ver_stringtable): New function.
(append_ver_stringfileinfo): Update to use stringtables.
* windres.h (append_ver_stringfileinfo): Update declaration.
(append_ver_stringtable): New declaration.
* resrc.c (write_rc_versioninfo): Update to support multiple blocks.
* resbin.c (bin_to_res_version): Likewise.
(res_to_bin_versioninfo): Likewise.
* binutils-all\windres\version.rsd: Regenerate.
* binutils-all\windres\version_cat.rsd: Regenerate.
* binutils-all\windres\version_mlang.rc: Add new test.
* binutils-all\windres\version_mlang.rsd: Likewise.
Jan Kratochvil [Tue, 11 Oct 2011 15:24:11 +0000 (15:24 +0000)]
gdb/
Revert this part of:
2011-10-09 Jan Kratochvil <jan.kratochvil@redhat.com>
Support @entry in input expressions.
* c-exp.y (ENTRY, unknown_cpp_name): New.
(exp: UNKNOWN_CPP_NAME): Change to `exp: unknown_cpp_name'.
(unknown_cpp_name: UNKNOWN_CPP_NAME, unknown_cpp_name: ENTRY)
(variable: name_not_typename '@' ENTRY, name: ENTRY)
(name_not_typename: ENTRY): New.
(yylex): Recognize ENTRY.
Reimplement @entry in input expressions.
* c-exp.y (ENTRY): New.
(variable: name_not_typename ENTRY): New.
(lex_one_token): Optionally return ENTRY instead of the '@' lex.
gdb/testsuite/
Reimplement @entry in input expressions.
* gdb.base/exprs.c (v_int_array_init): New variable.
* gdb.base/exprs.exp (print v_int_array_init)
(print *v_int_array_init@1, print *v_int_array_init@2)
(print v_int_array_init[0]@1, print v_int_array_init[0]@2)
(print v_int_array_init[1]@1): New tests.
Pedro Alves [Tue, 11 Oct 2011 14:58:21 +0000 (14:58 +0000)]
2011-10-11 Pedro Alves <pedro@codesourcery.com>
* linux-nat.c (linux_handle_extended_wait): Always dump both the
parent and child's pids as soon as we detect a clone event.
Adjust another debug message.
Pedro Alves [Tue, 11 Oct 2011 13:58:18 +0000 (13:58 +0000)]
2011-10-11 Pedro Alves <pedro@codesourcery.com>
gdb/
* linux-nat.c (linux_lwp_is_zombie): Return early if the LWP is
not zombie instead of reading the whole file.
Jan Kratochvil [Tue, 11 Oct 2011 12:58:08 +0000 (12:58 +0000)]
gdb/
Fix separate debuginfo warning with "remote:" access.
* objfiles.h (struct objfile): New fields crc32 and crc32_p.
* symfile.c (get_file_crc): New function with the code moved from ...
(separate_debug_file_exists): ... this function, specifically variables
buffer and count. New variable verified_as_different, set it. Remove
file_crc initialization. Verify also if both files are not the same
manually, if needed.
Yao Qi [Tue, 11 Oct 2011 07:31:29 +0000 (07:31 +0000)]
gdb/
* arm-tdep.c (arm_get_next_pc_raw): Use read_memory_unsigned_integer
to get address.
Alan Modra [Tue, 11 Oct 2011 06:44:13 +0000 (06:44 +0000)]
PR binutils/13278
* archive.c (bfd_generic_archive_p): Only check first element
when target_defaulted.
(_bfd_construct_extended_name_table): Use ar_maxnamelen.
(_bfd_archive_bsd44_construct_extended_name_table): Likewise.
Alan Modra [Tue, 11 Oct 2011 06:30:20 +0000 (06:30 +0000)]
PR binutils/13257
* archive.c (_bfd_find_nested_archive, _bfd_get_elt_at_filepos): Open
thin archive element using container target if not defaulted.
Doug Evans [Tue, 11 Oct 2011 03:31:59 +0000 (03:31 +0000)]
* linux-thread-db.c (thread_db_new_objfile): Only try to load
libthread_db when we load libpthread or the main symbol file.
(thread_db_inferior_created): New function.
(_initialize_thread_db): Attach inferior_created observer.
* linux-nat.c (linux_child_post_attach): Remove call to
check_for_thread_db.
(linux_child_post_startup_inferior): Ditto.
* objfiles.h (OBJF_MAINLINE): Define.
* symfile.c (symbol_file_add_with_addrs_or_offsets): Pass it to
allocate_objfile when appropriate.
Joseph Myers [Tue, 11 Oct 2011 01:27:49 +0000 (01:27 +0000)]
* gdb.cp/gdb2495.exp: Do not include directories in filename in
expected message.
gdbadmin [Tue, 11 Oct 2011 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Mon, 10 Oct 2011 23:00:05 +0000 (23:00 +0000)]
daily update
DJ Delorie [Mon, 10 Oct 2011 21:02:57 +0000 (21:02 +0000)]
merge from gcc
Ulrich Weigand [Mon, 10 Oct 2011 18:47:49 +0000 (18:47 +0000)]
PR gdb/13218
* arm-linux-nat.c (os_version, os_major, os_minor, os_release):
Remove unused variables.
(get_linux_version): Remove function.
(_initialize_arm_linux_nat): Do not call it.
Cary Coutant [Mon, 10 Oct 2011 17:38:07 +0000 (17:38 +0000)]
* gold/incremental.cc (Sized_relobj_incr::Sized_relobj_incr):
Initialize defined_count_.
(Sized_relobj_incr::do_add_symbols): Count defined symbols.
(Sized_relobj_incr::do_get_global_symbol_counts): Rewrite.
(Sized_incr_dynobj::Sized_incr_dynobj): Initialize defined_count_.
(Sized_incr_dynobj::do_add_symbols): Count defined symbols.
(Sized_incr_dynobj::do_get_global_symbol_counts): Rewrite.
* gold/incremental.h (Sized_relobj_incr::defined_count_): New data
member.
(Sized_incr_dynobj::defined_count_): New data member.
* gold/plugin.cc (Sized_pluginobj::do_get_global_symbol_counts):
Return zeroes instead of internal error.
Cary Coutant [Mon, 10 Oct 2011 17:29:52 +0000 (17:29 +0000)]
PR gold/13249
* gold/output.cc (Output_reloc::Output_reloc): Add use_plt_offset flag.
(Output_reloc::symbol_value): Return PLT offset if flag is set.
* gold/output.h (class Output_reloc): Add use_plt_offset flag.
(Output_reloc::type_): Adjust size of bit field.
(Output_reloc::use_plt_offset_): New bit field.
(class Output_data_reloc): Adjust all calls to Output_reloc_type.
(Output_data_reloc::add_local_relative): (RELA only) Add use_plt_offset
flag. Adjust all callers.
* gold/x86_64.cc (Target_x86_64::Scan::local): Check for IFUNC when
creating RELATIVE relocations.
Pedro Alves [Mon, 10 Oct 2011 16:40:02 +0000 (16:40 +0000)]
2011-10-10 Pedro Alves <pedro@codesourcery.com>
gdb/
* linux-nat.c (linux_handle_extended_wait): Don't resume the new
new clone lwp if the core asked it to stop. Don't pass on
unexpected signals to the new clone; leave them pending instead.
Nick Clifton [Mon, 10 Oct 2011 16:12:24 +0000 (16:12 +0000)]
Updated Bulgarian, Spanish, Finnish, French, Russian and Ukranian translations.
Pedro Alves [Mon, 10 Oct 2011 13:50:50 +0000 (13:50 +0000)]
2011-10-10 Pedro Alves <pedro@codesourcery.com>
gdb/
* linux-nat.c (resume_lwp): Remove redundant debug output.
Pedro Alves [Mon, 10 Oct 2011 13:23:53 +0000 (13:23 +0000)]
2011-10-10 Pedro Alves <pedro@codesourcery.com>
gdb/
* linux-nat.c (linux_nat_wait_1): Copy the event lwp's
last_resume_kind before clearing it, and use the copy instead to
determine whether to report a SIGSTOP as TARGET_SIGNAL_0. Use
resume_clear_callback in the non-stop path too.
Alan Modra [Mon, 10 Oct 2011 13:21:07 +0000 (13:21 +0000)]
include/elf/
* ppc64.h (R_PPC64_TOCSAVE): Add.
bfd/
* elf64-ppc.c (ppc64_elf_howto_table): Add R_PPC64_TOCSAVE entry.
(struct ppc_link_hash_table): Add tocsave_htab.
(struct tocsave_entry): New.
(tocsave_htab_hash, tocsave_htab_eq, tocsave_find): New functions.
(ppc64_elf_link_hash_table_create): Create tocsave_htab..
(ppc64_elf_link_hash_table_free): ..and delete it.
(build_plt_stub): Always put STD_R2_40R1 first.
(ppc64_elf_size_stubs): Check for R_PPC64_TOCSAVE following reloc
on plt call. If present add prologue nop location to tocsave_htab.
(ppc64_elf_relocate_section): Convert prologue nop to std. Skip
first insn of plt call stub when R_PPC64_TOCSAVE present.
Alan Modra [Mon, 10 Oct 2011 12:43:14 +0000 (12:43 +0000)]
* ldmain.c (main): Move code twiddling various config and link_info
bits to..
* lexsup.c (parse_args): ..here. Move plugin_load_plugins call
into main.
* plugin.c (set_tv_header): Test link_info.executable, not
link_info.shared.
(is_visible_from_outside): Likewise. Delete redundant
is_ir_dummy_bfd check and "section" parameter.
Alan Modra [Mon, 10 Oct 2011 09:05:41 +0000 (09:05 +0000)]
ld/
* emultempl/ppc64elf.em (ppc_add_stub_section): Align to 32 bytes.
ld/testsuite/
* ld-powerpc/relbrlt.d: Update for stub alignment change.
* ld-powerpc/tlsexe.g: Likewise.
* ld-powerpc/tlsexe.r: Likewise.
* ld-powerpc/tlsexetoc.g: Likewise.
* ld-powerpc/tlsexetoc.r: Likewise.
* ld-powerpc/tlsso.g: Likewise.
* ld-powerpc/tlsso.r: Likewise.
Yao Qi [Mon, 10 Oct 2011 02:50:48 +0000 (02:50 +0000)]
gdb/
* valprint.c (value_check_printable): Add one parameter OPTIONS.
Honor OPTIONS and VAL's type.
(common_val_print, value_print): Update to pass one more parameter.
Mike Frysinger [Mon, 10 Oct 2011 02:41:54 +0000 (02:41 +0000)]
sim: dv-cfi: include stdbool.h
The dv-cfi code uses the bool type but doesn't include the stdbool.h
header. I didn't notice for Blackfin targets as the core Blackfin
header will include stdbool.h, but most targets don't do this.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Mike Frysinger [Mon, 10 Oct 2011 02:41:07 +0000 (02:41 +0000)]
sim: dv-cfi: include common headers only
The "devices.h" header is Blackfin-specific, so trying to build dv-cfi
for any other target fails. Include the specific hw headers this file
needs directly.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
gdbadmin [Mon, 10 Oct 2011 00:00:33 +0000 (00:00 +0000)]
*** empty log message ***
Alan Modra [Sun, 9 Oct 2011 23:00:05 +0000 (23:00 +0000)]
daily update
Doug Evans [Sun, 9 Oct 2011 22:21:43 +0000 (22:21 +0000)]
Add new "alias" command.
* NEWS: Mention new command.
* command.h (valid_user_defined_cmd_name_p): Declare.
* defs.h (make_cleanup_dyn_string_delete): Declare.
* utils.c: #include "dyn-string.h".
(do_dyn_string_delete, make_cleanup_dyn_string_delete): New functions.
* cli/cli-cmds.c: #include "dyn-string.h".
(argv_to_dyn_string, valid_command_p, alias_command): New functions.
(init_cli_cmds): Add new command.
* cli/cli-decode.c (valid_user_defined_cmd_name_p): New function.
doc/
* gdb.texinfo (Extending GDB): Document alias command.
testsuite/
* gdb.base/alias.exp: Add tests for alias command.
Jan Kratochvil [Sun, 9 Oct 2011 20:57:03 +0000 (20:57 +0000)]
gdb/
Fix compatibility with older GCCs.
* dwarf2loc.c (dwarf_expr_reg_to_entry_parameter): Initialize parameter.
* stack.c (read_frame_arg): Initialize val_deref.
Jan Kratochvil [Sun, 9 Oct 2011 20:21:48 +0000 (20:21 +0000)]
gdb/
Add forgotten gdb/dwarf2-frame-tailcall.c.
Add forgotten gdb/dwarf2-frame-tailcall.h.
Jan Kratochvil [Sun, 9 Oct 2011 19:46:05 +0000 (19:46 +0000)]
gdb/
Entry values NEWS entries, DWARF disassembly support.
* NEWS: New entry values entry.
(set print entry-values, show print entry-values)
(set debug entry-values, show debug entry-values): New entries.
* dwarf2loc.c (disassemble_dwarf_expression): New parameters start and
indent. Remove variable start. Move header printing out. Respect
INDENT. Support DW_OP_GNU_entry_value.
(locexpr_describe_location_1): Move the header printing here, extend
the disassemble_dwarf_expression passed parameters.
gdb/testsuite/
* gdb.arch/amd64-entry-value.s: New file.
* gdb.mi/mi2-amd64-entry-value.s: New file.
Jan Kratochvil [Sun, 9 Oct 2011 19:43:41 +0000 (19:43 +0000)]
gdb/
Display @entry parameter values even for references.
* ada-valprint.c (ada_val_print_1) <TYPE_CODE_REF>: Try also
coerce_ref_if_computed.
* c-valprint.c (c_val_print) <TYPE_CODE_REF>: Likewise.
* dwarf2expr.c (dwarf_block_to_dwarf_reg_deref): New function.
(execute_stack_op) <DW_OP_GNU_entry_value>: Add -1 deref_size to the
existing push_dwarf_reg_entry_value call. Add new detection calling
dwarf_block_to_dwarf_reg_deref. Update the error message.
(ctx_no_push_dwarf_reg_entry_value): New parameter deref_size.
* dwarf2expr.h
(struct dwarf_expr_context_funcs) <push_dwarf_reg_entry_value>: Add new
parameter deref_size, describe it in the comment.
(ctx_no_push_dwarf_reg_entry_value): Add new parameter deref_size.
(dwarf_block_to_dwarf_reg_deref): New declaration.
* dwarf2loc.c (dwarf_entry_parameter_to_value): Add new parameter
deref_size, describe it in the function comment. New variables
data_src and size, fetch the alternative block accoring to DEREF_SIZE.
(dwarf_expr_push_dwarf_reg_entry_value): Add new parameter deref_size,
describe it in the function comment. Fetch the alternative block
accoring to DEREF_SIZE.
(entry_data_value_coerce_ref, entry_data_value_copy_closure)
(entry_data_value_free_closure, entry_data_value_funcs): New.
(value_of_dwarf_reg_entry): New variables checked_type, target_type,
outer_val, target_val, val and addr. Try to fetch and create also
referenced value content.
(pieced_value_funcs): NULL value for coerce_ref.
(needs_dwarf_reg_entry_value): Add new parameter deref_size.
* f-valprint.c (f_val_print) <TYPE_CODE_REF>: Try also
coerce_ref_if_computed.
* opencl-lang.c (opencl_value_funcs): NULL value for coerce_ref.
* p-valprint.c (pascal_val_print) <TYPE_CODE_REF>: Likewise.
* stack.c (read_frame_arg): Compare also dereferenced values.
* value.c (value_computed_funcs): Make the parameter v const, use
value_lval_const for it.
(value_lval_const, coerce_ref_if_computed): New function.
(coerce_ref): New variable retval. Call also coerce_ref_if_computed.
* value.h (struct lval_funcs): New field coerce_ref.
(value_computed_funcs): Make the parameter v const.
(value_lval_const, coerce_ref_if_computed): New declarations.
gdb/testsuite/
Display @entry parameter values even for references.
* gdb.arch/amd64-entry-value.cc (reference, datap, datap_input): New
functions.
(main): New variables regvar, nodatavarp, stackvar1, stackvar2. Call
reference and datap_input.
* gdb.arch/amd64-entry-value.exp (reference, breakhere_reference): New
breakpoints.
(continue to breakpoint: entry_reference: reference)
(entry_reference: bt at entry)
(continue to breakpoint: entry_reference: breakhere_reference)
(entry_reference: bt, entry_reference: ptype regparam)
(entry_reference: p regparam, entry_reference: ptype regparam@entry)
(entry_reference: p regparam@entry, entry_reference: p ®param@entry)
(entry_reference: p regcopy, entry_reference: p nodataparam)
(entry_reference: p nodataparam@entry): New tests.
Jan Kratochvil [Sun, 9 Oct 2011 19:41:17 +0000 (19:41 +0000)]
gdb/
Support @entry in input expressions.
* c-exp.y (ENTRY, unknown_cpp_name): New.
(exp: UNKNOWN_CPP_NAME): Change to `exp: unknown_cpp_name'.
(unknown_cpp_name: UNKNOWN_CPP_NAME, unknown_cpp_name: ENTRY)
(variable: name_not_typename '@' ENTRY, name: ENTRY)
(name_not_typename: ENTRY): New.
(yylex): Recognize ENTRY.
* eval.c (evaluate_subexp_standard): Support also OP_VAR_ENTRY_VALUE.
* expprint.c (print_subexp_standard, dump_subexp_body_standard):
Likewise.
* parse.c (operator_length_standard): Likewise.
* std-operator.def: New operator OP_VAR_ENTRY_VALUE.
gdb/doc/
Support @entry in input expressions.
* gdb.texinfo (Variables): Describe @entry names suffix.
(Print Settings): Add anchor for `set print entry-values'.
gdb/testsuite/
Support @entry in input expressions.
* gdb.arch/amd64-entry-value.exp (entry: p i@entry, entry: p j@entry)
(entry_stack: p s1@entry, entry_stack: p s2@entry)
(entry_stack: p d9@entry, entry_stack: p da@entry, tailcall: p i@entry)
(tailcall: p j@entry): New tests.
* gdb.cp/koenig.cc (A::entry): New function.
(main): Call it.
* gdb.cp/koenig.exp (p entry (c)): New test.
Jan Kratochvil [Sun, 9 Oct 2011 19:38:29 +0000 (19:38 +0000)]
gdb/
Display referenced values in backtraces.
* printcmd.c (print_variable_and_value): Set OPTS.DEREF_REF to 1.
* stack.c (print_frame_arg): Likewise.
Jan Kratochvil [Sun, 9 Oct 2011 19:36:06 +0000 (19:36 +0000)]
gdb/
Make some lval_funcs methods to default on NULL.
* valops.c (value_fetch_lazy): Check if lval_computed read method is
NULL.
(value_assign): Check if lval_computed write method is NULL.
* value.h (struct lval_funcs): Comment NULL values for read and write
methods.
Jan Kratochvil [Sun, 9 Oct 2011 19:34:19 +0000 (19:34 +0000)]
gdb/
Display @entry parameter values (without references).
* dwarf2expr.c (dwarf_block_to_fb_offset, dwarf_block_to_sp_offset):
New functions.
* dwarf2expr.h (dwarf_block_to_fb_offset, dwarf_block_to_sp_offset):
New declarations.
* dwarf2loc.c (dwarf2_find_location_expression): Support location list
entry record.
(dwarf_entry_parameter_to_value, value_of_dwarf_reg_entry)
(value_of_dwarf_block_entry, locexpr_read_variable_at_entry): New
functions.
(dwarf2_locexpr_funcs): Install locexpr_read_variable_at_entry.
(loclist_read_variable_at_entry): New function.
(dwarf2_loclist_funcs): Install loclist_read_variable_at_entry.
* dwarf2read.c (read_call_site_scope): Support also DW_OP_fbreg in
DW_AT_location, call dwarf_block_to_sp_offset for it.
* frame.h (print_entry_values_no, print_entry_values_only)
(print_entry_values_preferred, print_entry_values_if_needed)
(print_entry_values_both, print_entry_values_compact)
(print_entry_values_default, print_entry_values): New declarations.
(struct frame_arg): New field entry_kind.
(read_frame_arg): New parameter entryargp.
* mi/mi-cmd-stack.c (list_arg_or_local): New gdb_assert for
arg->entry_kind. Optionally print the `@entry' suffix.
(list_args_or_locals): New variable entryarg, initialize it.
Initialize also entry_kind of arg and entryarg. Conditionalize
list_arg_or_local for arg, add list_arg_or_local for entryarg. Call
xfree for entryarg.error.
* stack.c (print_entry_values_no, print_entry_values_only)
(print_entry_values_preferred, print_entry_values_if_needed)
(print_entry_values_both, print_entry_values_compact)
(print_entry_values_default, print_entry_values_choices)
(print_entry_values): New variables.
(print_frame_arg): New gdb_assert for arg->entry_kind. Optionally
print the `@entry' suffix, possibly in combination for
print_entry_values_compact.
(read_frame_arg): New parameter entryargp, new variables entryval,
entryval_error and val_equal. Read in also entryargp, respect
print_entry_values, compare the values using val_equal, fill in also
argp->entry_kind (together with entryargp->entry_kind).
(print_frame_args): New variable entryarg, initialize it.
Conditionalize print_frame_arg for arg, add print_frame_arg for
entryarg. Call xfree for entryarg.error.
(_initialize_stack): Call add_setshow_enum_cmd for `entry-values'.
* symtab.h (struct symbol_computed_ops): New field
read_variable_at_entry.
gdb/doc/
Display @entry parameter values (without references).
* gdb.texinfo (Tail Call Frames): Add anchor. Add self tail call
example.
(Print Settings): New description of set print entry-values and show
print entry-values.
gdb/testsuite/
Display @entry parameter values (without references).
* gdb.arch/amd64-entry-value.cc (locexpr, stacktest, data, data2)
(different, validity, invalid): New functions.
(main): Call them.
* gdb.arch/amd64-entry-value.exp: New breakpoints breakhere_locexpr,
stacktest, breakhere_stacktest, different, breakhere_different,
breakhere_validity and breakhere_invalid.
(entry: bt): Update for @entry.
(entry_locexpr: *, entry_stack: *, entry_equal: *, entry_different: *)
(entry_validity: *, entry_invalid: *): Many new tests.
* gdb.base/break.exp
(run until breakpoint set at small function, optimized file): Accept
also the @entry suffix.
* gdb.mi/Makefile.in (PROGS): Add mi2-amd64-entry-value.
* gdb.mi/mi2-amd64-entry-value.c: New files.
* gdb.mi/mi2-amd64-entry-value.exp: New files.
Jan Kratochvil [Sun, 9 Oct 2011 19:30:25 +0000 (19:30 +0000)]
gdb/
Code reshuffle.
* frame.h (struct frame_arg): New definition.
(read_frame_arg): New declaration.
* mi/mi-cmd-stack.c (list_arg_or_local): New functiom from ...
(list_args_or_locals): ... the code here. New variable arg, call
read_frame_arg and list_arg_or_local with it. Unify the
PRINT_SIMPLE_VALUES and PRINT_ALL_VALUES cases. Call xfree for
arg.error.
* stack.c (print_frame_arg): New functiom from the code of
print_frame_args.
(read_frame_arg): New function.
(print_frame_args): Remove variable val. New variable arg, call
read_frame_arg and print_frame_arg with it. Call xfree for arg.error.
Jan Kratochvil [Sun, 9 Oct 2011 19:29:11 +0000 (19:29 +0000)]
gdb/
Protect entry values against self tail calls.
* dwarf2loc.c (VEC (CORE_ADDR), func_verify_no_selftailcall): New.
(dwarf_expr_dwarf_reg_entry_value): Call func_verify_no_selftailcall.
gdb/testsuite/
Protect entry values against self tail calls.
* gdb.arch/amd64-entry-value.cc (self2, self): New.
(main): Call self.
* gdb.arch/amd64-entry-value.exp (self: breakhere, self: bt)
(set debug entry-values 1, self: bt debug entry-values): New tests.
Jan Kratochvil [Sun, 9 Oct 2011 19:26:44 +0000 (19:26 +0000)]
gdb/
Recognize virtual tail call frames.
* Makefile.in (SFILES): Add dwarf2-frame-tailcall.c.
(HFILES_NO_SRCDIR): Add dwarf2-frame-tailcall.h.
(COMMON_OBS): Add dwarf2-frame-tailcall.o.
* dwarf2-frame-tailcall.c: New file.
* dwarf2-frame-tailcall.h: New file.
* dwarf2-frame.c: Include dwarf2-frame-tailcall.h.
(execute_cfa_program): New function comment. Return INSN_PTR. Reset
REGS.PREV only after CIE execution.
(struct dwarf2_frame_cache): New field tailcall_cache.
(dwarf2_frame_cache): New variables entry_pc, entry_cfa_sp_offset,
entry_cfa_sp_offset_p and instr. Execute FDE instructions in two
parts, try to find entry_cfa_sp_offset. Call
dwarf2_tailcall_sniffer_first.
(dwarf2_frame_prev_register): Call dwarf2_tailcall_prev_register_first
when appropriate.
(dwarf2_frame_dealloc_cache): New function.
(dwarf2_frame_sniffer): Preinitialize cache by dwarf2_frame_cache.
(dwarf2_frame_unwind): Install dwarf2_frame_dealloc_cache.
(dwarf2_signal_frame_unwind): Do not install dwarf2_frame_dealloc_cache.
(dwarf2_append_unwinders): Add dwarf2_tailcall_frame_unwind.
(dwarf2_frame_cfa): Support also dwarf2_tailcall_frame_unwind.
* dwarf2loc.c (func_addr_to_tail_call_list)
(tailcall_dump, call_sitep, VEC (call_sitep), chain_candidate)
(call_site_find_chain_1, call_site_find_chain): New.
* dwarf2loc.h (struct call_site_chain): New.
(call_site_find_chain): New declaration.
* frame.c (get_frame_address_in_block): Support also TAILCALL_FRAME.
* frame.h (enum frame_type): New entry TAILCALL_FRAME.
* python/py-frame.c (gdbpy_initialize_frames): Add TAILCALL_FRAME.
* stack.c (frame_info): Support also TAILCALL_FRAME.
gdb/doc/
Recognize virtual tail call frames.
* gdb.texinfo (Optimized Code): Add reference to Tail Call Frames.
(Tail Call Frames): New node.
(Frames In Python): Add gdb.TAILCALL_FRAME.
gdb/testsuite/
Recognize virtual tail call frames.
* gdb.arch/amd64-entry-value.cc (c, a, b, amb_z, amb_y, amb_x, amb)
(amb_b, amb_a): New.
(main): Call a and b.
* gdb.arch/amd64-entry-value.exp (tailcall: breakhere, tailcall: bt)
(tailcall: p i, tailcall: p j, set $sp0=$sp, up, p $sp0 == $sp, frame 3)
(p $sp0 + sizeof (void *) == $sp, ambiguous: breakhere, ambiguous: bt):
New tests.
Jan Kratochvil [Sun, 9 Oct 2011 19:23:41 +0000 (19:23 +0000)]
gdb/
Tail call sites reader implementation.
* dwarf2read.c (read_call_site_scope): Recognize DW_AT_GNU_tail_call,
fill in TYPE_TAIL_CALL_LIST.
* gdbtypes.h (struct func_type): New field tail_call_list.
(struct call_site): New field tail_call_next.
(TYPE_TAIL_CALL_LIST): New definition.
Jan Kratochvil [Sun, 9 Oct 2011 19:21:39 +0000 (19:21 +0000)]
gdb/
Implement basic support for DW_TAG_GNU_call_site.
* block.c: Include gdbtypes.h and exceptions.h.
(call_site_for_pc): New function.
* block.h (call_site_for_pc): New declaration.
* defs.h: Include hashtab.h.
(make_cleanup_htab_delete, core_addr_hash, core_addr_eq): New
declarations.
* dwarf2-frame.c (dwarf2_frame_ctx_funcs): Install
ctx_no_push_dwarf_reg_entry_value.
* dwarf2expr.c (read_uleb128, read_sleb128): Support R as NULL.
(dwarf_block_to_dwarf_reg): New function.
(execute_stack_op) <DW_OP_GNU_entry_value>: Implement it.
(ctx_no_push_dwarf_reg_entry_value): New function.
* dwarf2expr.h (struct dwarf_expr_context_funcs): New field
push_dwarf_reg_entry_value.
(ctx_no_push_dwarf_reg_entry_value, dwarf_block_to_dwarf_reg): New
declarations.
* dwarf2loc.c: Include gdbcmd.h.
(dwarf_expr_ctx_funcs): New forward declaration.
(entry_values_debug, show_entry_values_debug, call_site_to_target_addr)
(dwarf_expr_reg_to_entry_parameter)
(dwarf_expr_push_dwarf_reg_entry_value): New.
(dwarf_expr_ctx_funcs): Install dwarf_expr_push_dwarf_reg_entry_value.
(dwarf2_evaluate_loc_desc_full): Handle NO_ENTRY_VALUE_ERROR.
(needs_dwarf_reg_entry_value): New function.
(needs_frame_ctx_funcs): Install it.
(_initialize_dwarf2loc): New function.
* dwarf2loc.h (entry_values_debug): New declaration.
* dwarf2read.c (struct dwarf2_cu): New field call_site_htab.
(read_call_site_scope): New forward declaration.
(process_full_comp_unit): Copy call_site_htab.
(process_die): Support DW_TAG_GNU_call_site.
(read_call_site_scope): New function.
(dwarf2_get_pc_bounds): Support NULL HIGHPC.
(dwarf_tag_name): Support DW_TAG_GNU_call_site.
(cleanup_htab): Delete.
(write_psymtabs_to_index): Use make_cleanup_htab_delete instead of it.
* exceptions.h (enum errors): New NO_ENTRY_VALUE_ERROR.
* gdb-gdb.py (StructMainTypePrettyPrinter): Support
FIELD_LOC_KIND_DWARF_BLOCK.
* gdbtypes.h (enum field_loc_kind): New entry
FIELD_LOC_KIND_DWARF_BLOCK.
(struct main_type): New loc entry dwarf_block.
(struct call_site, FIELD_DWARF_BLOCK, SET_FIELD_DWARF_BLOCK)
(TYPE_FIELD_DWARF_BLOCK): New.
* python/py-type.c: Include dwarf2loc.h.
(check_types_equal): Support FIELD_LOC_KIND_DWARF_BLOCK. New
internal_error call on unknown FIELD_LOC_KIND.
* symtab.h (struct symtab): New field call_site_htab.
* utils.c (do_htab_delete_cleanup, make_cleanup_htab_delete)
(core_addr_hash, core_addr_eq): New functions.
gdb/testsuite/
Implement basic support for DW_TAG_GNU_call_site.
* gdb.arch/Makefile.in (EXECUTABLES): Add amd64-entry-value.
* gdb.arch/amd64-entry-value.cc: New file.
* gdb.arch/amd64-entry-value.exp: New file.
Jan Kratochvil [Sun, 9 Oct 2011 19:10:52 +0000 (19:10 +0000)]
gdb/
Code reshuffle.
* gdb-gdb.py (StructMainTypePrettyPrinter): Change
TYPE_SPECIFIC_CALLING_CONVENTION to TYPE_SPECIFIC_FUNC. Move
calling_convention under func_stuff there.
* gdbtypes.c (make_function_type): Call INIT_FUNC_SPECIFIC.
(init_type) <TYPE_CODE_FUNC>: Likewise.
(recursive_dump_type): Change TYPE_SPECIFIC_CALLING_CONVENTION to
TYPE_SPECIFIC_FUNC. New comment for tail_call_list.
* gdbtypes.h (enum type_specific_kind): Change
TYPE_SPECIFIC_CALLING_CONVENTION to TYPE_SPECIFIC_FUNC.
(struct main_type) <type_specific>: Change calling_convention to
func_stuff. Move calling_convention to ...
(struct func_type): ... this new struct.
(INIT_FUNC_SPECIFIC): New #define.
(TYPE_CALLING_CONVENTION): Change calling_convention to func_stuff.
Jan Kratochvil [Sun, 9 Oct 2011 18:46:41 +0000 (18:46 +0000)]
gdb/
Fix DW_OP_GNU_implicit_pointer for DWARF32 v3+ on 64-bit arches.
* dwarf2-frame.c (execute_stack_op): Initialize ctx->ref_addr_size.
* dwarf2expr.c (execute_stack_op) <DW_OP_GNU_implicit_pointer>: Use
ctx->ref_addr_size. Handle its invalid value.
* dwarf2expr.h (struct dwarf_expr_context): New field ref_addr_size.
* dwarf2loc.c (dwarf2_evaluate_loc_desc_full)
(dwarf2_loc_desc_needs_frame): Initialize ctx->ref_addr_size.
* dwarf2loc.h (dwarf2_per_cu_ref_addr_size): New declaration.
* dwarf2read.c (decode_locdesc): Initialize ctx->ref_addr_size.
(dwarf2_per_cu_ref_addr_size): New function.
gdb/testsuite/
Fix DW_OP_GNU_implicit_pointer for DWARF32 v3+ on 64-bit arches.
* gdb.dwarf2/implptr-64bit.S: New file.
* gdb.dwarf2/implptr-64bit.exp: New file.
Jan Kratochvil [Sun, 9 Oct 2011 18:43:32 +0000 (18:43 +0000)]
gdb/
Code cleanup.
* dwarf2read.c (per_cu_header_read_in): New function.
(dwarf2_per_cu_addr_size, dwarf2_per_cu_offset_size): Use it, with new
variables cu_header_local and cu_headerp.
Jan Kratochvil [Sun, 9 Oct 2011 18:37:27 +0000 (18:37 +0000)]
gdb/
Fix initial language detection with -readnow.
* dwarf2read.c (dw2_find_symbol_file): Handle OBJF_READNOW case.
* symfile.h (struct quick_symbol_functions): State find_symbol_file
searches only for global symbols.
gdb/testsuite/
Fix initial language detection with -readnow.
* gdb.cp/readnow-language.cc: New file.
* gdb.cp/readnow-language.exp: New file.
Jan Kratochvil [Sun, 9 Oct 2011 18:33:28 +0000 (18:33 +0000)]
gdb/
Fix printed anonymous struct name.
* dwarf2read.c (fixup_partial_die): Handle for anonymous structs also
DW_TAG_interface_type. Strip for anonymous structs any prefixes.
(anonymous_struct_prefix): New function.
(determine_prefix): New variables retval. Call anonymous_struct_prefix.
(dwarf2_name): Strip for anonymous structs any prefixes.
gdb/testsuite/
Fix printed anonymous struct name.
* gdb.cp/anon-struct.exp (print type of X::t2): New test.