[LLDB脚本执行命令

问题描述 投票:0回答:1

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

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

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

所以我会做这样的事情:

script
while True:
    thread step-scripted -C MyTrace.Trace
lldb macos-mojave
1个回答
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在脚本解释器中运行命令。

© www.soinside.com 2019 - 2024. All rights reserved.