|
16 | 16 |
|
17 | 17 | При возникновении вопросов напишите обращение на https://github.com/EvilBeaver/OneScript/issues. Мы обязательно вам поможем. |
18 | 18 |
|
| 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 | + |
19 | 32 | ## Примеры конфигураций запуска |
20 | 33 |
|
21 | 34 | ### Запуск 1Script, файл my-program.os с передачей аргументов командной строки и установкой переменных окружения |
|
58 | 71 | "request": "attach", |
59 | 72 | "debugPort": 5051 |
60 | 73 | } |
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