* symfile.c (find_separate_debug_file): Initialize dir, debugfile and
canon_name to NULL. Change alloca to xmalloc, newly call xfree for it.
New label cleanup_return_debugfile, jump to it from the failure paths.
* symfile.c (separate_debug_file_exists): When the CRCs mismatch
print a warning.
(find_separate_debug_file): Pass in the objfile's name.
gdb/testsuite/
* gdb.base/sepdebug.exp (CRC mismatch is reported): New test.
* gdb.base/sepdebug2.c: New file.
Remove INVALID_ENTRY_POINT.
* frame.c (inside_entry_func): New variable entry_point. Return 0 if
the entry point is not known.
* solib-irix.c (enable_break): Likewise.
* objfiles.c (init_entry_point_info): Stop using INVALID_ENTRY_POINT.
Initialize EI.ENTRY_POINT_P.
(entry_point_address): Rename to ...
(entry_point_address_query): ... a new function. Use EI.ENTRY_POINT_P.
(entry_point_address): New function.
(objfile_relocate): Use EI.ENTRY_POINT_P.
* objfiles.h (struct entry_info): Simplify entry_point comment. New
field entry_point_p.
(INVALID_ENTRY_POINT): Remove.
(entry_point_address_query): New prototype.
* solib-frv.c (enable_break): Check for NULL SYMFILE_OBJFILE and its
EI.ENTRY_POINT_P. Return 0 if ".interp" is not found.
2009-31-10 Sergio Durigan Junior <sergiodj@linux.vnet.ibm.com>
* breakpoint.c (catch_syscall_split_args): Remove unecessary warning
displayed when the user provided a syscall name and there is no
XML support.
* xml-syscall.c: Renamed `_sysinfo' to `sysinfo'.
(set_xml_syscall_file_name): Remove syscall_warn_user.
(xml_init_syscalls_info): Remove warning.
(init_sysinfo): Update warnings.
gdb/testsuite/ChangeLog:
2009-31-10 Sergio Durigan Junior <sergiodj@linux.vnet.ibm.com>
* gdb.base/catch-syscall.exp: Adapt the testcase in order to accept
the modified warnings for catch syscall. Verify if GDB was compiled
with support for lib expat, and choose which tests to run depending
on this.
PR gdb/10757
* linux-thread-db.c (attach_thread): Return success/failure
indicator.
(thread_db_find_new_threads_silently): Retry until no new threads.
(struct callback_data): New.
(find_new_threads_callback): Count new threads, stop iteration
on error.
(find_new_threads_once): New function.
(thread_db_find_new_threads_2): Rename from
thread_db_find_new_threads_1 and adjust.
(thread_db_find_new_threads_1): New function.
Performance optimize large bp_location count.
* breakpoint.c (ALL_BP_LOCATIONS_SAFE): Remove.
(ALL_BP_LOCATIONS): New parameter BP_TMP. Use now bp_location and
bp_location_count.
(bp_location_chain): Remove variable.
(bp_location, bp_location_count)
(bp_location_placed_address_before_address_max)
(bp_location_shadow_len_after_address_max): New variables.
(moribund_locations, update_watchpoint): Update the bp_location
variable name.
(breakpoint_restore_shadows): Extend the comment. Move the variable
b to local blocks. Move the variables bp_addr, bp_size and bptoffset
to a local block. New variables bc_l, bc_r and bc. New binary search
for the left range boundary. New break on reaching the right range
boundary. Move shadow existence conditionals to ...
(bp_location_has_shadow): ... a new function.
(insert_breakpoint_locations): Replace the temp variable by bp_tmp.
Use now ALL_BP_LOCATIONS instead of ALL_BP_LOCATIONS_SAFE.
(remove_breakpoints, remove_hw_watchpoints, reattach_breakpoints)
(detach_breakpoints): New variable bp_tmp. Update the ALL_BP_LOCATIONS
calling convention.
(update_breakpoints_after_exec): New variable bplocp_tmp. Update the
ALL_BP_LOCATIONS calling convention.
(breakpoint_here_p, software_breakpoint_inserted_here_p)
(breakpoint_thread_match): New variable bptp_tmp. Drop the const
attribute of bpt. Update the ALL_BP_LOCATIONS calling convention.
(regular_breakpoint_inserted_here_p): Likewise. Update the bp_location
variable name.
(mark_breakpoints_out, breakpoint_init_inferior): New variable
bptp_tmp. Update the ALL_BP_LOCATIONS calling convention.
(bpstat_stop_status): New variables blp_tmp and update_locations. Drop
the const attribute of bl. Update the ALL_BP_LOCATIONS calling
convention. Protect HIT_COUNT increment by an ENABLE_STATE check.
Delay the update_global_location_list call using update_locations.
(set_default_breakpoint): Drop the check_duplicates name from comment.
(disable_breakpoints_in_shlibs, disable_breakpoints_in_unloaded_shlib):
New variable locp_tmp. Update the ALL_BP_LOCATIONS calling convention.
(bp_location_compare, bp_location_compare_for_qsort)
(bp_location_target_extensions_update): New functions.
(check_duplicates, check_duplicates_for): Remove, moving their code ...
(update_global_location_list): ... into this existing function. Remove
variables next, loc2, old_locations, ret and ix. New variables locp,
loc_first, old_location, old_locp and old_location_count. Stop using
global_next, create now the array bp_location, sort it by
bp_location_compare_for_qsort and call
bp_location_target_extensions_update. Change quadratic iteration by
loc2 into an in-sync scanning by locp and loc2p. Rename former loc
usage as old_loc.
(do_vec_free): Remove.
(breakpoint_program_space_exit): Update the ALL_BP_LOCATIONS calling
convention.
(remove_breakpoints_pid): New variable b_tmp. Update the
ALL_BP_LOCATIONS calling convention.
* breakpoint.h (struct bp_location <global_next>): Remove.
* record.c (top level): Don't include byteswap.h.
(netorder64): Use store_unsigned_integer instead of bswap_64.
(netorder32): Use store_unsigned_integer instead of bswap_32.
(netorder16): Use store_unsigned_integer instead of bswap_16.
Michael Snyder <msnyder@msnyder-server.eng.vmware.com>
* record.c (RECORD_FILE_MAGIC): New constant.
(record_arch_list_cleanups): Renamed from record_message_cleanups.
(bfdcore_read): New function.
(netorder64): New function.
(netorder32): New function.
(netorder16): New function.
(record_restore): New function. Restore a saved record log.
(bfdcore_write): New function.
(cmd_record_restore): New function.
(cmd_record_save): New function. Save a record log to a file.
(_initialize_record): Set up commands for save and restore.
2009-10-17 Michael Snyder <msnyder@vmware.com>
* gcore.h: New file.
* gcore.c (create_gcore_bfd): New function.
(write_gcore_file): New function.
(call_target_sbrk): New function. Abstracted from gcore_command.
(gcore_command): Call call_target_sbrk.
Michael Snyder <msnyder@vmware.com>
* record.c (record_core_ops): New ops target vector.
(record_core_open_1): New function. Open core target.
(record_open_1): New function. Open normal process record.
(record_open): Call one of the above.
(record_close): Allow for both core and normal targets.
(record_core_resume): New function.
(record_core_kill): New function.
(record_core_fetch_registers): New function.
(record_core_prepare_to_store): New function.
(record_core_store_registers): New function.
(record_core_xfer_partial): New function.
(record_core_insert_breakpoint): New function.
(record_core_remove_breakpoint): New function.
(record_core_has_execution): New function.
(init_record_core_ops): New function.
(_initialize_record): Call init_record_core_ops, add_target.
* i386-darwin-nat.c (i386_darwin_fetch_inferior_registers): Use
amd64_supply_fxsave for amd64. Fix the offset.
(i386_darwin_store_inferior_registers): Use amd64_collect_fxsave
for amd64.
Elaborate "info record".
* record.c (struct record_end_entry): New field 'insn_num'.
(record_insn_count): New variable.
(record_open): Initialize record_insn_count.
(info_record_command): Display contents of record log as
lowest, current, and highest instruction counts.
(show_record_insn_number): Delete.
(_initialize_record): Remove add_cmd show_record_insn_number.
Joel Brobecker <brobecker@adacore.com>
* Makefile.in (HFILES_NO_SRCDIR): Remove shnbsd-tdep.h
* configure.tgt (sh*-*-linux*): Add corelow.o to gdb_target_obs.
* sh-linux-tdep.c: Include sh-tdep.h.
(REGSx16): New macro.
(gregs_table, fpregs_table): New variables.
(sh_linux_init_abi): Set core_gregmap and fpregmap.
* sh-tdep.c: Include regset.h.
(sh_corefile_supply_regset): New function.
(sh_corefile_collect_regset): New function.
(sh_corefile_gregset, sh_corefile_fpregset): New variables.
(sh_regset_from_core_section): New function.
(sh_gdbarch_init): Set up tdep value.
Call set_gdbarch_regset_from_core_section.
* sh-tdep.h (PC_REGNUM): New enum value.
(struct sh_corefile_regs): New type.
(sh_corefile_gregset): Export variable.
(sh_corefile_supply_regset): New prototype.
(sh_corefile_collect_regset): New prototype.
* shnbsd-tdep.c: Remove include of regcache.h, gdb_assert.h and
shnbsd-tdep.h.
(regmap): Use new definition using struct sh_corefile_regs.
(shnbsd_supply_gregset, shnbsd_collect_gregset): Delete.
(shnbsd_gregset): Delete.
(shnbsd_regset_from_core_section): Delete.
(shnbsd_supply_reg, shnbsd_fill_reg): Use new regset interface.
(shnbsd_init_abi): Set core_gregmap.
(shnbsd_supply_reg): Delete.
(shnbsd_fill_reg): Delete.
(SHNBSD_SIZEOF_GREGS): Move ...
* shnbsd-nat.c (SHNBSD_SIZEOF_GREGS): ... to here.
Remove include of shnbsd-tdep.h.
(shnbsd_fetch_inferior_registers): Replace shnbsd_supply_reg call
with sh_corefile_supply_regset.
(shnbsd_store_inferior_registers): Replace shnbsd_fill_reg call with
sh_corefile_collect_regset.
* shnbsd-tdep.h: Delete file.
Michael Snyder <msnyder@vmware.com>
* record.c (record_exec_insn): New function. Emulate one
instruction, forward or backward. Abstracted from record_wait.
(record_wait) Call record_exec_insn.