{"id":21848926,"url":"https://github.com/sssooonnnggg/luau-debugger","last_synced_at":"2025-10-08T11:30:20.735Z","repository":{"id":263749220,"uuid":"891352781","full_name":"sssooonnnggg/luau-debugger","owner":"sssooonnnggg","description":"A debugger for Luau with debug adapter protocol(DAP) support.","archived":false,"fork":false,"pushed_at":"2025-01-20T02:41:30.000Z","size":4388,"stargazers_count":9,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-20T03:28:37.496Z","etag":null,"topics":["dap","debug","debug-adapter","debug-adapter-protocol","debugger","luau","luau-debugger","vscode-extension"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sssooonnnggg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-20T07:19:45.000Z","updated_at":"2025-01-20T02:41:17.000Z","dependencies_parsed_at":"2024-11-20T09:08:44.256Z","dependency_job_id":"5ee1e37b-59bd-4dbc-bae5-53e78c30405f","html_url":"https://github.com/sssooonnnggg/luau-debugger","commit_stats":null,"previous_names":["sssooonnnggg/luau-debugger"],"tags_count":47,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sssooonnnggg%2Fluau-debugger","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sssooonnnggg%2Fluau-debugger/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sssooonnnggg%2Fluau-debugger/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sssooonnnggg%2Fluau-debugger/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sssooonnnggg","download_url":"https://codeload.github.com/sssooonnnggg/luau-debugger/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235706040,"owners_count":19032597,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dap","debug","debug-adapter","debug-adapter-protocol","debugger","luau","luau-debugger","vscode-extension"],"created_at":"2024-11-28T00:09:28.275Z","updated_at":"2025-10-08T11:30:20.729Z","avatar_url":"https://github.com/sssooonnnggg.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Luau debugger\n![Build status](https://github.com/sssooonnnggg/luau-debugger/actions/workflows/build.yml/badge.svg?branch=master)\n\nA debugger for Luau with debug adapter protocol(DAP) support.\n\n![](docs/demo.gif)\n\n## Overview\n\n```bash\n└── luau_debugger\n  |\n  ├── debugger    # Debugger implementation, include a DAP server and\n  |               # a debugger implemented with luau internal debug\n  |               # api directly without hooking\n  |\n  ├── luaud       # A minimal Luau executable with debug support\n  ├── extensions  # VSCode extension for Luau debugger\n  └── tests       # Test lua scripts\n```\n\n## Usage\n\nSee [extensions/vscode/README](./extensions/vscode/README.md)\n\n## Dependencies\n\n- [luau](https://github.com/luau-lang/luau)\n- [cppdap](https://github.com/sssooonnnggg/cppdap)\n\n## Build\n- Clone `cppdap` to local\n  - Inside `cppdap` root, run `git submodule update --init`\n- Clone `luau` to local\n- Build using CMake Presets with CLI or preset, for example with CLI:\n  - `cmake -DLUAU_ROOT=\u003cluau path\u003e -DCPP_DAP_ROOT=\u003ccppdap path\u003e -S . -B build`\n  - `cmake --build`\n\n## Features\n\nSee [features](./extensions/vscode/README.md#features)\n\n## Integration with luau-debugger\n\nSee [luaud](./luaud/main.cpp) for how to integrate with `luau-debugger` in your project.\n\nTips:\n- To avoid debug info to be stripped by luau compiler, `Luau::CompileOptions::debugLevel` should be set to `2`\n- Call `Debugger::initialize(lua_State* L)` to initialize the debugger\n  - `Debugger::initialize(lua_State* L)` can be called multiple times to debug multiple lua states\n  - `Debugger::release(lua_State* L)` can be called to release the lua state before calling `lua_close`\n- Call `Debugger::onLuaFileLoaded(lua_State* L, std::string_view path, bool is_entry)` when lua file entry is loaded and lua files are required\n- Call `Debugger::listen()` to start the DAP server\n- Call `Debugger::onError(std::string_view msg, lua_State* L)` if you want to redirect Lua error messages to the debug console.\n\n### Displaying `userdata` Variables\n\nTo display `userdata` variables in the debugger:\n- Implement the `__iter` metamethod for `userdata` as described [here](https://github.com/luau-lang/rfcs/blob/master/docs/generalized-iteration.md).\n- Alternatively, implement a `__getters` metamethod that returns a table where the keys are property names and the values are functions that return the property values.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsssooonnnggg%2Fluau-debugger","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsssooonnnggg%2Fluau-debugger","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsssooonnnggg%2Fluau-debugger/lists"}