X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Farch-utils.h;h=6b7a073c8cc8f5327f78e34a9cfc9737cf8622c3;hb=237fc4c9cdd1a1df1e53a8321dfd7b147da722fd;hp=dc5fc037e938bb6b4362719666532af09c4a4b62;hpb=0428b8f567d7966cd47efe0cc99eb8b5072c625e;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/arch-utils.h b/gdb/arch-utils.h index dc5fc037e9..6b7a073c8c 100644 --- a/gdb/arch-utils.h +++ b/gdb/arch-utils.h @@ -30,6 +30,30 @@ struct gdbarch_info; /* gdbarch trace variable */ extern int gdbarch_debug; +/* An implementation of gdbarch_displaced_step_copy_insn for + processors that don't need to modify the instruction before + single-stepping the displaced copy. + + Simply copy gdbarch_max_insn_length (ARCH) bytes from FROM to TO. + The closure is an array of that many bytes containing the + instruction's bytes, allocated with xmalloc. */ +extern struct displaced_step_closure * + simple_displaced_step_copy_insn (struct gdbarch *gdbarch, + CORE_ADDR from, CORE_ADDR to, + struct regcache *regs); + +/* Simple implementation of gdbarch_displaced_step_free_closure: Call + xfree. + This is appropriate for use with simple_displaced_step_copy_insn. */ +extern void + simple_displaced_step_free_closure (struct gdbarch *gdbarch, + struct displaced_step_closure *closure); + +/* Possible value for gdbarch_displaced_step_location: + Place displaced instructions at the program's entry point, + leaving space for inferior function call return breakpoints. */ +extern CORE_ADDR displaced_step_at_entry_point (struct gdbarch *gdbarch); + /* The only possible cases for inner_than. */ extern int core_addr_lessthan (CORE_ADDR lhs, CORE_ADDR rhs); extern int core_addr_greaterthan (CORE_ADDR lhs, CORE_ADDR rhs);