20#ifndef DISPLACED_STEPPING_H
21#define DISPLACED_STEPPING_H
23#include "gdbsupport/array-view.h"
24#include "gdbsupport/byte-vector.h"
35#define displaced_debug_printf(fmt, ...) \
36 debug_prefixed_printf_cond (debug_displaced, "displaced",fmt, ##__VA_ARGS__)
71 = std::unique_ptr<displaced_step_copy_insn_closure>;
159 gdb_assert (buffer_addrs.size () > 0);
161 m_buffers.reserve (buffer_addrs.size ());
163 for (CORE_ADDR buffer_addr : buffer_addrs)
168 CORE_ADDR &displaced_pc);
189 const CORE_ADDR
addr;
207 std::vector<displaced_step_buffer>
m_buffers;
displaced_step_prepare_status
@ DISPLACED_STEP_PREPARE_STATUS_CANT
@ DISPLACED_STEP_PREPARE_STATUS_UNAVAILABLE
@ DISPLACED_STEP_PREPARE_STATUS_OK
std::unique_ptr< displaced_step_copy_insn_closure > displaced_step_copy_insn_closure_up
displaced_step_finish_status
@ DISPLACED_STEP_FINISH_STATUS_OK
@ DISPLACED_STEP_FINISH_STATUS_NOT_EXECUTED
mach_port_t mach_port_t name mach_port_t mach_port_t name kern_return_t int status
buf_displaced_step_copy_insn_closure(int buf_size)
gdb::byte_vector saved_copy
displaced_step_copy_insn_closure_up copy_insn_closure
thread_info * current_thread
displaced_step_buffer(CORE_ADDR addr)
std::vector< displaced_step_buffer > m_buffers
displaced_step_prepare_status prepare(thread_info *thread, CORE_ADDR &displaced_pc)
displaced_step_buffers(gdb::array_view< CORE_ADDR > buffer_addrs)
void restore_in_ptid(ptid_t ptid)
const displaced_step_copy_insn_closure * copy_insn_closure_by_addr(CORE_ADDR addr)
displaced_step_finish_status finish(gdbarch *arch, thread_info *thread, const target_waitstatus &status)
virtual ~displaced_step_copy_insn_closure()=0
displaced_step_inferior_state()
unsigned int in_progress_count
gdbarch * m_original_gdbarch
gdbarch * get_original_gdbarch() const
void set(gdbarch *original_gdbarch)