Messages in this thread | | | Date | Thu, 1 Dec 2011 11:22:11 +0530 | From | Srikar Dronamraju <> | Subject | Re: [PATCH v7 3.2-rc2 8/30] x86: analyze instruction and determine fixups. |
| |
* Oleg Nesterov <oleg@redhat.com> [2011-11-30 19:57:51]:
> On 11/18, Srikar Dronamraju wrote: > > > > +static void handle_riprel_insn(struct mm_struct *mm, struct uprobe *uprobe, > > + struct insn *insn) > > +{ > > [...snip...] > > + if (insn->immediate.nbytes) { > > + cursor++; > > + memmove(cursor, cursor + insn->displacement.nbytes, > > + insn->immediate.nbytes); > > + } > > + return; > > +} > > Of course I don not understand this code. But it seems that it can > rewrite uprobe->insn ? >
Yes, we do rewrite the instruction for the RIP relative instructions. But the first byte is still intact.
> If yes, don't we need to save the original insn for unregister_uprobe?
When we unregister, we just put back the least opcode size which happens to be the first byte for x86.
-- Thanks and Regards Srikar
| |