X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Finfrun.h;h=c276ca9aa6bf8b8bcf9675ccd19aff958881a52d;hb=refs%2Fheads%2Fconcurrent-displaced-stepping-2020-04-01;hp=a49d8627c0aac8f80cc1b8c340b3ca9a056fbce2;hpb=bb88694d7308f6cd4a992c927b04703aaac34e56;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/infrun.h b/gdb/infrun.h index a49d8627c0..c276ca9aa6 100644 --- a/gdb/infrun.h +++ b/gdb/infrun.h @@ -220,8 +220,8 @@ extern void clear_exit_convenience_vars (void); extern void displaced_step_dump_bytes (struct ui_file *file, const gdb_byte *buf, size_t len); -extern struct displaced_step_closure *get_displaced_step_closure_by_addr - (CORE_ADDR addr); +extern struct displaced_step_copy_insn_closure * + get_displaced_step_copy_insn_closure_by_addr (CORE_ADDR addr); extern void update_observer_mode (void); @@ -261,68 +261,4 @@ extern void all_uis_check_sync_execution_done (void); started or re-started). */ extern void all_uis_on_sync_execution_starting (void); -/* Base class for displaced stepping closures (the arch-specific data). */ - -struct displaced_step_closure -{ - virtual ~displaced_step_closure () = 0; -}; - -using displaced_step_closure_up = std::unique_ptr; - -/* A simple displaced step closure that contains only a byte buffer. */ - -struct buf_displaced_step_closure : displaced_step_closure -{ - buf_displaced_step_closure (int buf_size) - : buf (buf_size) - {} - - gdb::byte_vector buf; -}; - -/* Per-inferior displaced stepping state. */ -struct displaced_step_inferior_state -{ - displaced_step_inferior_state () - { - reset (); - } - - /* Put this object back in its original state. */ - void reset () - { - failed_before = 0; - step_thread = nullptr; - step_gdbarch = nullptr; - step_closure.reset (); - step_original = 0; - step_copy = 0; - step_saved_copy.clear (); - } - - /* True if preparing a displaced step ever failed. If so, we won't - try displaced stepping for this inferior again. */ - int failed_before; - - /* If this is not nullptr, this is the thread carrying out a - displaced single-step in process PID. This thread's state will - require fixing up once it has completed its step. */ - thread_info *step_thread; - - /* The architecture the thread had when we stepped it. */ - gdbarch *step_gdbarch; - - /* The closure provided gdbarch_displaced_step_copy_insn, to be used - for post-step cleanup. */ - displaced_step_closure_up step_closure; - - /* The address of the original instruction, and the copy we - made. */ - CORE_ADDR step_original, step_copy; - - /* Saved contents of copy area. */ - gdb::byte_vector step_saved_copy; -}; - #endif /* INFRUN_H */