Данное расширение предоставляет возможность отладки приложений 1Script. На данный момент находится в статусе ознакомительной версии.
- Откройте папку с проектом oscript
- Нажмите F5
- Будет создан файл launch.json с параметрами отладки.
В файле launch.json можно задать несколько так называемых "профилей" отладки - наборов комбинаций параметров, под которым будет запускаться отлаживаемое приложение.
Каждый профиль отладки представляет собой настройку запуска отлаживаемого приложения, его аргументы командной строки и версию интерпретатора 1script, которая будет выполнять приложение.
При возникновении вопросов напишите обращение на https://github.com/EvilBeaver/OneScript/issues. Мы обязательно вам поможем.
При отладке приложений 1Script, работающих в Docker-контейнерах, WSL или на удаленных машинах, возникает проблема несовпадения путей к исходным файлам. Локальная IDE устанавливает точки останова (breakpoints) по локальным путям (например, D:\projects\myapp\main.os), но удаленный runtime видит другие пути (например, /app/main.os в контейнере). Без маппинга точки останова не будут срабатывать.
Для решения этой проблемы используется параметр pathsMapping, который автоматически преобразует пути между локальной и удаленной файловой системой:
- При отправке точек останова в отладчик локальные пути преобразуются в удаленные
- При получении информации о стеке вызовов удаленные пути преобразуются обратно в локальные
Параметр pathsMapping доступен только в режиме "attach" и содержит два обязательных поля:
- localPath - путь к каталогу проекта на локальной машине
- remotePath - путь к каталогу проекта на удаленной машине (или в контейнере)
Запуск 1Script, файл my-program.os с передачей аргументов командной строки и установкой переменных окружения
{
"name": "Отладка 1Script",
"type": "oscript",
"request": "launch",
"cwd": "${workspaceRoot}/src",
"program": "my-program.os",
"args": ["arg1", "arg2"],
"env": {
"OSCRIPT_CONFIG": "lib.system=D:/myOsLibraries",
"JAVA_HOME": "D:/MyJava/JDK_29_Full"
},
"debugPort": 5051
}{
"name": "Отладка 1Script.Web",
"type": "oscript.web",
"request": "launch",
"appDir": "${workspaceRoot}/src",
"runtimeExecutable": "e:/osweb/OneScript.WebHost.exe",
"debugPort": 5051
}{
"name": "Отладка 1Script.Web (attach)",
"type": "oscript.web",
"request": "attach",
"debugPort": 5051
}При отладке приложения, запущенного в Docker-контейнере, необходимо сопоставить локальные пути с путями внутри контейнера. Например, если локальный проект находится в D:\myproject, а внутри контейнера примонтирован в /app:
{
"name": "Attach к Docker-контейнеру",
"type": "oscript",
"request": "attach",
"debugPort": 2801,
"pathsMapping": {
"localPath": "D:/myproject",
"remotePath": "/app"
}
}Примечание: В localPath используйте прямые слэши (/) даже в Windows для корректной работы маппинга.
Для отладки приложения на удаленной Linux-машине или в WSL:
{
"name": "Удаленная отладка на Linux",
"type": "oscript",
"request": "attach",
"debugPort": 2801,
"pathsMapping": {
"localPath": "C:/Users/developer/projects/myapp",
"remotePath": "/home/developer/myapp"
}
}Отладчик автоматически преобразует пути при установке точек останова и отображении стека вызовов, что позволяет корректно работать с исходным кодом независимо от различий в файловых системах.