Причина ошибки lldb: не удалось применить побочные эффекты выражения: невозможно дематериализовать регистр x0 без кадра Python

Программы на Python
Ответить
Anonymous
 Причина ошибки lldb: не удалось применить побочные эффекты выражения: невозможно дематериализовать регистр x0 без кадра

Сообщение Anonymous »

В macOS с использованием lldb у меня есть следующее в функции Python, вызываемой через команду сценария, где я хотел бы po зарегистрировать x0 в Arm64 в состоянии, которое, как известно, приостановлено:

Код: Выделить всё

thread = process.GetSelectedThread()
frame = thread.GetSelectedFrame()
lldb.debugger.HandleCommand(f"thread select {thread.GetIndexID()}")
lldb.debugger.HandleCommand(f"frame select {frame.GetFrameID()}")
lldb.debugger.HandleCommand("po $x0")
Обычно (но не на 100% детерминировано) выводится ошибка «Не удалось применить побочные эффекты выражения: невозможно дематериализовать регистр x0 без кадра стека». Когда сценарий завершается вскоре после этой попытки, всегда можно успешно выполнить команду $x0 в интерактивном режиме в lldb.
Я также пробовал несколько разных версий выбора потока и кадра через API Python lldb, а не с помощью команд, но результат был тот же. Я также попробовал просто вызвать «выбор потока 1» и «выбор кадра 0», чтобы гарантировать контекст (по крайней мере, я так думал). Как я это неправильно понимаю?
Мой lldb находится в /usr/bin/lldb (не через Xcode, но Xcode тоже делает это), и это lldb-1700.0.9.502, Apple Swift версии 6.1.2 (swiftlang-6.1.2.1.2) clang-1700.0.13.5)
Это происходит с оптимизированным, удаленным Arm64, но я не думаю, что это проблема, поскольку po работает в интерактивном режиме.
Спасибо за любую помощь!

Подробнее здесь: https://stackoverflow.com/questions/798 ... t-demateri
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»