1

Тема: Отладка Lua-скриптов в QUIK: Decoda

может кому интересно будет
http://www.youtube.com/watch?v=vzlqT89Q8wY

2 (2013-01-31 00:46:54 отредактировано admin)

Re: Отладка Lua-скриптов в QUIK: Decoda

UPD 16.08.2013: Поправил описание, т.к. теперь Decoda стала free.


Отладка Lua-скриптов в QUIK при помощи отладчика Decoda

Для  Lua есть замечательная IDE со встроенным отладчиком под названием Decoda. Собственно только отладчик нас сейчас из нее и интересует. На данный момент Decoda полностью бесплатна, кроме того полностью открыт исходный код.

Важно: Отладка Lua-скриптов при помощи Decoda возможна только в терминале QUIK версии 6.5.1.19 и старше. В версиях младше указанной отладка не работает.

Установка Decoda

Скачиваем инсталлятор по ссылке Download Decoda.exe с официального сайта
http://unknownworlds.com/decoda/download/
Запускаем, устанавливаем, везде просто жмем «Next» или «Ok».

Отладка при помощи Decoda

Для успешной отладки важно соблюдать определенную последовательность действий, иначе QUIK виснет или вываливается с ошибкой.
Возьмем какой-нибудь простой скрипт для пробы, я сохранил его в файл test-decoda.lua в папке D:\LuaTest\.

t = {}
t["one"] = "data one"
t["two"] = "data two"

for i = 1, 3 do
  message(tostring(i), 1)
end

function main()
end
  1. Запускаем Quik.
    Добавляем отлаживаемый скрипт: Таблицы -> Lua -> Доступные скрипты -> Добавить
    Скрипт пока не запускаем на выполнение!

  2. Запускаем Decoda.
    Выбираем в меню: Debug -> Processes...
    В открывшемся окне выбираем процесс info.exe и нажимаем «Attach»
    В окне «Output» в Decoda видим информацию о подключении к процессу.
    В Decoda идем в меню File -> Open...  и выбираем наш файл.
    Поставим точку останова (Break-point) в той строчке, начиная с которой мы хотим посмотреть выполнение программы по шагам. Для этого напротив этой строчки кликаем мышью в серой области

  3. Возвращаемся в Quik и запускаем наш скрипт

Тут же происходит остановка на указанной нами строчке (видно по желтой стрелке). В это время терминал QUIK «подвисает», могут наблюдаться некорректности обновления информации в его окнах, но это не страшно, это естественный результат работы под отладчиком.

Для перемещения по коду используем клавиши:

  • F5 – продолжить выполнение до следующей точки остановки

  • F10 – один шаг без входа внутрь встречающихся функций

  • F11 – один шаг со входом внутрь всех встречающихся функций

Там, где мы остановились, у нас уже существует переменная t и ее значение можно посмотреть. Для этого нужно просто сделать двойной клик мыши на пустой строке в окне Watch и указать там имя нашей переменной t.

Как видим, при первой остановке в t содержится пустая таблица.
Последовательно нажимая F10 для последовательного выполнения программы построчно, мы можем видеть, как изменяются значения переменных в программе. Кроме того, мы можем добавлять переменные в окно Watch простым перетягиванием их мышкой из исходного кода, как я поступил с переменной i в ролике ниже.

https://quik2dde.ru/static-img/32/10-decoda-quik.gif


Есть еще немного другой способ открыть исходный код в отладчике: если скрипт у нас «не одноразовый», т.е. содержит цикл ожидания внутри main(), то можно после подключения Decoda к Quik сначала запустить скрипт на выполнение, после чего в окне Decoda появятся выполняемые файлы, текст которых можно открыть двойным кликом.

Разумеется, отлаживать можно более сложные скрипты, в том числе останавливаясь внутри функции main().

3

Re: Отладка Lua-скриптов в QUIK: Decoda

с последней версии декоды работают брейки, но аттач к процессу квика иногда глючит и приходится его перезапускать

4

Re: Отладка Lua-скриптов в QUIK: Decoda

Начиная с версии QUIK 6.4 qlua.dll показывает наружу функции API Lua. Это как раз требовалось для отладки с Декодой. Просто это у них этот момент был не очевидно было в FAQ написано.
Месяца два назад когда я сайт смотрел то цены на нее были такие:
- коммерческая лицензия почти 500 $
- для компаний с годовым доходом менее 100 000 $ можно купить полнофункциональную версию за 50$.

насчет зависаний. Декода внедряется в отлаживаемый процесс и если она зависает, то лечится это только рестартом процесса и декоды.
А вообще это самый удобный и функциональный отладчик для Lua, на мой взгляд

5

Re: Отладка Lua-скриптов в QUIK: Decoda

что то не получается скачать

6

Re: Отладка Lua-скриптов в QUIK: Decoda

Куда-то заныкали они свою декоду, факт. И сайт свой все переделывают и переделывают куда-то...
Можете пока скачать с этого сайта дистрибутив Decoda, взятый с сайта когда он там еще был разработчиков.

7

Re: Отладка Lua-скриптов в QUIK: Decoda

Decoda теперь open-source.
Но у меня что-то не работает. При коннекте процесса говорит: "Error: The process could not be opened".