В моей компании есть программа, которая использует Lua, встроенную в ее среду выполнения, загружая файлы .lua
с диска и выполняя функции, определенные в них.
Есть ли способ присоединиться к запущенному процессу и установитьточки останова в моих .lua
файлах? (Я бы принял отладку командной строки в стиле gdb как часть дистрибутива Lua, или, возможно, стороннюю IDE, предоставляющую точки останова GUI в стиле Visual-Studio.)
Или то, что я прошу, совершенно бессмысленно и невозможно, учитывая характер времени загрузки случайных файлов с диска?
Редактировать : Похоже, это не бессмысленно, учитывая, что у Луа *Функция 1013 *debug.getinfo()
может определять исходный файл для данной функции, а debug.sethook()
разрешает обратный вызов для каждой новой введенной строки кода.Таким образом, разумно загрузить исходный код с диска и иметь возможность определить, когда интерпретатор выполняет определенную строку кода из этого файла.Остается вопрос: как мне зафиксировать существующий процесс, который имеет интерпретатор Lua, и внедрить собственную функцию трассировки (которая может затем отслеживать пары номеров файлов / строк и приостанавливать выполнение)?