2016-12-03 1 views
2

Вы можете установить значение существующей локальной переменной через debug.setlocal, но как бы вы создали новую?Создать новую локальную переменную через библиотеку отладки?

+0

Не думайте, что можете. Зачем вам это нужно? –

+0

Как бы вы использовали эту новую локальную переменную? Вы не можете использовать его из своего кода (поскольку все ссылки на несуществующие локальные переменные уже сопоставлены с upvalues ​​или глобальными переменными) –

+0

@egor Мне нужно это для доказательства концепции, мне нужно создать локальную переменную в области вызывается функция. Есть ли другой способ сделать это? – warspyking

ответ

1

Вы не можете создать новую локальную переменную таким образом. setlocal "присваивает значение значение локальной переменной с индексом local для функции на уровне уровня стека" и "возвращает nil, если нет локальной переменной с данным индексом", поэтому она не будет создавать новую переменную.

+0

Мне это известно, я хочу, чтобы создать новую переменную через библиотеку отладки. – warspyking

+0

Невозможно сделать это, используя библиотеку отладки. Как сказал Егор в комментарии, вы, вероятно, можете настроить байт-код, но он не будет сильно отличаться от использования этой переменной в первую очередь. –