X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdbserver%2Fwin32-low.cc;h=8b2a16e86dc6ad66cf7bc3a4e31642921b8224ee;hb=4635ff975351603e64da3cbdeec3b999ee842ac8;hp=727bc9c8c95acb9f4f3e7069693778cc63ef704e;hpb=ea06bbaaaa975331a42f2054551e78f588020462;p=deliverable%2Fbinutils-gdb.git diff --git a/gdbserver/win32-low.cc b/gdbserver/win32-low.cc index 727bc9c8c9..8b2a16e86d 100644 --- a/gdbserver/win32-low.cc +++ b/gdbserver/win32-low.cc @@ -377,7 +377,7 @@ do_initial_child_stuff (HANDLE proch, DWORD pid, int attached) { struct target_waitstatus status; - the_target->pt->wait (minus_one_ptid, &status, 0); + the_target->wait (minus_one_ptid, &status, 0); /* Note win32_wait doesn't return thread events. */ if (status.kind != TARGET_WAITKIND_LOADED) @@ -393,7 +393,7 @@ do_initial_child_stuff (HANDLE proch, DWORD pid, int attached) resume.kind = resume_continue; resume.sig = 0; - the_target->pt->resume (&resume, 1); + the_target->resume (&resume, 1); } } @@ -1793,11 +1793,19 @@ win32_process_target::hostio_last_error (char *buf) } #endif +bool +win32_process_target::supports_qxfer_siginfo () +{ + return true; +} + /* Write Windows signal info. */ -static int -win32_xfer_siginfo (const char *annex, unsigned char *readbuf, - unsigned const char *writebuf, CORE_ADDR offset, int len) +int +win32_process_target::qxfer_siginfo (const char *annex, + unsigned char *readbuf, + unsigned const char *writebuf, + CORE_ADDR offset, int len) { if (siginfo_er.ExceptionCode == 0) return -1; @@ -1816,10 +1824,16 @@ win32_xfer_siginfo (const char *annex, unsigned char *readbuf, return len; } +bool +win32_process_target::supports_get_tib_address () +{ + return true; +} + /* Write Windows OS Thread Information Block address. */ -static int -win32_get_tib_address (ptid_t ptid, CORE_ADDR *addr) +int +win32_process_target::get_tib_address (ptid_t ptid, CORE_ADDR *addr) { win32_thread_info *th; th = thread_rec (ptid, 0); @@ -1832,8 +1846,8 @@ win32_get_tib_address (ptid_t ptid, CORE_ADDR *addr) /* Implementation of the target_ops method "sw_breakpoint_from_kind". */ -static const gdb_byte * -win32_sw_breakpoint_from_kind (int kind, int *size) +const gdb_byte * +win32_process_target::sw_breakpoint_from_kind (int kind, int *size) { *size = the_low_target.breakpoint_len; return the_low_target.breakpoint; @@ -1843,59 +1857,10 @@ win32_sw_breakpoint_from_kind (int kind, int *size) static win32_process_target the_win32_target; -static process_stratum_target win32_target_ops = { - NULL, /* qxfer_osdata */ - win32_xfer_siginfo, - NULL, /* supports_non_stop */ - NULL, /* async */ - NULL, /* start_non_stop */ - NULL, /* supports_multi_process */ - NULL, /* supports_fork_events */ - NULL, /* supports_vfork_events */ - NULL, /* supports_exec_events */ - NULL, /* handle_new_gdb_connection */ - NULL, /* handle_monitor_command */ - NULL, /* core_of_thread */ - NULL, /* read_loadmap */ - NULL, /* process_qsupported */ - NULL, /* supports_tracepoints */ - NULL, /* read_pc */ - NULL, /* write_pc */ - NULL, /* thread_stopped */ - win32_get_tib_address, - NULL, /* pause_all */ - NULL, /* unpause_all */ - NULL, /* stabilize_threads */ - NULL, /* install_fast_tracepoint_jump_pad */ - NULL, /* emit_ops */ - NULL, /* supports_disable_randomization */ - NULL, /* get_min_fast_tracepoint_insn_len */ - NULL, /* qxfer_libraries_svr4 */ - NULL, /* support_agent */ - NULL, /* enable_btrace */ - NULL, /* disable_btrace */ - NULL, /* read_btrace */ - NULL, /* read_btrace_conf */ - NULL, /* supports_range_stepping */ - NULL, /* pid_to_exec_file */ - NULL, /* multifs_open */ - NULL, /* multifs_unlink */ - NULL, /* multifs_readlink */ - NULL, /* breakpoint_kind_from_pc */ - win32_sw_breakpoint_from_kind, - NULL, /* thread_name */ - NULL, /* breakpoint_kind_from_current_state */ - NULL, /* supports_software_single_step */ - NULL, /* supports_catch_syscall */ - NULL, /* get_ipa_tdesc_idx */ - NULL, /* thread_handle */ - &the_win32_target, -}; - /* Initialize the Win32 backend. */ void initialize_low (void) { - set_target_ops (&win32_target_ops); + set_target_ops (&the_win32_target); the_low_target.arch_setup (); }