【发布时间】:2015-08-31 04:22:20
【问题描述】:
我是 pintool 的新手,我知道如何将指令地址传递给回调,方法是:INS_InsertPredicatedCall(
ins, IPOINT_BEFORE, (AFUNPTR)MyFunction,
IARG_ADDRINT, INS_Address(ins),
IARG_END);
// My call back function is:
MyFunction(UINT64 insAddress) { .... }
有没有办法将指令传递给回调,或者可以从它的地址中提取它。
喜欢:MyFunction( UINT64 insAddress, INS ins ) {.... }
MyFunction(UINT64 insAddress) {
INS ins = someFunction(insAddress);// some function that return instruction of a specified address
}
【问题讨论】:
-
您能解释一下通过将 INS 传递给 myFunction 来实现的目标吗?一般来说,在检测函数中进行尽可能多的处理会更好(性能方面),那么为什么不传递处理结果而不是 INS 对象呢?
-
@nitzanms ,谢谢,首先我想在运行时进行一些处理,但现在我不需要回调中的 INS,我在检测函数中进行一些处理并将其传递给回调函数,(根据您的建议),再次感谢。
-
考虑用类似的方式回答你自己的问题。