From de14b6dab7064616fe2828c7ead9cca6a48463ce Mon Sep 17 00:00:00 2001 From: kenistoj Date: Tue, 16 Oct 2007 23:40:49 +0000 Subject: * runtime/uprobes/uprobes.[ch], uprobes_i386.[ch], uprobes_ppc64.h, uprobes_s390.h: Adjusted SLOT_IP and arch_validate_probed_insn to accept task pointer (needed by x86_64); added uprobe_probept_arch_info and uprobe_task_arch_info (ditto). * runtime/uprobes/uprobes_i386.c: Fixed a couple of glitches discovered when porting to x86_64 --- runtime/uprobes/uprobes.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'runtime/uprobes/uprobes.h') diff --git a/runtime/uprobes/uprobes.h b/runtime/uprobes/uprobes.h index 84dd0b2a..e8a06599 100644 --- a/runtime/uprobes/uprobes.h +++ b/runtime/uprobes/uprobes.h @@ -278,9 +278,15 @@ struct uprobe_probept { /* Saved opcode (which has been replaced with breakpoint) */ uprobe_opcode_t opcode; - /* Saved original instruction */ + /* + * Saved original instruction. This may be modified by + * architecture-specific code if the original instruction + * can't be single-stepped out of line as-is. + */ uprobe_opcode_t insn[MAX_UINSN_BYTES / sizeof(uprobe_opcode_t)]; + struct uprobe_probept_arch_info arch_info; + /* The parent uprobe_process */ struct uprobe_process *uproc; @@ -359,6 +365,8 @@ struct uprobe_task { /* Saved address of copied original instruction */ long singlestep_addr; + struct uprobe_task_arch_info arch_info; + /* * Unexpected error in probepoint handling has left task's * text or stack corrupted. Kill task ASAP. -- cgit