Вводная. Если в консоли LLDB на iOS выполнить
(lldb) p/x $r1
(unsigned int) $1 = 0x07000006
(lldb) p/x $r1
(unsigned int) $2 = 0x07000006
(lldb) p/x $r1
(unsigned int) $3 = 0x07000006
...и т.д.
примерно 1500 раз, то в конце концов мы получим ошибку:
error: Couldn't allocate space for the stack frame: Couldn't malloc: address space is full
Errored out in Execute, couldn't PrepareToExecuteJITExpression
Дело в том, что каждый раз когда мы выполняем
p/x $r1, отладчик проводит evaluation (не знаю соответствующего термина на русском, извините) выражения
$r1, в ходе которой выделяется память для переменной
$N (где
N=1,2,3,...). После определенного количества попыток, память кончается и мы видим сообщение об ошибке.
Собственно вопрос: Можно ли как-то освободить память, выделенную отладчиком под переменные
$1,
$2,
$3 и т.д.? Есть какая-то специальная команда для этого в LLDB (в документации не нашел -- может есть недокументированная?) или может скрипт какой можно написать на Python и прикрутить к LLDB?
Спасибо.