[DynInst_API:] Snippet register get modified by EmitStackAlign


Date: Thu, 15 Jan 2015 15:07:41 +0100
From: Xi Chen <xi.chen.chn@xxxxxxxxx>
Subject: [DynInst_API:] Snippet register get modified by EmitStackAlign
Hi,
 I got a situation that Dyninst overwrite register value which generate in my snippet because of the protection of stack and eflag register. Because in the emitStackAlign function (emit-x86.C), it try to align the stack and rax register is used in the middle. so if the snippet which put result into $rax, the value will be modified.Â
 A generated example:Â
Âlea  Â-0x80(%rsp),%rsp
Âpush  %rax
Âlahf
Âseto  %al
Âpush  %rax
Âmov  Â0x655df0,%rax --> the snippet I added.
Âpop  Â%rax
Âadd  Â$0x7f,%al
Âsahf
Âpop  Â%rax
Âlea  Â0x80(%rsp),%rsp

I want to ask if there are any API which I can turn off this trampline code?
Thanks in advance.


--
Best Regards
X.Chen


[← Prev in Thread] Current Thread [Next in Thread→]