Как сделать интерпретатор команд осведомленным о вновь созданной цели - PullRequest
0 голосов
/ 12 января 2020

Я хочу использовать LLDB в качестве python библиотеки, как описано здесь https://lldb.llvm.org/use/python-reference.html#using -the-lldb-py-module-in- python.

После создания цели с помощью

debugger = lldb.SBDebugger.Create()
target = debugger.CreateTargetWithFileAndArch(path_to_executable, lldb.LLDB_ARCH_DEFAULT)

и получения интерпретатора команд с помощью

interpreter = debugger.GetCommandInterpreter()

Я пытаюсь запустить цель с помощью

ret = llldb.SBCommandReturnObject()
interpreter.HandleCommand('/r', ret)

Я получаю error: invalid target, create a target using the 'target create' command. Я также пытался установить выбранную цель с помощью debugger.SetSelectedTarget(target), но она также не работала. Выполнение file <path_to_target> в обработчике команд работает должным образом.

Есть ли способ создать цель в python и выполнить команды в интерпретаторе против нее?

1 Ответ

0 голосов
/ 12 января 2020

Очевидно, debugger.CreateTargetWithFileAndArch не возвращает действительные цели, которые вы можете увидеть, выполнив bool(target). Используйте

target = debugger.CreateTargetWithFileAndArch(path_to_executable, lldb.LLDB_ARCH_DEFAULT)
debugger.SetSelectedTarget(target)
...