Я новичок в HaxeDevelop (но имею опыт работы с FlashDevelop), и у него практически нет полезной документации, которую я могу найти с помощью поиска Google. Я пытаюсь запустить простое приложение с OpenFL и Starling. У него была проблема, поэтому я попытался поставить точку останова. Однако он не останавливается на точке останова. Я даже поставил несколько точек останова в коде основного класса, и он не останавливается. Я даже пытался создать новый проект только с основным классом и фиктивным классом, и на этом тоже не будет точки останова. Должен ли я сказать ему использовать специальный процесс отладки или что-то в этом роде? Нужно ли мне устанавливать дополнительное программное обеспечение? Должен ли я просто использовать VS Code?
Я установил HaxeDevelop, haxe, лайм и OpenFL. Я сделал новый проект OpenFL и сделал некоторую простую работу в основном файле (создал несколько целочисленных переменных, распечатал некоторые вещи и т. д.) и засорил его точками останова. Я запускаю его, и вывод печатается (но не останавливается ни на каких точках останова):
Build succeeded
Done(0)
haxelib run lime run "project.xml" neko -debug
Running process: C:\HaxeToolkit\haxe\haxelib.exe run lime run "project.xml" neko -debug
Main.hx:17: Hello World!
Main.hx:21: Did some stuff... Did it stop?
Done(0)
Я пробовал это с использованием neko, html5 и flash, и ни один из них не остановится на контрольных точках.
Если кто-нибудь знает хороший учебник по запуску Haxe в режиме отладки в HaxeDevelop, FlashDevelop или VS Code, я был бы очень признателен.
HaxeDevelop/FlashDevelop поддерживают только отладку точки останова на целевой Flash. Это может быть немного сложно настроить, поскольку для этого требуется 32-битная Java в вашем PATH
(это ограничение не существует при отладке Flash в VSCode). Вам также необходимо убедиться, что Flash Debug Player связан с .swf
файлами. Вы можете найти более подробную информацию здесь и здесь.
С другой стороны, VSCode поддерживает отладку гораздо более широкий круг целей:
Ни в одной IDE нет поддержки отладки для цели Neko.
Если вы используете OpenFL, вы должны установить Расширение извести, который обрабатывает всю конфигурацию отдельных адаптеров отладки для вас (примечание: для этого требуется Lime 7.3.0 или новее). В новом проекте просто «Начать отладку» и выбрать «Lime» в раскрывающемся списке:
Это создает конфигурацию запуска Lime в .vscode/launch.json
:
{
"version": "0.2.0",
"configurations": [
{
"name": "Lime",
"type": "lime",
"request": "launch"
}
]
}
Отладка теперь должна работать из коробки с текущей выбранной целью (просто убедитесь, что у вас выбрана конфигурация «Отладка» цели). Вы можете щелкнуть индикатор строки состояния, чтобы переключиться между конфигурациями:
Если вам не хватает расширения отладки, расширение Lime должно открыть всплывающее окно с предложением установить его.
Я пытаюсь выполнить эти шаги в свежем обновлении VSCode (март 2019 г.), установил расширение Lime, установил расширение Haxe. Я запустил «установку лайма» в консоли, получил несколько ошибок зависимостей, и теперь он застрял на «Тип не найден: CommandLineTools» — когда я пытаюсь запустить установку лайма. Google не сильно помогает. (Новое для Haxe / Lime и т. д.)
Это не лучшее место для обсуждения этого, так как это звучит как более общая проблема с настройкой Lime, а не что-то, связанное с отладкой. Попробуйте форумы OpenFL / Discord.
Как это нет? Люди приходят сюда за помощью, чтобы заставить вещи работать. Я смог приблизиться к успеху; У меня был неправильно настроен путь haxelib. Я запустил установку haxelib и убедился, что все установлено в одно и то же место. Но теперь я нажимаю F5, выбираю конфигурацию «Windows/Debug» и получаю всплывающее окно с ошибкой: convertToDTo: неожиданный тип
Если вы используете HaxeDevelop и ориентируетесь на JavaScript, вы можете сделать отладочную сборку (добавьте -debug
к вашему HXML или выберите раскрывающийся список «отладка»), которая предоставляет исходные карты. Затем вы можете использовать инструменты разработчика браузера (F12) и пройтись по всему коду Haxe.
Вы можете легко разместить операторы debugger
в своем коде, используя js.Lib.debug()
, чтобы установить «точку останова» в этой позиции. Оттуда вы также можете начать шагать.
Это не специфично для HaxeDevelop, но очень хорошо работает при использовании цели HaxeDevelop + JavaScript.
Итак, я выполнил шаги, чтобы заставить HaxeDevelop выполнить отладку, и это сработало (но требует, чтобы я каждый раз открывал другой экземпляр HaxeDevelop)! К сожалению, я использую Starling, и, похоже, он не работает при сборке для флэш-памяти (у него есть оператор #if flash, который выдает ошибку, говорящую об использовании AIR вместо флэш-памяти). Итак, код VS!