Asdbg
A remote debugger for AngelScript.
Install / Use
/learn @codecat/AsdbgREADME
asdbg
A remote debugger for AngelScript. Currently in very early stages of development.

Implementation
To implement the debugger into the host application, include asdbg.h. Also, in 1 .cpp file, include it while ASDBG_IMPL is defined.
#define ASDBG_IMPL
#include "asdbg.h"
Then, before the first execution of a script context, initialize the debugger:
asIScriptContext* ctx = engine->CreateContext();
dbg::Initialize(ctx);
Next, define any encoders you may need for variable inspection. An encoder takes a pointer and returns a string representation. Optionally, a decoder takes a pointer and a string representation, and you have to decode the string representation into the pointer. For example, a std::string encoder (for the default ScriptString addon) looks like this:
dbg::Encoder(engine->GetTypeIdByDecl("string"), [](void* ptr) {
return *(std::string*)ptr;
}, [](void* ptr, const char* set) {
*(std::string*)ptr = set;
});
When your program is shutting down, call dbg::Release() before the context is released.
dbg::Release();
ctx->Release();
engine->Release();
Goals
- [x] Single-header implementation in host application
- [x] Stepping through code with a visual code view
- [x] Step into
- [x] Step over
- [x] Step out
- [x] Breakpoints
- [ ] View local variables
- [x] Built-in types
- [x] Custom types
- [ ] Arrays
- [ ] Dictionaries
- [x] View stack trace
- [ ] Inspect each frame individually
License
MIT license:
Copyright (c) github.com/codecat 2017 - 2018
Related Skills
node-connect
329.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
81.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
329.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
81.1kCommit, push, and open a PR
