Skip to content

Commit 4fd8cdf

Browse files
committed
Дополнил документацию по pathsMapping
1 parent 3c5f0c7 commit 4fd8cdf

File tree

2 files changed

+53
-1
lines changed

2 files changed

+53
-1
lines changed

install/release-notes.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
- [#1545](https://github.com/EvilBeaver/OneScript/issues/1545) - Разрешено использование комментариев после аннотаций модуля и в строках с директивой `Использовать`
1010
- [#1593](https://github.com/EvilBeaver/OneScript/issues/1593) - Полностью переработан сервер отладки, возможно переподключение к серверу после завершения сессии отладки.
1111
- Улучшена производительность компиляции большого числа модулей
12+
- Добавлена возможность выполнять attach отладчика внутрь контейнера с 1Script. Предусмотрен маппинг локальных путей и путей внутри контейнера.
1213

1314
## Исправления ошибок
1415

src/VSCode.DebugAdapter/README.md

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,19 @@
1616

1717
При возникновении вопросов напишите обращение на https://github.com/EvilBeaver/OneScript/issues. Мы обязательно вам поможем.
1818

19+
## Маппинг путей для удаленной отладки
20+
21+
При отладке приложений 1Script, работающих в Docker-контейнерах, WSL или на удаленных машинах, возникает проблема несовпадения путей к исходным файлам. Локальная IDE устанавливает точки останова (breakpoints) по локальным путям (например, `D:\projects\myapp\main.os`), но удаленный runtime видит другие пути (например, `/app/main.os` в контейнере). Без маппинга точки останова не будут срабатывать.
22+
23+
Для решения этой проблемы используется параметр **pathsMapping**, который автоматически преобразует пути между локальной и удаленной файловой системой:
24+
25+
* При отправке точек останова в отладчик локальные пути преобразуются в удаленные
26+
* При получении информации о стеке вызовов удаленные пути преобразуются обратно в локальные
27+
28+
Параметр **pathsMapping** доступен только в режиме "attach" и содержит два обязательных поля:
29+
* **localPath** - путь к каталогу проекта на локальной машине
30+
* **remotePath** - путь к каталогу проекта на удаленной машине (или в контейнере)
31+
1932
## Примеры конфигураций запуска
2033

2134
### Запуск 1Script, файл my-program.os с передачей аргументов командной строки и установкой переменных окружения
@@ -58,4 +71,42 @@
5871
"request": "attach",
5972
"debugPort": 5051
6073
}
61-
```
74+
```
75+
76+
### Подключение к процессу 1Script в Docker-контейнере с маппингом путей
77+
78+
При отладке приложения, запущенного в Docker-контейнере, необходимо сопоставить локальные пути с путями внутри контейнера. Например, если локальный проект находится в `D:\myproject`, а внутри контейнера примонтирован в `/app`:
79+
80+
```json
81+
{
82+
"name": "Attach к Docker-контейнеру",
83+
"type": "oscript",
84+
"request": "attach",
85+
"debugPort": 2801,
86+
"pathsMapping": {
87+
"localPath": "D:/myproject",
88+
"remotePath": "/app"
89+
}
90+
}
91+
```
92+
93+
**Примечание:** В localPath используйте прямые слэши (/) даже в Windows для корректной работы маппинга.
94+
95+
### Удаленная отладка с маппингом путей (Linux/WSL)
96+
97+
Для отладки приложения на удаленной Linux-машине или в WSL:
98+
99+
```json
100+
{
101+
"name": "Удаленная отладка на Linux",
102+
"type": "oscript",
103+
"request": "attach",
104+
"debugPort": 2801,
105+
"pathsMapping": {
106+
"localPath": "C:/Users/developer/projects/myapp",
107+
"remotePath": "/home/developer/myapp"
108+
}
109+
}
110+
```
111+
112+
Отладчик автоматически преобразует пути при установке точек останова и отображении стека вызовов, что позволяет корректно работать с исходным кодом независимо от различий в файловых системах.

0 commit comments

Comments
 (0)