我通过执行以下操作来定义断点:
breakpoint = target.BreakpointCreateByAddress(loadAddr)
breakpoint.SetScriptCallbackFunction( "mylldbmodule.bp_hit" )
我的bp_hit函数定义为:
def bp_hit(frame, *args):
thread = frame.GetThread()
process = thread.GetProcess()
#
# some work done here
#
#thread.StepInstruction( True )
#thread.StepInstruction( True )
#
# some more work done here
#
当我的断点被击中时,我可以看到我的电脑处于loadAddr。如果我执行了一个StepInstruction调用,当我查看它时,我的pc是loadAddr + 4。但是,如果两个StepInstructions都被执行,那么当我查看它时,我的pc仍然是loadAddr + 4。
由于某种原因,第二个(甚至第三个)StepInstruction对电脑没有影响。
为什么呢?我能做些什么来按预期完成这项工作?
谢谢。