脚本中的LLDB make命令

时间:2020-03-25 14:06:22

标签: lldb macos-mojave

我创建了step-scripted,可以为我打印调试器调用的函数的名称。

现在,我想自动化需要输入的部分: thread step-scripted -C MyTrace.Trace

如何从脚本运行以上命令?

所以我会做这样的事情:

script
while True:
    thread step-scripted -C MyTrace.Trace

1 个答案:

答案 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在脚本解释器中运行命令。