Отладка HaxeDevelop не останавливается в точке останова

Я новичок в 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, я был бы очень признателен.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
0
841
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

HaxeDevelop/FlashDevelop поддерживают только отладку точки останова на целевой Flash. Это может быть немного сложно настроить, поскольку для этого требуется 32-битная Java в вашем PATH (это ограничение не существует при отладке Flash в VSCode). Вам также необходимо убедиться, что Flash Debug Player связан с .swf файлами. Вы можете найти более подробную информацию здесь и здесь.


С другой стороны, VSCode поддерживает отладку гораздо более широкий круг целей:

  • JavaScript
  • ХэшСсылка
  • HXCPP
  • Оценка (макросы)
  • Вспышка

Ни в одной IDE нет поддержки отладки для цели Neko.

Если вы используете OpenFL, вы должны установить Расширение извести, который обрабатывает всю конфигурацию отдельных адаптеров отладки для вас (примечание: для этого требуется Lime 7.3.0 или новее). В новом проекте просто «Начать отладку» и выбрать «Lime» в раскрывающемся списке:

Это создает конфигурацию запуска Lime в .vscode/launch.json:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Lime",
            "type": "lime",
            "request": "launch"
        }
    ]
}

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

Если вам не хватает расширения отладки, расширение Lime должно открыть всплывающее окно с предложением установить его.

Итак, я выполнил шаги, чтобы заставить HaxeDevelop выполнить отладку, и это сработало (но требует, чтобы я каждый раз открывал другой экземпляр HaxeDevelop)! К сожалению, я использую Starling, и, похоже, он не работает при сборке для флэш-памяти (у него есть оператор #if flash, который выдает ошибку, говорящую об использовании AIR вместо флэш-памяти). Итак, код VS!

loganjones16 09.04.2019 00:10

Я пытаюсь выполнить эти шаги в свежем обновлении VSCode (март 2019 г.), установил расширение Lime, установил расширение Haxe. Я запустил «установку лайма» в консоли, получил несколько ошибок зависимостей, и теперь он застрял на «Тип не найден: CommandLineTools» — когда я пытаюсь запустить установку лайма. Google не сильно помогает. (Новое для Haxe / Lime и т. д.)

user3147973 27.04.2019 15:47

Это не лучшее место для обсуждения этого, так как это звучит как более общая проблема с настройкой Lime, а не что-то, связанное с отладкой. Попробуйте форумы OpenFL / Discord.

Gama11 27.04.2019 16:00

Как это нет? Люди приходят сюда за помощью, чтобы заставить вещи работать. Я смог приблизиться к успеху; У меня был неправильно настроен путь haxelib. Я запустил установку haxelib и убедился, что все установлено в одно и то же место. Но теперь я нажимаю F5, выбираю конфигурацию «Windows/Debug» и получаю всплывающее окно с ошибкой: convertToDTo: неожиданный тип

user3147973 27.04.2019 18:59

Если вы используете HaxeDevelop и ориентируетесь на JavaScript, вы можете сделать отладочную сборку (добавьте -debug к вашему HXML или выберите раскрывающийся список «отладка»), которая предоставляет исходные карты. Затем вы можете использовать инструменты разработчика браузера (F12) и пройтись по всему коду Haxe.

Вы можете легко разместить операторы debugger в своем коде, используя js.Lib.debug(), чтобы установить «точку останова» в этой позиции. Оттуда вы также можете начать шагать.

Это не специфично для HaxeDevelop, но очень хорошо работает при использовании цели HaxeDevelop + JavaScript.

image

https://haxe.org/manual/debugging-javascript.html

Другие вопросы по теме