Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Отладчик ведет себя странным образом при остановке на точке и при прекращении отладки #1400

Closed
EvilBeaver opened this issue Mar 30, 2024 · 1 comment

Comments

@EvilBeaver
Copy link
Owner

Воспроизведение ошибки

Проект

bug_debug.zip

  1. Открыть папку в VSCode
  2. Установить точку установа в файле test_lib\src\modules\Настройки.os
  3. Нажать F5 или иным способом запустить отладку
  4. Убедится что отладка НЕ остановилась
  5. Установить точку установа в файле main.os
  6. Нажать F5 или иным способом запустить отладку
  7. Убедится что отладка остановилась и можно прошагать к следующей точке останова
  8. Перезапустить отладку
  9. Шагнуть до первой процедуры в файле test_lib\src\modules\Настройки.os и остановить отладку
  10. Убедится что код продолжает выполнятся ориентируясь на сообщения в консоли и в том что выходят не понятные простым 1сникам сообщения

Окружение

Версия onescript 1.9.0.6
Windows 11
Версия VSC - 1.84.2
Версия расширения VSC OneScript Debug - v0.8.0

Дополнительная информация

https://t.me/oscript_library/115063

@EvilBeaver EvilBeaver added the bug label Mar 30, 2024
@EvilBeaver EvilBeaver added this to the v2.0-rc5 milestone Apr 11, 2024
@EvilBeaver
Copy link
Owner Author

Причина: В примере библиотека находится в папке modules (с маленькой буквы)

Загрузчик ищет в предопределенном каталоге Modules (с большой буквы) и Windows возвращает ему существование этой папки.

Далее, Файлы = НайтиФайлы(КаталогМодулей.ПолноеИмя, "*.os") возвращает полные имена со словом Modules с большой буквы! и это, похоже, багофича винды.

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

Покопавшись на stackoverflow я нашел, что вариант только рекурсивно до корня диска, искать в каталоге-родителе текущий элемент и смотреть на его имя.

https://stackoverflow.com/questions/74451/getting-actual-file-name-with-proper-casing-on-windows/81493#81493
https://stackoverflow.com/questions/325931/getting-actual-file-name-with-proper-casing-on-windows-with-net

Issue на дотнет есть, но не реализовано dotnet/runtime#14321 и кажется не будет реализовано.

Вывод: Виндуз маздай, линукс форева

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant