aboutsummaryrefslogtreecommitdiff
path: root/gdb/target-delegates.c
AgeCommit message (Collapse)AuthorFilesLines
2014-02-19convert to_find_memory_regionsTom Tromey1-0/+10
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_find_memory_regions. (init_dummy_target): Don't initialize to_find_memory_regions. * target.h (struct target_ops) <to_find_memory_regions>: Use TARGET_DEFAULT_FUNC.
2014-02-19convert to_log_commandTom Tromey1-0/+15
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_log_command. * target.h (struct target_ops) <to_log_command>: Use TARGET_DEFAULT_IGNORE. (target_log_command): Unconditionally delegate.
2014-02-19convert to_pid_to_exec_fileTom Tromey1-0/+16
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_pid_to_exec_file. * target.h (struct target_ops) <to_pid_to_exec_file>: Use TARGET_DEFAULT_RETURN.
2014-02-19convert to_thread_nameTom Tromey1-0/+16
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_thread_name. (target_thread_name): Unconditionally delegate. * target.h (struct target_ops) <to_thread_name>: Use TARGET_DEFAULT_RETURN.
2014-02-19convert to_extra_thread_infoTom Tromey1-0/+16
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_extra_thread_info. * target.h (struct target_ops) <to_extra_thread_info>: Use TARGET_DEFAULT_RETURN.
2014-02-19convert to_has_exitedTom Tromey1-0/+16
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_has_exited. * target.h (struct target_ops) <to_has_exited>: Use TARGET_DEFAULT_RETURN..
2014-02-19convert to_set_syscall_catchpointTom Tromey1-0/+16
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_set_syscall_catchpoint. (return_one): Remove. * target.h (struct target_ops) <to_set_syscall_catchpoint>: Use TARGET_DEFAULT_RETURN.
2014-02-19convert to_remove_exec_catchpointTom Tromey1-0/+16
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_insert_exec_catchpoint. * target.h (struct target_ops) <to_insert_exec_catchpoint>: Use TARGET_DEFAULT_RETURN.
2014-02-19convert to_insert_exec_catchpointTom Tromey1-0/+16
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_insert_exec_catchpoint. * target.h (struct target_ops) <to_insert_exec_catchpoint>: Use TARGET_DEFAULT_RETURN.
2014-02-19convert to_remove_vfork_catchpointTom Tromey1-0/+16
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_remove_vfork_catchpoint. * target.h (struct target_ops) <to_remove_vfork_catchpoint>: Use TARGET_DEFAULT_RETURN.
2014-02-19convert to_insert_vfork_catchpointTom Tromey1-0/+16
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_insert_vfork_catchpoint. * target.h (struct target_ops) <to_insert_vfork_catchpoint>: Use TARGET_DEFAULT_RETURN.
2014-02-19convert to_remove_fork_catchpointTom Tromey1-0/+16
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_remove_fork_catchpoint. * target.h (struct target_ops) <to_remove_fork_catchpoint>: Use TARGET_DEFAULT_RETURN.
2014-02-19convert to_insert_fork_catchpointTom Tromey1-0/+16
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_insert_fork_catchpoint. * target.h (struct target_ops) <to_insert_fork_catchpoint>: Use TARGET_DEFAULT_RETURN.
2014-02-19convert to_post_startup_inferiorTom Tromey1-0/+15
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_post_startup_inferior. * target.h (struct target_ops) <to_post_startup_inferior>: Use TARGET_DEFAULT_IGNORE.
2014-02-19convert to_loadTom Tromey1-0/+16
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_load. * target.h (struct target_ops) <to_load>: Use TARGET_DEFAULT_NORETURN.
2014-02-19convert to_terminal_infoTom Tromey1-0/+10
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_terminal_info. * target.h (struct target_ops) <to_terminal_info>: Use TARGET_DEFAULT_FUNC.
2014-02-19convert to_terminal_save_oursTom Tromey1-0/+15
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_terminal_save_ours. * target.h (struct target_ops) <to_terminal_save_ours>: Use TARGET_DEFAULT_IGNORE.
2014-02-19convert to_terminal_oursTom Tromey1-0/+15
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_terminal_ours. * target.h (struct target_ops) <to_terminal_ours>: Use TARGET_DEFAULT_IGNORE.
2014-02-19convert to_terminal_ours_for_outputTom Tromey1-0/+15
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_terminal_ours_for_output. * target.h (struct target_ops) <to_terminal_ours_for_output>: Use TARGET_DEFAULT_IGNORE.
2014-02-19convert to_terminal_inferiorTom Tromey1-0/+15
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_terminal_inferior. * target.h (struct target_ops) <to_terminal_inferior>: Use TARGET_DEFAULT_IGNORE.
2014-02-19convert to_terminal_initTom Tromey1-0/+15
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_terminal_init. * target.h (struct target_ops) <to_terminal_init>: Use TARGET_DEFAULT_IGNORE.
2014-02-19convert to_can_accel_watchpoint_conditionTom Tromey1-0/+16
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_can_accel_watchpoint_condition. * target.h (struct target_ops) <to_can_accel_watchpoint_condition>: Use TARGET_DEFAULT_RETURN.
2014-02-19convert to_region_ok_for_hw_watchpointTom Tromey1-0/+10
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_region_ok_for_hw_watchpoint. * target.h (struct target_ops) <to_region_ok_for_hw_watchpoint>: Use TARGET_DEFAULT_FUNC.
2014-02-19convert to_watchpoint_addr_within_rangeTom Tromey1-0/+10
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_watchpoint_addr_within_range. * target.h (struct target_ops) <to_watchpoint_addr_within_range>: Use TARGET_DEFAULT_FUNC.
2014-02-19convert to_remove_watchpointTom Tromey1-0/+16
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_remove_watchpoint. * target.h (struct target_ops) <to_remove_watchpoint>: Use TARGET_DEFAULT_NORETURN.
2014-02-19convert to_insert_watchpointTom Tromey1-0/+16
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_insert_watchpoint. * target.h (struct target_ops) <to_insert_watchpoint>: Use TARGET_DEFAULT_RETURN.
2014-02-19convert to_remove_hw_breakpointTom Tromey1-0/+16
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_remove_hw_breakpoint. * target.h (struct target_ops) <to_remove_hw_breakpoint>: Use TARGET_DEFAULT_RETURN.
2014-02-19convert to_insert_hw_breakpointTom Tromey1-0/+16
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_insert_hw_breakpoint. * target.h (struct target_ops) <to_insert_hw_breakpoint>: Use TARGET_DEFAULT_RETURN.
2014-02-19convert to_can_use_hw_breakpointTom Tromey1-0/+16
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_can_use_hw_breakpoint. * target.h (struct target_ops) <to_can_use_hw_breakpoint>: Use TARGET_DEFAULT_RETURN.
2014-02-19convert to_files_infoTom Tromey1-0/+15
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_files_info. * target.h (struct target_ops) <to_files_info>: Use TARGET_DEFAULT_IGNORE.
2014-02-19convert to_prepare_to_storeTom Tromey1-0/+16
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_store. * target.h (struct target_ops) <to_store>: Use TARGET_DEFAULT_NORETURN.
2014-02-19convert to_post_attachTom Tromey1-0/+15
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_post_attach. * target.h (struct target_ops) <to_post_attach>: Use TARGET_DEFAULT_IGNORE.
2014-02-19convert to_rcmdTom Tromey1-0/+10
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (update_current_target): Don't inherit or default to_rcmd. (default_rcmd): New function. (do_monitor_command): Unconditionally delegate. * target.h (struct target_ops) <to_rmcd>: Use TARGET_DEFAULT_FUNC.
2014-02-19convert to_attachTom Tromey1-0/+10
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (init_dummy_target): Don't initialize to_attach. (target_attach): Unconditionally delegate. * target.h (struct target_ops) <to_attach>: Use TARGET_DEFAULT_FUNC.
2014-02-19convert to_detachTom Tromey1-0/+15
2014-02-19 Tom Tromey <tromey@redhat.com> * target-delegates.c: Rebuild. * target.c (target_detach): Unconditionally delegate. (init_dummy_target): Don't initialize to_detach. * target.h (struct target_ops) <to_detach>: Use TARGET_DEFAULT_IGNORE.
2014-02-19convert to_supports_btraceTom Tromey1-0/+16
This adds a "self" argument to to_supports_btrace. Due to how one implementation of this method is shared with gdbserver this required a small change to gdbserver as well. 2014-02-19 Tom Tromey <tromey@redhat.com> * common/linux-btrace.c (linux_supports_btrace): Add "ops" argument. * common/linux-btrace.h (linux_supports_btrace): Update. * remote.c (remote_supports_btrace): Add "self" argument. * target-delegates.c: Rebuild. * target.c (target_supports_btrace): Remove. * target.h (struct target_ops) <to_supports_btrace>: Add target_ops argument. (target_supports_btrace): New define. 2014-02-19 Tom Tromey <tromey@redhat.com> * target.h (struct target_ops) <supports_btrace>: Add target_ops argument. (target_supports_btrace): Update.
2014-02-19add target method delegationTom Tromey1-0/+152
This patch replaces some code in the record targets with target method delegation. record-full.c stores pointers to many target methods when the record target is pushed. Then it later delegates some calls via these. This is wrong because it violates the target stack contract. In particular it is ok to unpush a target at any stratum, but record-full does not keep track of this, so it could potentially call into an unpushed target. This patch fixes the problem by using the newly-introduced generic approach to target delegation for the methods in question. 2014-02-19 Tom Tromey <tromey@redhat.com> * record-full.c (record_full_beneath_to_resume_ops) (record_full_beneath_to_resume, record_full_beneath_to_wait_ops) (record_full_beneath_to_wait) (record_full_beneath_to_store_registers_ops) (record_full_beneath_to_store_registers) (record_full_beneath_to_xfer_partial_ops) (record_full_beneath_to_xfer_partial) (record_full_beneath_to_insert_breakpoint_ops) (record_full_beneath_to_insert_breakpoint) (record_full_beneath_to_remove_breakpoint_ops) (record_full_beneath_to_remove_breakpoint) (record_full_beneath_to_stopped_by_watchpoint) (record_full_beneath_to_stopped_data_address) (record_full_beneath_to_async, tmp_to_resume_ops, tmp_to_resume) (tmp_to_wait_ops, tmp_to_wait, tmp_to_store_registers_ops) (tmp_to_store_registers, tmp_to_xfer_partial_ops) (tmp_to_xfer_partial, tmp_to_instmp_to_insert_breakpoint_ops) (tmp_to_insert_breakpoint, tmp_to_remove_breakpoint_ops) (tmp_to_remove_breakpoint, tmp_to_stopped_by_watchpoint) (tmp_to_stopped_data_address, tmp_to_async): Remove. (record_full_open_1, record_full_open): Update. Use RECORD_IS_USED. (record_full_resume, record_full_wait_1) (record_full_stopped_by_watchpoint, record_full_stopped_data_address) (record_full_store_registers, record_full_xfer_partial) (record_full_insert_breakpoint, record_full_remove_breakpoint) (record_full_async, record_full_core_xfer_partial): Use target delegation. * target-delegates.c: Rebuild. * target.c (current_xfer_partial): Remove. (update_current_target): Do not INHERIT or de_fault to_insert_breakpoint, to_remove_breakpoint, to_stopped_data_address, to_stopped_by_watchpoint, to_can_async_p, to_is_async_p, to_async. Do not set to_xfer_partial field. (default_xfer_partial): Simplify. (current_xfer_partial): Remove. (target_wait, target_resume): Simplify. (find_default_can_async_p, find_default_is_async_p): Update. (init_dummy_target): Don't set to_can_async_p, to_is_async_p, to_xfer_partial, to_stopped_by_watchpoint, to_stopped_data_address. (target_store_registers): Simplify. (forward_target_remove_breakpoint) (forward_target_insert_breakpoint): Remove. (target_remove_breakpoint, target_insert_breakpoint) (debug_to_insert_breakpoint, debug_to_remove_breakpoint): Update. * target.h (struct target_ops) <to_resume, to_wait, to_store_registers, to_insert_breakpoint, to_remove_breakpoint, to_stopped_by_watchpoint, to_stopped_data_address, to_can_async_p, to_is_async_p, to_async, to_xfer_partial>: Add TARGET_DEFAULT markup. (forward_target_remove_breakpoint) (forward_target_insert_breakpoint): Remove. * record-btrace.c (record_btrace_remove_breakpoint): Delegate directly. (record_btrace_insert_breakpoint): Delegate directly.
2014-02-19add make-target-delegatesTom Tromey1-0/+14
This patch adds a new script, call make-target-delegates, which auto-generates some target delegation code based on annotations in target.h. This adds the new delegation macros, the new generated file, and adds the necessary calls to the new generated functions to target.c. It doesn't, however, add any actual annotations to the target methods, leaving these for separate patches. 2014-02-19 Tom Tromey <tromey@redhat.com> PR build/7701: * target-delegates.c: New file. * target.c: Include target-delegates.c. (init_dummy_target): Call install_dummy_methods. (complete_target_initialization): Call install_delegators. * target.h (TARGET_DEFAULT_IGNORE, TARGET_DEFAULT_NORETURN) (TARGET_DEFAULT_RETURN, TARGET_DEFAULT_FUNC): New defines. * make-target-delegates: New file.