25 #include "target/target.h" 26 #include "target/resume.h" 27 #include "target/wait.h" 28 #include "target/waitstatus.h" 259 int (*
qxfer_spu) (
const char *annex,
unsigned char *readbuf,
273 unsigned const char *writebuf,
310 unsigned char *myaddr,
unsigned int len);
369 unsigned char *jjump_pad_insn,
388 unsigned const char *writebuf,
426 char *(*pid_to_exec_file) (
int pid);
433 int flags, mode_t mode);
447 char *buf,
size_t bufsiz);
457 const gdb_byte *(*sw_breakpoint_from_kind) (
int kind,
int *size);
461 const char *(*thread_name) (
ptid_t thread);
489 #define create_inferior(program, program_args) \ 490 (*the_target->create_inferior) (program, program_args) 492 #define target_post_create_inferior() \ 495 if (the_target->post_create_inferior != NULL) \ 496 (*the_target->post_create_inferior) (); \ 499 #define myattach(pid) \ 500 (*the_target->attach) (pid) 504 #define target_supports_fork_events() \ 505 (the_target->supports_fork_events ? \ 506 (*the_target->supports_fork_events) () : 0) 508 #define target_supports_vfork_events() \ 509 (the_target->supports_vfork_events ? \ 510 (*the_target->supports_vfork_events) () : 0) 512 #define target_supports_exec_events() \ 513 (the_target->supports_exec_events ? \ 514 (*the_target->supports_exec_events) () : 0) 516 #define target_handle_new_gdb_connection() \ 519 if (the_target->handle_new_gdb_connection != NULL) \ 520 (*the_target->handle_new_gdb_connection) (); \ 523 #define detach_inferior(pid) \ 524 (*the_target->detach) (pid) 526 #define mythread_alive(pid) \ 527 (*the_target->thread_alive) (pid) 529 #define fetch_inferior_registers(regcache, regno) \ 530 (*the_target->fetch_registers) (regcache, regno) 532 #define store_inferior_registers(regcache, regno) \ 533 (*the_target->store_registers) (regcache, regno) 535 #define join_inferior(pid) \ 536 (*the_target->join) (pid) 538 #define target_supports_non_stop() \ 539 (the_target->supports_non_stop ? (*the_target->supports_non_stop ) () : 0) 541 #define target_async(enable) \ 542 (the_target->async ? (*the_target->async) (enable) : 0) 544 #define target_process_qsupported(features, count) \ 547 if (the_target->process_qsupported) \ 548 the_target->process_qsupported (features, count); \ 551 #define target_supports_catch_syscall() \ 552 (the_target->supports_catch_syscall ? \ 553 (*the_target->supports_catch_syscall) () : 0) 555 #define target_get_ipa_tdesc_idx() \ 556 (the_target->get_ipa_tdesc_idx \ 557 ? (*the_target->get_ipa_tdesc_idx) () : 0) 559 #define target_supports_tracepoints() \ 560 (the_target->supports_tracepoints \ 561 ? (*the_target->supports_tracepoints) () : 0) 563 #define target_supports_fast_tracepoints() \ 564 (the_target->install_fast_tracepoint_jump_pad != NULL) 566 #define target_get_min_fast_tracepoint_insn_len() \ 567 (the_target->get_min_fast_tracepoint_insn_len \ 568 ? (*the_target->get_min_fast_tracepoint_insn_len) () : 0) 570 #define thread_stopped(thread) \ 571 (*the_target->thread_stopped) (thread) 573 #define pause_all(freeze) \ 576 if (the_target->pause_all) \ 577 (*the_target->pause_all) (freeze); \ 580 #define unpause_all(unfreeze) \ 583 if (the_target->unpause_all) \ 584 (*the_target->unpause_all) (unfreeze); \ 587 #define stabilize_threads() \ 590 if (the_target->stabilize_threads) \ 591 (*the_target->stabilize_threads) (); \ 594 #define install_fast_tracepoint_jump_pad(tpoint, tpaddr, \ 595 collector, lockaddr, \ 598 trampoline, trampoline_size, \ 600 jjump_pad_insn_size, \ 601 adjusted_insn_addr, \ 602 adjusted_insn_addr_end, \ 604 (*the_target->install_fast_tracepoint_jump_pad) (tpoint, tpaddr, \ 605 collector,lockaddr, \ 606 orig_size, jump_entry, \ 610 jjump_pad_insn_size, \ 611 adjusted_insn_addr, \ 612 adjusted_insn_addr_end, \ 615 #define target_emit_ops() \ 616 (the_target->emit_ops ? (*the_target->emit_ops) () : NULL) 618 #define target_supports_disable_randomization() \ 619 (the_target->supports_disable_randomization ? \ 620 (*the_target->supports_disable_randomization) () : 0) 622 #define target_supports_agent() \ 623 (the_target->supports_agent ? \ 624 (*the_target->supports_agent) () : 0) 626 #define target_supports_btrace(format) \ 627 (the_target->supports_btrace \ 628 ? (*the_target->supports_btrace) (the_target, format) : 0) 630 #define target_enable_btrace(ptid, conf) \ 631 (*the_target->enable_btrace) (ptid, conf) 633 #define target_disable_btrace(tinfo) \ 634 (*the_target->disable_btrace) (tinfo) 636 #define target_read_btrace(tinfo, buffer, type) \ 637 (*the_target->read_btrace) (tinfo, buffer, type) 639 #define target_read_btrace_conf(tinfo, buffer) \ 640 (*the_target->read_btrace_conf) (tinfo, buffer) 642 #define target_supports_range_stepping() \ 643 (the_target->supports_range_stepping ? \ 644 (*the_target->supports_range_stepping) () : 0) 646 #define target_supports_stopped_by_sw_breakpoint() \ 647 (the_target->supports_stopped_by_sw_breakpoint ? \ 648 (*the_target->supports_stopped_by_sw_breakpoint) () : 0) 650 #define target_stopped_by_sw_breakpoint() \ 651 (the_target->stopped_by_sw_breakpoint ? \ 652 (*the_target->stopped_by_sw_breakpoint) () : 0) 654 #define target_supports_stopped_by_hw_breakpoint() \ 655 (the_target->supports_stopped_by_hw_breakpoint ? \ 656 (*the_target->supports_stopped_by_hw_breakpoint) () : 0) 658 #define target_supports_hardware_single_step() \ 659 (the_target->supports_hardware_single_step ? \ 660 (*the_target->supports_hardware_single_step) () : 0) 662 #define target_stopped_by_hw_breakpoint() \ 663 (the_target->stopped_by_hw_breakpoint ? \ 664 (*the_target->stopped_by_hw_breakpoint) () : 0) 666 #define target_breakpoint_kind_from_pc(pcptr) \ 667 (the_target->breakpoint_kind_from_pc \ 668 ? (*the_target->breakpoint_kind_from_pc) (pcptr) \ 669 : default_breakpoint_kind_from_pc (pcptr)) 671 #define target_breakpoint_kind_from_current_state(pcptr) \ 672 (the_target->breakpoint_kind_from_current_state \ 673 ? (*the_target->breakpoint_kind_from_current_state) (pcptr) \ 674 : target_breakpoint_kind_from_pc (pcptr)) 676 #define target_supports_software_single_step() \ 677 (the_target->supports_software_single_step ? \ 678 (*the_target->supports_software_single_step) () : 0) 693 #define target_core_of_thread(ptid) \ 694 (the_target->core_of_thread ? (*the_target->core_of_thread) (ptid) \ 697 #define target_thread_name(ptid) \ 698 (the_target->thread_name ? (*the_target->thread_name) (ptid) \ 701 #define target_thread_handle(ptid, handle, handle_len) \ 702 (the_target->thread_handle ? (*the_target->thread_handle) \ 703 (ptid, handle, handle_len) \ CORE_ADDR(* read_pc)(struct regcache *regcache)
int(* supports_btrace)(struct target_ops *, enum btrace_format)
const char * target_pid_to_str(ptid_t)
int(* prepare_to_access_memory)(void)
void(* post_create_inferior)(void)
int read_inferior_memory(CORE_ADDR memaddr, unsigned char *myaddr, int len)
int(* stopped_by_watchpoint)(void)
int(* qxfer_osdata)(const char *annex, unsigned char *readbuf, unsigned const char *writebuf, CORE_ADDR offset, int len)
int(* multifs_open)(int pid, const char *filename, int flags, mode_t mode)
int(* get_tls_address)(struct thread_info *thread, CORE_ADDR offset, CORE_ADDR load_module, CORE_ADDR *address)
int(* get_ipa_tdesc_idx)(void)
int start_non_stop(int nonstop)
struct target_ops * the_target
int(* stopped_by_sw_breakpoint)(void)
int(* read_loadmap)(const char *annex, CORE_ADDR offset, unsigned char *myaddr, unsigned int len)
void(* fetch_registers)(struct regcache *regcache, int regno)
void(* store_registers)(struct regcache *regcache, int regno)
int(* insert_point)(enum raw_bkpt_type type, CORE_ADDR addr, int size, struct raw_breakpoint *bp)
int(* get_tib_address)(ptid_t ptid, CORE_ADDR *address)
void(* mourn)(struct process_info *proc)
int(* remove_point)(enum raw_bkpt_type type, CORE_ADDR addr, int size, struct raw_breakpoint *bp)
int(* qxfer_siginfo)(const char *annex, unsigned char *readbuf, unsigned const char *writebuf, CORE_ADDR offset, int len)
int(* supports_multi_process)(void)
CORE_ADDR step_range_start
int(* supports_hardware_single_step)(void)
int(* attach)(unsigned long pid)
int(* read_offsets)(CORE_ADDR *text, CORE_ADDR *data)
int(* core_of_thread)(ptid_t)
int(* create_inferior)(const char *program, const std::vector< char *> &program_args)
int(* write_memory)(CORE_ADDR memaddr, const unsigned char *myaddr, int len)
int(* thread_stopped)(struct thread_info *thread)
int(* thread_alive)(ptid_t pid)
void(* request_interrupt)(void)
void(* unpause_all)(int unfreeze)
int(* supports_agent)(void)
int(* supports_vfork_events)(void)
int(* handle_monitor_command)(char *)
void(* process_qsupported)(char **features, int count)
void(* pause_all)(int freeze)
void(* done_accessing_memory)(void)
int(* supports_stopped_by_hw_breakpoint)(void)
int(* multifs_unlink)(int pid, const char *filename)
void(* look_up_symbols)(void)
ptid_t(* wait)(ptid_t ptid, struct target_waitstatus *status, int options)
bool(* thread_handle)(ptid_t ptid, gdb_byte **handle, int *handle_len)
int(* get_min_fast_tracepoint_insn_len)(void)
int(* qxfer_spu)(const char *annex, unsigned char *readbuf, unsigned const char *writebuf, CORE_ADDR offset, int len)
int(* supports_catch_syscall)(void)
int(* qxfer_libraries_svr4)(const char *annex, unsigned char *readbuf, unsigned const char *writebuf, CORE_ADDR offset, int len)
int write_inferior_memory(CORE_ADDR memaddr, const unsigned char *myaddr, int len)
int(* supports_tracepoints)(void)
int(* supports_exec_events)(void)
int prepare_to_access_memory(void)
int(* supports_fork_events)(void)
int(* supports_non_stop)(void)
int(* breakpoint_kind_from_pc)(CORE_ADDR *pcptr)
ssize_t(* multifs_readlink)(int pid, const char *filename, char *buf, size_t bufsiz)
void done_accessing_memory(void)
int(* read_auxv)(CORE_ADDR offset, unsigned char *myaddr, unsigned int len)
ptid_t mywait(ptid_t ptid, struct target_waitstatus *ourstatus, int options, int connected_wait)
int(* install_fast_tracepoint_jump_pad)(CORE_ADDR tpoint, CORE_ADDR tpaddr, CORE_ADDR collector, CORE_ADDR lockaddr, ULONGEST orig_size, CORE_ADDR *jump_entry, CORE_ADDR *trampoline, ULONGEST *trampoline_size, unsigned char *jjump_pad_insn, ULONGEST *jjump_pad_insn_size, CORE_ADDR *adjusted_insn_addr, CORE_ADDR *adjusted_insn_addr_end, char *err)
int(* supports_range_stepping)(void)
void(* resume)(struct thread_resume *resume_info, size_t n)
int(* read_memory)(CORE_ADDR memaddr, unsigned char *myaddr, int len)
int(* supports_disable_randomization)(void)
void(* stabilize_threads)(void)
int(* supports_z_point_type)(char z_type)
unsigned long long ULONGEST
int(* start_non_stop)(int)
int(* breakpoint_kind_from_current_state)(CORE_ADDR *pcptr)
void(* handle_new_gdb_connection)(void)
int target_can_do_hardware_single_step(void)
int(* stopped_by_hw_breakpoint)(void)
int(* supports_software_single_step)(void)
static std::vector< char * > program_args
int default_breakpoint_kind_from_pc(CORE_ADDR *pcptr)
int(* read_btrace)(struct btrace_target_info *, struct buffer *, enum btrace_read_type type)
CORE_ADDR(* stopped_data_address)(void)
void(* write_pc)(struct regcache *regcache, CORE_ADDR pc)
void set_target_ops(struct target_ops *)
int(* supports_stopped_by_sw_breakpoint)(void)
int(* read_btrace_conf)(const struct btrace_target_info *, struct buffer *)
int(* disable_btrace)(struct btrace_target_info *tinfo)
void(* hostio_last_error)(char *buf)