Память LLDB или чтение и запись во время выполнения - PullRequest
1 голос
/ 02 апреля 2019

После игры с lldb я хочу найти способ записать регистр или значение памяти, когда условие применяется (точка останова) автоматически.

Есть ли у lldb такая функция?

Спасибо

1 Ответ

2 голосов
/ 02 апреля 2019

Точки останова lldb имеют условия и команды. Условие (от -c до break set или break modify) является выражением C (ObjC / C ++), вычисляемым в контексте кадра попадания точки останова.

Команды (добавленные с breakpoint command add) запускаются только в том случае, если условие имеет значение true. Поэтому, если вы можете выразить условие как выражение, а действие - как последовательность фиксированных команд lldb, тогда вы можете реализовать желаемое поведение таким образом.

Вы также можете писать команды точек останова на Python (breakpoint command add -s python, используя SB API:

https://lldb.llvm.org/python_reference/index.html

поэтому, если у вас есть более сложное условие, при котором вы хотите внести изменения, или более сложные действия, вы можете выполнять эти задачи с помощью API-интерфейса Python.

...