Отладка lua в visual studio code

Обновлено: 03.07.2024

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

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

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

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

Установка Decoda
Отладка при помощи Decoda

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

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

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

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

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

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

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

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

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

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

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

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

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

3 Ответ от sam 2013-01-30 22:19:15

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

4 Ответ от mbul 2013-01-31 05:27:58

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

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

5 Ответ от zyanov 2013-02-12 19:13:28

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

6 Ответ от admin 2013-02-12 20:16:43

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

7 Ответ от via86 2013-03-13 13:17:47

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

8 Ответ от Nordman 2019-02-09 12:32:21

У кого нибудь Decoda в Windows 10 нормально запускается? У меня выкидывает ошибку:

Ошибка при запуске приложения (0xc000007b). Для выхода из приложения нажмите кнопку "ОК"

Уже и от админа запускал и в настройках совместимости разные версии винды для декоды подставлял - все одно и тоже,
В Windows 7 помню Decoda запускалась нормально, но сносить 10ку и возвращатся в 7ку неохота блин

9 Ответ от Basilisk_Roko 2019-05-07 17:46:25

Ошибка при запуске приложения (0xc000007b). Для выхода из приложения нажмите кнопку "ОК"

после этого тестовый пример заработал

Ошибка при запуске приложения (0xc000007b). Для выхода из приложения нажмите кнопку "ОК"

после этого тестовый пример заработал

С этим разобрался почти сразу же - да для работы Decoda необходим VС2013x86,

Ошибка при запуске приложения (0xc000007b). Для выхода из приложения нажмите кнопку "ОК"

И без этого Decoda норм работает, без всяких SDK и Фреймворков, кроме тех что уже установлены в системе при установке, есс-но, и запуск с правами админа необязателен, что декоды что квика,
Но теперь другая проблема - Брейкпоинты не работают,запустил квик, запустил декоду (или наоборот все равно не работает), приаттачил декоду к квику, загрузил скрипт в декоду и квик, выставил брейкпоинт в скрипте в декоде, запускаю скрипт в квике - брейкпоинт не срабатывает, иногда впрочем срабатывают, причем один раз, сразу после запуска скрипта в квике в первый раз, после возобновления скрипта из декоды брейкпоинт уже больше не срабатывает, даже если и скрипт через него проходит много раз, пробовал из запуск декоды и квика от админа - все равно не работает, пробовал и в Win7 и в Win10 (64х разрядные) со всеми установленными патчами обновлениями фреймворками и библиотеками VC2. x86 x32 - все равно неработает, у кого либо была такая проблема с брейпоинтами и решилась ли?

Использование VSCode точки останова отладки Lua учебник

Vscode может отлаживать Lua очень коровий, я тоже попробовать, результат, правда, только плохо то, что этот плагин можно попробовать только в течение 7 дней, то я хочу, чтобы использовать его, необходимо бесплатно. Отказ Отказ

1. Установите Visual Studio Code (vscode) и плагин Центр Поиск установки LUAIDE


Во-вторых. Настройка Luach.json

1. Инженерные папки непосредственно перетащить в VSCODE

2. Левый значок Панель регулировки -> Настройки -> Выберите LuAdebug, затем Launch.json файл появится


3. Найдите поле exechemath в файле Launch.json изменить путь эмулятора

Например: "ExePath": "D: /xxx/player-3.x/player3.exe",

Другие места могут быть настроены по умолчанию.

Три. Lua конфигурации точки останова отладки

1. Загрузите этот файл на luadebug.lua


2. Поместите файл luadebug.lua в каталоге SRC проекта


3 .. Debug код Добавить

Добавьте следующий код в main.lua файле:

local breakInfoFun,xpcallFun = require("LuaDebug")("localhost", 7003)

--3.x

--1.добавлен Сломанный таймер точка

cc.Director:getInstance():getScheduler():scheduleScriptFunc(breakInfoFun, 0.3, false)

--2.Программа ненормальный монитор

function G__TRACKBACK(errorMessage)

debugXpCall();

local msg = debug.traceback(errorMessage, 3)

print(msg)

end

local status, msg = xpcall(main, G__TRACKBACK)

--если2.x

CCDirector:sharedDirector():getScheduler():scheduleScriptFunc(breakInfoFun, 0.3, false)

function G__TRACKBACK(errorMessage)

debugXpCall();

local msg = debug.traceback(errorMessage, 3)

print(msg)

end

local status, msg = xpcall(main, G__TRACKBACK)


1. Нажмите клавишу F5, чтобы начать отладку

Debug раз начавшись, в верхней части редактора покажет команду отладки бар.


Продолжить / приостановить F5

Выход SHIFT + F11

Остановить отладку SHIFT + F5

2. Нажмите на значок отладки на вид слева от VS кодекса, чтобы открыть вид суда.


3. Некоторые пусконаладочные советы

1 Variable площади не может быть в состоянии видеть ценность в интуитивной точке зрения, или непосредственно редактировать отлаживать переменное значение, или на редактировании исходного кода в редакторе по наведению мыши.

2 Хотите отслеживать переменную, вы можете отредактировать переменную к монитору.

3 Использование вызывающего стека, вы можете знать, когда неправильная функция вызывается, когда она вызывается. Это, кажется, причина ошибки может быть угадывание.

4 В случае, когда исходный код не доступен, но имя функции уже известно, это может быть, нажав на головку области точки останова.+Создание функции точки останова.


V. Редактирование кода пользователя Фрагмент (Отрывки)

Строка меню -> Файл -> Предпочтение -> User Code Fragment -> Lua


Приставка: Этот параметр является быстрым вводом с использованием сегментов коды, такие как журнал журналов здесь, входит журнал, интеллект.

Тело:. Это основная часть кодового сегмента кода, который должен быть установлен здесь Если обертка строка строка отделена \ г \ п обруча Примечание Если значение содержит специальные символы должны быть экранированы.

Заявление многострочный отделяется.

$ 1: Это местоположение курсора.

$ 2: После того, как с помощью этого параметра, следующее местоположение курсора будет строкой, нажмите кнопку Tab, чтобы быстро переключаться, и мы можем иметь $ 3, $ 4, $ 5 .

Описание: Код описание сегмента, описание при использовании интеллектуального восприятия


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

К сожалению, отладка может показаться не столь очевидной при работе с JavaScript за пределами полноценной среды IDE. По крайней мере — на первый взгляд.

В данной статье будет рассмотрен вопрос, как можно выполнять отладку JavaScript-кода в инструменте Google Chrome Dev Tools и в редакторе кода Visual Studio Code.

Примечание переводчика: перейдя по этой ссылке, можно ознакомиться с видеоверсией данной статьи Debugging JavaScript in Google Chrome and Visual Studio Code на английском языке.

Предустановки

В этой статье процесс отладки будет рассмотрен на примере тестового приложения под названием «Quick Chat»:


У вас есть два способа работы с этим приложением. Вы можете самостоятельно создать его, воспользовавшись этой серией видеоуроков. Или же вы можете использовать исходный код уже готового приложения «Quick Chat»:


Какой бы вариант вы не выбрали, вам потребуется локально запустить приложение «Quick Chat».

Вы можете запустить приложение из-под Node.js (как это делаю я). Или воспользоваться плагином под Visual Studio Code под названием Live Server.

Если вы новичок в работе с этим плагином, то можете научиться работать с ним при помощи этого видео — Live Server Extension in Visual Studio Code.

Примечание переводчика: видео на английском языке.

В процессе создания данной статьи я добавил в приложении «Quick Chat» небольшую намеренную ошибку, которая не позволяет зарегистрировать пользователя после его входа в систему.

С технической точки зрения я неправильно получаю имя пользователя, используя для этого usernameInput.text вместо правильного варианта usernameInput.value . Если бы я допустил такую ошибку в реальной жизни, моей первой мыслью было бы воспользоваться инструментом console.log() .

Но это не совсем тот случай, который мог бы мне помочь, как вы можете увидеть на изображении ниже. Если же использование console.log() было также вашей первой мыслью - вы попали по адресу и правильно делаете, что читаете эту статью!


Основы отладки

Начнем с основ. Идея отладки заключается в том, что внутри программного кода можно устанавливать так называемые точки останова (breakpoints) для того, чтобы остановить выполнение программы в определенном месте.

Это дает вам, как разработчику, возможность взглянуть на текущее состояние приложения и проверить, например, значения переменных в нём. Вы даже можете сделать еще больше и отследить любые переменные по своему выбору, чтобы всякий раз, когда приложение останавливается, вы могли проверить значения этих переменных.

После установки точки останова (breakpoint) в коде, как правило, есть несколько вариантов дальнейших действий:

  • продолжить выполнение программы
  • пошагово пройтись по всем этапам выполнения программы — строка за строкой
  • выйти из текущей функции, в которой вы находитесь
  • перейти к выполнению следующей функции

У вас также будет доступ к просмотру стека вызовов (call stack). Другими словами, поскольку в программе функции могут вызывать на исполнение другие функции, то можно просмотреть историю вызовов этих функций.

Отладка в Google Chrome

Чтобы начать отладку приложения в браузере ​​Google Chrome, добавьте в обработчике события кнопки clickBtn оператор debugger , как показано ниже:


Когда выполнение программы дойдет до строки с оператором debugger , приложение будет приостановлено и автоматически активируются инструменты отладки браузера Google Chrome.

Обратите внимание, что приложение в окне браузера закрашено серым цветом, чтобы показать, что оно приостановлено. Также обратите внимание, что вкладка Sources в Chrome Dev Tools открылась автоматически:


Давайте разберемся, что мы видим на вкладке Sources .

Вкладка Sources

Первое, что вы могли заметить на этой вкладке — это копию исходного кода приложения. Это код, который браузер загрузил и с которым он работает.

Вы также можете заметить, что строка кода с оператором debugger подсвечена синим цветом, чтобы сообщить нам, что выполнение приложения остановлено на данном участке кода:


Браузер Google Chrome предоставляет нам возможность просматривать исходный код приложения. Имея перед собой исходный код, можно установить в нем точки останова.

Точка останова предназначена для обозначения места, на котором нужно остановить выполнение программы. Оператор debugger , который мы использовали в примере выше, функционирует как точка останова, но в исходном коде приложения такая точка останова необязательно должна быть только одной.

Точка останова — преднамеренная остановка или приостановка выполнения программы

Чтобы добавить точку останова, нужно выполнить клик мыши на gutter — поле слева от нумерации строк кода. Как только вы выполните это действие, то заметите, что браузер Google Chrome автоматически добавил эту точку останова в список «Breakpoints»:


Вкладка Scope

На вкладке «Scope» вы можете отслеживать переменные в своем приложении. Обратите внимание, что на этой вкладке есть три раздела: локальная область видимости (Local), глобальная область видимости (Global) и раздел сценариев (Script).

В разделе сценариев вы можете отслеживать переменные в области видимости текущего скрипта:


Большую часть времени процесса отладки приложения вы будете проводить именно в этой вкладке. Это гораздо более эффективная альтернатива использованию многочисленным console.log() .

Вкладка Watch

Как уже упоминалось ранее, помимо просмотра переменных на вкладке «Scope», вы также можете определить переменные, значения которых вы хотели бы отслеживать на всем этапе выполнения программы.

Добавляя переменную на вкладке «Watch», каждый раз, когда вы устанавливаете точку останова, вы можете быстро проверить значение этой переменной (которая может иметь значение undefined в зависимости от того, где вы находитесь в коде).

Нажмите значок плюса и введите имя переменной, которую необходимо отслеживать, в нашем случае это usernameInput :


Пошаговое выполнение, стек вызовов и список точек останова

Раздел вкладки «Sources», расположенный в левом нижнем углу окна отладчика, позволяет просмотреть список точек останова, стек вызовов (call stack) и т. д.


В стеке вызовов есть только одна функция, которая является обработчиком события для кнопки входа. Функция указана, потому что это единственная функция, которая была вызвана на данный момент. Поскольку одни функции могут вызывать на исполнение другие функции, то эта цепочка будет обновляться соответствующим образом.

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

Наконец, существуют различные типы точек останова, которые могут быть заданы. Давайте рассмотрим пример создания условной точки останова (conditional breakpoint), которая будет срабатывать только при выполнении определенного условия.

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


В случае отладки приложения Quick Chat , если вы нажмете кнопку входа в систему без имени пользователя, будет запущена эта точка останова. В противном случае код будет продолжать выполняться как обычно.

Обратите внимание, что существует ещё больше доступных вариантов точек останова, которые не рассматриваются в данной статье.

Отладка в Visual Studio Code

Инструмент Chrome Developer Tools является одним из лучших в своем роде. Как вы уже видели, он предлагает отличные возможности и функционал для отладки приложения.

Однако командой разработчиков Visual Studio Code была проделана большая работа для того, чтобы сделать процесс отладки в этом редакторе ещё более совершенным.

Мне очень нравится Visual Studio Code и я провожу в нем больше времени, чем в каком-либо другом редакторе кода. Этот процесс включает в себя и отладку.

Чтобы начать отладку кода в VS Code, вам нужно будет установить плагин Debugger for Chrome :


Давайте познакомимся с вкладкой Debug . По умолчанию она расположена на боковой панели редактора. Откройте эту вкладку, нажав на значок, который выглядит как жучок (bug).

Открыв эту панель, вы увидите инструменты, очень похожие на те, что мы видели в браузере Google Chrome — переменные, стек вызовов, точки останова:


Большинство функциональных возможностей, с которыми мы имели дело в Chrome Dev Tools, также доступны в VS Code.

Теперь, когда мы познакомились с вкладкой Debug , нам необходимо создать конфигурацию, которая укажет редактору VS Code, как ему отлаживать наше приложение.

Lorem ipsum dolor

Отладка кода в Visual Studio происходит довольно просто, если сравнивать это т процесс с другими IDE. Плюс отладчик Visual Studio обладает довольно широкими возможностями и позволяет отлаживать различные технологии, а если имеющихся средств не хватает, то можно воспользоваться дополнениями.

Отладка кода — это один из самых важных процессов. Без отладки в свет не выходит ни одно нормальное приложение. Потому что , независимо от опыта разработчика, код не всегда работает так , как нужно. А иногда и вообще работает совершенно не так. Вот тут как раз и приходит на помощь отладчик, который позволит разобраться , что не так , и найти изъяны. Можно , конечно , много часов провести за самостоятельным выявлением багов, но отладчиком все-таки быстрее и проще.

В то же время отладка кода — это не волшебная палочка, которая быстренько найдет и исправит все недочеты вашего кода. Отладка — это процесс, при котором код пошагово выполняется в некой программе, например , в Visual Studio. В процессе выполнения идет поиск точек, где вы могли допустить ошибку. А вы в это время можете анализировать свой код и вносить необходимые правки для устранения «косяков».

Работа с отладчиком , даже с таким простым , как Visual Studio, требует определенных знаний и понимания , что там внутри происходит. Умение работать с отладчиком вам в любом случае пригодится, если вы хотите связать свою жизнь с разработкой ПО. В этой статье мы ознакомим вас с процессом отладки при помощи Visual Studio.

Отладка кода в Visual Studio

  • орфографические ошибки или опечатки,
  • неправильно подключенные API,
  • неправильное размещение последних корректировок в код,
  • и др.
  • ошибка компиляции;
  • ошибка преобразования типа;
  • код не поддерживает синтаксис;
  • и др .

Как запустить отладчик Visual Studio

  1. Запустить саму программу Visual Studio.
  2. Откр ыть код приложения, который необходимо отладить.
  3. Потом при помощи нажатия клавиши «F5» запустить режим отладки. Также это можно сделать через меню, если нажать «Отладка», а потом «Начать отладку» .
  • последовательность исполнения кода;

  • работу памяти;

  • значение переменных и др.

Какая информация выводится отладчиком Visual Studio

В заключение

Отладка в Visual Studio дает возможность довольно быстро решить проблемы с вашим кодом. Да, без определенных знаний и понимания запустить и понять отладчик Visual Studio будет нелегко, но с опытом все станет понятнее. В разработке без отладки кода — путь в никуда , п отому что стабильность работы приложения — это залог его качества. И если на самом старте разработк и игнорировать этот процесс, то нет смысла идти дальше.

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Читайте также: