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