{ "name": "sprinter-mame-debug", "displayName": "Sprinter MAME Debug", "description": "Сборка и DAP-отладка C-приложений Sprinter в MAME", "version": "0.2.0", "publisher": "sprinter-c-compiler", "engines": {"vscode": "^1.85.0"}, "categories": ["Debuggers"], "main": "./extension.js", "activationEvents": ["onDebug", "onTaskType:sprinter", "onCommand:sprinter.buildActive"], "contributes": { "commands": [ {"command": "sprinter.buildActive", "title": "Sprinter: Build Active Project"} ], "taskDefinitions": [ { "type": "sprinter", "required": ["project"], "properties": { "project": { "type": "string", "description": "Путь к каталогу с Makefile приложения относительно workspace" } } } ], "problemMatchers": [ { "name": "sprinter-sdcc", "owner": "sprinter-sdcc", "fileLocation": "relative", "pattern": { "regexp": "^(.+?):(\\d+):\\s+(error|warning)\\s+(\\d+):\\s+(.+)$", "file": 1, "line": 2, "severity": 3, "code": 4, "message": 5 } } ], "configuration": { "title": "Sprinter MAME Debug", "properties": { "sprinterDebugger.pythonCommand": { "type": "string", "default": "auto", "description": "Python 3.12 для DAP; auto выбирает local pyenv shim без зависимости от PATH GUI" }, "sprinterDebugger.pythonArguments": { "type": "array", "items": {"type": "string"}, "default": [], "description": "Аргументы пользовательской Python-команды перед путём DAP-адаптера" }, "sprinterDebugger.sdkRoot": { "type": "string", "default": "", "description": "Путь к Sprinter-CC для внешнего проекта; можно задать SPRINTER_ROOT" }, "sprinterDebugger.mameHome": { "type": "string", "default": "", "description": "Подготовленная среда MAME для launch, если не указана в launch.json" } } }, "debuggers": [ { "type": "sprinter-mame", "label": "Sprinter MAME", "languages": ["c"], "configurationAttributes": { "launch": { "required": ["build"], "properties": { "build": { "type": "string", "description": "Путь к каталогу .sprinter-cc-NAME" }, "project": { "type": "string", "description": "Каталог с Makefile для сборки перед запуском; определяется из build, если не задан" }, "autoBuild": { "type": "boolean", "default": true, "description": "Добавить Sprinter build task перед F5, когда найден app.mk" }, "data": { "type": "array", "items": {"type": "string"}, "description": "Дополнительные файлы на debug-дискету" }, "mame": { "type": "string", "description": "Совместимый alias пути к mame.arm" }, "mameHome": { "type": "string", "description": "Среда MAME: стандартные пути к бинарнику, ROM и DSS" }, "mameBin": { "type": "string", "description": "Переопределить бинарник MAME (stock или sdbg)" }, "mameRompath": { "type": "string", "description": "Переопределить каталог ROM/BIOS MAME" }, "mameDssImage": { "type": "string", "description": "Переопределить образ DSS-дискеты" }, "mameSystemHddImage": { "type": "string", "description": "Переопределить системный HDD-образ Sprinter" }, "mameBios": { "type": "string", "default": "v3.06", "description": "Имя варианта BIOS для -bios" }, "debugger": { "type": "string", "default": "sdbg", "enum": ["sdbg", "auto", "osx", "windows", "qt", "imgui"], "enumDescriptions": [ "Только окно Sprinter и управление из VS Code", "Выбрать доступный штатный backend MAME", "VS Code вместе с Cocoa debugger MAME на macOS", "VS Code вместе с native debugger MAME на Windows", "Qt debugger MAME, если сборка включает USE_QTDEBUG", "Debugger MAME внутри основного графического окна" ], "description": "OSD debugger provider; sdbg не открывает Cocoa debugger" }, "launchAt": { "type": "number", "default": 0, "description": "Не начинать ввод раньше этой секунды эмуляции" }, "dssTimeout": { "type": "number", "default": 30, "description": "Таймаут появления стабильного prompt DSS" } } }, "attach": { "required": ["socket"], "properties": { "socket": { "type": "string", "description": "Unix socket запущенного sdbg_server.py" }, "adapterPath": { "type": "string", "description": "Путь к toolchain/sdbg_dap.py; по умолчанию из workspace" } } } }, "configurationSnippets": [ { "label": "Sprinter MAME: Launch", "description": "Запустить изолированный MAME и остановиться на main", "body": { "type": "sprinter-mame", "request": "launch", "name": "Sprinter MAME: Launch", "build": "^\"${workspaceFolder}/tests/hello/.sprinter-cc-hello\"" } }, { "label": "Sprinter MAME: Launch + native debugger", "description": "Запустить VS Code debugger вместе с Cocoa debugger MAME", "body": { "type": "sprinter-mame", "request": "launch", "name": "Sprinter MAME: Launch + native debugger", "build": "^\"${workspaceFolder}/tests/hello/.sprinter-cc-hello\"", "debugger": "osx" } }, { "label": "Sprinter MAME: Attach", "description": "Подключиться к проверенной sdbg-сессии", "body": { "type": "sprinter-mame", "request": "attach", "name": "Sprinter MAME: Attach", "socket": "^\"/tmp/sprinter-sdbg.sock\"" } } ] } ] }, "scripts": { "check": "node --check extension.js && node --check build.js && node --test runtime.test.js build.test.js extension.test.js" }, "files": ["extension.js", "runtime.js", "build.js", "README.md"], "license": "MIT" }