Latest post of the previous page:
Пропустил несколько моментов:> Но хочу обратить внимание, что это лишь частный случай, и работа с путями всё ещё имеет серьёзный изъян.
> Например если где-то в коде файл выполняется по относительному пути (dofile("my.lua")) - отладчик не сможет остановиться в этом файле.
Нет, это все должно работать. Если не работает, или что-то странное с путями, или ошибка в отладчике. Пример можно?
Если точно не работает, можете запустить из файла который не отлаживается: print(debug.getinfo(1,"S").source)? И какой путь установлен в качестве директории проекта?
> Обнаружил проблему с print
> В фаре эта функция переопределена, но при подключении отладчика переопределение отменяется.
А где она переопределяется в Fare? Где-нибудь между local mdb = require('mobdebug') и start()? print действительно переназначается когда отладчик получает OUTPUT команду, но она должна посылаться только когда debugger.redirect установлен и в нашем случае он не должен быть установлен.
Можно включить debugger.verbose=true и посмотреть на сообщения в Output window. Там должно быть "output stdout...".
> Без вопросов плохо, т.к. удалятся точки останова (что если на основе diff пытаться их сохранить?)
> Может быть можно исправить ситуацию иначе? Например не выводить сообщение сразу, а подождать пока ZBE получит фокус.
Так оно и должно выводиться только при переключении фокуса.
Я могу попытаться сохранить все маркеры и восстановить их двумя способами: (1) если количество строчек не поменялось, то восстановить на тех же строчках, (2) если поменялось, то проверить на совпадение строчек в окресностях прежних маркеров (+-10 строчек) и восстановить если строчки не поменялись. Не 100%, но должно работать в большинстве случаев.