Во-первых, нет никаких причин, по которым план шага должен делать только один шаг. Если вы хотите сделать шаг навсегда, просто сделайте план шага - никогда не устанавливайте план для завершения и возвращайте false из should_stop
. Еще удобнее, если вы используете последнюю версию lldb, вы можете передавать аргументы в ваш сценарий шага, используя аргументы -k <key> -v <value>
. Таким образом, вы могли бы также сделать так, чтобы ваш план выполнял входные данные «count» и делал это много раз.
В противном случае, самый простой способ сделать это - использовать интерфейс Python для реализации пользовательской команды, которая автоматизирует это шаг. SBThreads - это то, что вы делаете. Если вы используете командную форму, которая принимает SBExecutionContext, описанный здесь:
https://lldb.llvm.org/use/python-reference.html#id6
, вы можете получить поток из SBExecutionContext.thread
, затем использовать SBThread. StepUsingScriptedThreadPlan
для позвоните в ваш план потока, чтобы сделать шаг. Как только вы окажетесь в python, напишите al oop, чтобы сделать это навсегда или до какого-то состояния, и т.д. c. должно быть легко. Ваша команда также может проходить несколько раз, например, c.
Обратите внимание, вы также можете запускать команды в интерпретаторе сценариев, используя SBCommandInterpreter.HandleCommand
, если вам это кажется более легким.