* amd64-tdep.c: Add a frame unwinder for function epilogues.
(amd64_in_function_epilogue_p): New function.
(amd64_epilogue_frame_sniffer): New function.
(amd64_epilogue_frame_cache): New function.
(amd64_epilogue_frame_this_id): New function.
(amd64_epilogue_frame_unwind): New struct frame_unwind.
(amd64_init_abi): Hook the new unwinder.
* amd64-linux-tdep.c (amd64_linux_init_abi): Set gdbarch to use
SVR4 method for skip_trampoline_code.
gdb/
* top.c (any_thread_of): Delete.
(kill_or_detach): Use any_thread_of_process.
* top.c (print_inferior_quit_action): New.
(quit_confirm): Rewrite to print info about all inferiors.
* target.c (dispose_inferior): New.
(target_preopen): Use it.
2009-08-14 Pedro Alves <pedro@codesourcery.com>
gdb/testsuite/
* gdb.threads/killed.exp, gdb.threads/manythreads.exp,
gdb.threads/staticthreads.exp: Adjust to "quit" output changes.
PR gdb/8869:
* language.c (language, type, range, case_sensitive): Make const.
(show_language_command): Don't call deprecated_show_value_hack.
Special case "auto".
(set_language_command): An unrecognized language is now an
internal error instead of a user error. Don't call set_lang_str.
(show_type_command): Don't call deprecated_show_value_hack.
Special case "auto". Use warning.
(set_type_command): An unrecognized type is now an internal error
instead of a user error. Output type check mismatch with language
here. Don't call set_type_str.
(show_range_command): Don't call deprecated_show_value_hack.
Special case "auto". Use warning.
(set_range_command): An unrecognized range check is now an
internal error instead of a warning. Output range check mismatch
with language here. Don't call set_range_str.
(show_case_command): Don't call deprecated_show_value_hack.
Special case "auto". Use warning.
(set_case_command): Don't call set_case_str. An unrecognized case
check is now an internal error instead of a warning. Output range
check mismatch with language here. Don't call set_case_str.
(set_type_range_case): Don't call set_type_str, set_range_str or
set_case_str here.
(set_lang_str, set_type_str, set_range_str, set_case_str): Delete.
(add_language): Install or reinstall the "set language" command
here, and make it an enum command. Build the enumeration and the
help string from the current list of known languages.
(_initialize_language): Don't install "set language" here. Make
"set check type", "set check range" and "set case-sensitive" enum
commands. Register the "auto" "local" and "unknown" languages in
that order.
2009-08-13 Pedro Alves <pedro@codesourcery.com>
* gdb.base/default.exp: Adjust "set language test": it's now an
enum command. Larger help string moved to "help set language".
* gdb.base/help.exp: Adjust "help set language" expected output,
now lists all known languages.
* solib-darwin.c (find_program_interpreter): Simplify the code by
looking up for the load_dylinker command instead of reading the
corresponding (but deprecated) section.
(darwin_solib_create_inferior_hook): Adjust: do not free the
interpreter path.
* i386-darwin-tdep.c (i386_m128_p): New function.
(i386_darwin_arg_type_alignment): Ditto.
(i386_darwin_push_dummy_call): Ditto.
(i386_darwin_init_abi): Define Darwin specific push_dummy_call.
Adjust long_double size. Adjust pc offset in setjump buffer.
Add Linux AMD64 process record support.
* amd64-linux-tdep.c (amd64_linux_record_tdep): New variable.
This struct has the argument for the function
"record_linux_system_call".
(amd64_linux_syscall_record): New function. Parse the
system call instruction and call function
"record_linux_system_call" to record execute log.
(i386_linux_init_abi): Initialize "amd64_linux_record_tdep".
Set "amd64_linux_syscall_record" to "i386_syscall_record".
Add process record Linux system call 64 bits support.
* linux-record.h (linux_record_tdep): Add size_pointer,
size_size_t, size_iovec and arg6. Change the values of
size_int, size_long and size_ulong to
gdbarch_int_bit (gdbarch) / TARGET_CHAR_BIT,
gdbarch_long_bit (gdbarch) / TARGET_CHAR_BIT,
gdbarch_long_bit (gdbarch) / TARGET_CHAR_BIT.
* i386-linux-tdep.c (i386_linux_init_abi): Ditto.
(i386_linux_intx80_sysenter_record): Add a check for system
call number.
* linux-record.c (record_linux_system_call): Make this
function support 64 bits.
Add AMD64 process record instruction set support.
* i386-tdep.h (gdbarch_tdep): Add record_regmap for registers
because the AMD64's registers order in GDB is not same with
I386 instructions.
Add i386_syscall_record to be the syscall function handle
interface.
(record_i386_regnum): Number for record_regmap.
* i386-tdep.c (OT_QUAD): For 64 bits.
(i386_record_s): Add rex_x, rex_b, rip_offset and
popl_esp_hack for AMD64 instruction set. And regmap for
record_regmap.
(i386_record_lea_modrm_addr): Support AMD64 instruction set
64 bits lea.
(i386_record_lea_modrm): Ditto.
(i386_record_push): New function. Record the execution log
of push.
(I386_RECORD_ARCH_LIST_ADD_REG): New macro to record the
register.
(i386_process_record): Support AMD64 instruction set.
* amd64-tdep.c (amd64_record_regmap): For record_regmap.
(amd64_init_abi): Set amd64_record_regmap to record_regmap.
(target_bfd_xfer_partial): Adjust to get at the section table from
the new structure.
(target_bfd_get_section_table): Ditto.
(target_bfd_xclose): Ditto. Get the bfd pointer from the
target_bfd_data structure, from the section table.
(target_bfd_reopen): Store a struct target_bfd_data in the
target_ops to_data field, instead of a target_section_table.
* language.c (set_language_command): Strip whitespace.
(set_type_command): Likewise.
(set_range_command): Likewise.
gdb/testsuite
* gdb.base/setshow.exp: Add tests for changes to set language, set
check range, and set check type.
Michael Snyder <msnyder@vmware.com>
* record.c (record_mem_entry): New field 'mem_entry_not_accessible'.
(record_arch_list_add_mem): Initialize 'mem_entry_not_accessible'.
(record_wait): Set 'mem_entry_not_accessible' flag if target
memory not readable. Don't try to change target memory if
'mem_entry_not_accessible' is set.