我创建了step-scripted
,可以为我打印调试器调用的函数的名称。
现在,我想自动化需要输入的部分:
thread step-scripted -C MyTrace.Trace
如何从脚本运行以上命令?
所以我会做这样的事情:
script
while True:
thread step-scripted -C MyTrace.Trace
答案 0 :(得分:0)
首先,没有理由只需要执行一个步骤计划。如果您想永远走一步,那么就要做一步计划-永远不要将计划设置为完成,并从should_stop
返回false。更加方便的是,如果您使用的是最新的lldb,则可以使用-k <key> -v <value>
参数将参数传递给脚本化的计划。因此,您也可以让您的计划进行“计数”输入,并执行多次。
否则,最简单的方法是使用Python接口来实现可自动执行此步骤的自定义命令。 SBThreads是您执行的任务。如果您使用带有SBExecutionContext的命令形式,请在此处进行描述:
https://lldb.llvm.org/use/python-reference.html#id6
您可以从SBExecutionContext.thread
获取线程,然后使用SBThread. StepUsingScriptedThreadPlan
调用线程计划以执行此步骤。一旦使用了python,就可以轻松编写一个循环以永久地做到这一点,或者直到某些情况等为止。您的命令也可能需要执行多次操作,等等。
请注意,如果您觉得更方便,也可以使用SBCommandInterpreter.HandleCommand
在脚本解释器中运行命令。