Platform-level script + render debugger / dynamic slicer front-end. 更多...
#include <DevTool.hpp>
类 | |
| struct | ProfileEntry |
| Per-function script profile (line-hook timing). 更多... | |
Public 成员函数 | |
| DevTool (const DevTool &)=delete | |
| DevTool & | operator= (const DevTool &)=delete |
| void | attach (ssq::VM &vm, bool sampleLocals=true) |
| Attach script tracer to VM and enable render tracing. | |
| void | attach (HSQUIRRELVM vm, bool sampleLocals=true) |
| void | enableRenderTrace (bool on=true) |
| Enable render-flow tracing without a Squirrel VM (C++ / unit tests). | |
| void | detach () |
| void | exposeScriptApi (ssq::VM &vm) |
Expose eve.dev script API (pause/breakpoint/watch/snapshot/AI). | |
| int | startDap (uint16_t port) |
| Start DAP server; returns bound port (0 on failure). | |
| void | stopDap () |
| int | startMcp (uint16_t port) |
| Start MCP server for AI tooling; returns bound port (0 on failure). | |
| void | stopMcp () |
| void | poll () |
| void | drawAiPanel () |
| Draw DevTools AI ImGui panel when visible (call from UI/frame loop). | |
| void | drawConsolePanel () |
| Draw DevTools console ImGui panel when visible (call from UI/frame loop). | |
| bool | isAttached () const |
| bool | renderTraceEnabled () const |
| bool | sampleLocals () const |
| void | setSampleLocals (bool on) |
| CallGraph & | graph () |
| const CallGraph & | graph () const |
| RenderFlow & | renderFlow () |
| const RenderFlow & | renderFlow () const |
| Debugger & | debugger () |
| Snapshot & | snapshot () |
| DebugAdapter & | dap () |
| McpServer & | mcp () |
| AiPanel & | ai () |
| ConsolePanel & | console () |
| SliceResult | analyzeError (const std::string &errorMessage, const std::vector< std::string > &hintVars={}) const |
| std::string | formatError (const std::string &errorMessage, const std::vector< std::string > &hintVars={}) const |
| const std::string & | lastReport () const |
| const std::string & | lastError () const |
| const std::unordered_map< std::string, ProfileEntry > & | profile () const |
| void | profileClear () |
| std::string | formatProfileReport () const |
| std::string | notifyError (const std::string &errorMessage, const std::vector< std::string > &hintVars={}) |
| Record an error; includes script slice and render-pipeline slice when enabled. | |
| void | handleDebugEvent (HSQUIRRELVM vm, int type, const char *source, int line, const char *funcname) |
静态 Public 成员函数 | |
| static DevTool & | instance () |
详细描述
Platform-level script + render debugger / dynamic slicer front-end.
When attached (typically via eve run --debug):
- Squirrel: debug hook → CallGraph (call stack + Def/Use data-flow)
- Breakpoints / watches / pause-step via Debugger
- Optional DAP TCP server for the VS Code eve-debug extension
- Optional MCP TCP server for AI agents (tools/resources/prompts)
- Script-state Snapshot (engine treated as stateless)
- Render: installs RenderFlow as eve::debug::IRenderTracer
- on errors: Weiser-style backward slice for script and/or render pipeline
- AI panel: session log + optional ImGui "AI / MCP" window
Not shipped on Android/iOS trimmed runtimes (EVDevTools is desktop-only).
在文件 DevTool.hpp 第 43 行定义.
构造及析构函数说明
◆ DevTool()
|
delete |
成员函数说明
◆ ai()
| AiPanel & eve::dev::DevTool::ai | ( | ) |
◆ analyzeError()
| SliceResult eve::dev::DevTool::analyzeError | ( | const std::string & | errorMessage, |
| const std::vector< std::string > & | hintVars = {} |
||
| ) | const |
◆ attach() [1/2]
| void eve::dev::DevTool::attach | ( | HSQUIRRELVM | vm, |
| bool | sampleLocals = true |
||
| ) |
◆ attach() [2/2]
| void eve::dev::DevTool::attach | ( | ssq::VM & | vm, |
| bool | sampleLocals = true |
||
| ) |
Attach script tracer to VM and enable render tracing.
在文件 DevTool.cpp 第 123 行定义.
引用了 attach(), sampleLocals() , 以及 vm.
被这些函数引用 attach().
◆ console()
| ConsolePanel & eve::dev::DevTool::console | ( | ) |
◆ dap()
|
inline |
在文件 DevTool.hpp 第 84 行定义.
被这些函数引用 exposeScriptApi(), handleDebugEvent() , 以及 notifyError().
◆ debugger()
|
inline |
在文件 DevTool.hpp 第 82 行定义.
被这些函数引用 exposeScriptApi() , 以及 notifyError().
◆ detach()
| void eve::dev::DevTool::detach | ( | ) |
在文件 DevTool.cpp 第 167 行定义.
引用了 eve::dev::ConsolePanel::detach(), eve::dev::Debugger::detach(), eve::dev::ConsolePanel::instance(), eve::dev::Debugger::instance(), stopDap() , 以及 stopMcp().
被这些函数引用 attach() , 以及 eve::cmd::Cmdline::Run().
◆ drawAiPanel()
| void eve::dev::DevTool::drawAiPanel | ( | ) |
Draw DevTools AI ImGui panel when visible (call from UI/frame loop).
在文件 DevTool.cpp 第 201 行定义.
引用了 eve::dev::AiPanel::drawImGui() , 以及 eve::dev::AiPanel::instance().
被这些函数引用 exposeScriptApi().
◆ drawConsolePanel()
| void eve::dev::DevTool::drawConsolePanel | ( | ) |
Draw DevTools console ImGui panel when visible (call from UI/frame loop).
在文件 DevTool.cpp 第 203 行定义.
引用了 eve::dev::ConsolePanel::drawImGui() , 以及 eve::dev::ConsolePanel::instance().
被这些函数引用 exposeScriptApi().
◆ enableRenderTrace()
| void eve::dev::DevTool::enableRenderTrace | ( | bool | on = true | ) |
Enable render-flow tracing without a Squirrel VM (C++ / unit tests).
在文件 DevTool.cpp 第 136 行定义.
◆ exposeScriptApi()
| void eve::dev::DevTool::exposeScriptApi | ( | ssq::VM & | vm | ) |
Expose eve.dev script API (pause/breakpoint/watch/snapshot/AI).
在文件 DevTool.cpp 第 205 行定义.
引用了 eve::dev::ConsolePanel::addError(), eve::dev::ConsolePanel::addInfo(), eve::dev::ConsolePanel::addLog(), eve::dev::AiPanel::addNote(), eve::dev::ConsolePanel::addWarn(), eve::dev::Debugger::addWatch(), ai(), eve::dev::Debugger::breakOnError(), eve::dev::Debugger::breakpointsEnabled(), eve::dev::Snapshot::capture(), eve::dev::ConsolePanel::clear(), eve::dev::Debugger::clearBreakpoint(), eve::dev::Debugger::clearBreakpoints(), eve::dev::AiPanel::clearLog(), eve::dev::Snapshot::clearRoots(), eve::dev::Debugger::clearWatches(), console(), dap(), debugger(), drawAiPanel(), drawConsolePanel(), eve::dev::ConsolePanel::eval(), eve::dev::Debugger::evaluate(), eve::dev::ConsolePanel::format(), eve::dev::AiPanel::formatLog(), formatProfileReport(), eve::dev::AiPanel::instance(), eve::dev::ConsolePanel::instance(), eve::dev::ReloadSession::instance(), eve::dev::Snapshot::instance(), eve::dev::Debugger::isPaused(), eve::dev::AiPanel::isVisible(), eve::dev::ConsolePanel::isVisible(), lastError(), line, eve::dev::Snapshot::loadFile(), eve::dev::Snapshot::markRoot(), eve::dev::AiPanel::mcpConnected(), eve::dev::AiPanel::mcpPort(), eve::dev::Debugger::mode(), n, name, eve::dev::DebugAdapter::notifyContinued(), notifyError(), eve::dev::Debugger::notifyFrameDone(), eve::dev::DebugAdapter::notifyStopped(), ok, eve::dev::Debugger::pause(), eve::dev::PauseKey, poll(), profileClear(), eve::dev::ConsolePanel::recent(), eve::dev::DebugAdapter::registerSource(), eve::dev::Debugger::removeWatch(), eve::dev::Snapshot::restore(), eve::dev::Debugger::resume(), eve::dev::Snapshot::rootsFor(), eve::dev::Snapshot::saveFile(), eve::dev::Debugger::setBreakOnError(), eve::dev::Debugger::setBreakpoint(), eve::dev::Debugger::setBreakpointsEnabled(), eve::dev::AiPanel::setVisible(), eve::dev::ConsolePanel::setVisible(), eve::dev::Debugger::shouldRunUpdate(), snapshot(), eve::dev::AiPanel::statusLine(), eve::dev::Debugger::step(), eve::dev::StepFrame, eve::dev::Debugger::stepFrame(), eve::dev::Debugger::stepInto(), eve::dev::Debugger::stepLine(), eve::dev::Debugger::stepOut(), eve::dev::Debugger::stepOver(), eve::dev::AiPanel::toggleVisible(), eve::dev::ConsolePanel::toggleVisible(), eve::dev::Snapshot::unmarkRoot(), eve::dev::VariableInfo::value , 以及 vm.
◆ formatError()
| std::string eve::dev::DevTool::formatError | ( | const std::string & | errorMessage, |
| const std::vector< std::string > & | hintVars = {} |
||
| ) | const |
◆ formatProfileReport()
| std::string eve::dev::DevTool::formatProfileReport | ( | ) | const |
◆ graph() [1/2]
|
inline |
在文件 DevTool.hpp 第 78 行定义.
被这些函数引用 eve::dev::mcpCallgraphEvents() , 以及 eve::dev::mcpCallgraphStackDepth().
◆ graph() [2/2]
|
inline |
在文件 DevTool.hpp 第 79 行定义.
◆ handleDebugEvent()
| void eve::dev::DevTool::handleDebugEvent | ( | HSQUIRRELVM | vm, |
| int | type, | ||
| const char * | source, | ||
| int | line, | ||
| const char * | funcname | ||
| ) |
在文件 DevTool.cpp 第 404 行定义.
引用了 eve::dev::CallGraph::currentStack(), dap(), eve::dev::SourceLoc::function, eve::dev::Debugger::instance(), eve::dev::SourceLoc::line, line, eve::dev::DebugAdapter::notifyStopped(), eve::dev::CallGraph::onCall(), eve::dev::CallGraph::onLine(), eve::dev::CallGraph::onReturn(), eve::dev::Debugger::refreshWatches(), eve::dev::SourceLoc::source, type, vm , 以及 eve::dev::Debugger::waitWhilePaused().
◆ instance()
|
static |
◆ isAttached()
|
inline |
在文件 DevTool.hpp 第 73 行定义.
被这些函数引用 eve::dev::mcpDevAttached().
◆ lastError()
|
inline |
在文件 DevTool.hpp 第 96 行定义.
被这些函数引用 exposeScriptApi().
◆ lastReport()
|
inline |
在文件 DevTool.hpp 第 95 行定义.
被这些函数引用 eve::dev::mcpLastReport().
◆ mcp()
| McpServer & eve::dev::DevTool::mcp | ( | ) |
在文件 DevTool.cpp 第 190 行定义.
◆ notifyError()
| std::string eve::dev::DevTool::notifyError | ( | const std::string & | errorMessage, |
| const std::vector< std::string > & | hintVars = {} |
||
| ) |
Record an error; includes script slice and render-pipeline slice when enabled.
在文件 DevTool.cpp 第 628 行定义.
引用了 dap(), debugger(), eve::dev::CallGraph::EventsView::empty(), eve::dev::RenderFlow::EventsView::empty(), eve::dev::RenderFlow::error(), eve::dev::CallGraph::events(), eve::dev::RenderFlow::events(), eve::dev::Exception, formatError(), eve::dev::RenderFlow::formatErrorReport(), eve::dev::SourceLoc::function, eve::dev::RenderVision::instance(), eve::dev::SourceLoc::line, eve::dev::RenderVision::notifyPending(), eve::dev::DebugAdapter::notifyStopped(), eve::dev::Debugger::pause(), eve::dev::SourceLoc::source , 以及 eve::dev::Debugger::waitWhilePaused().
被这些函数引用 exposeScriptApi() , 以及 eve::cmd::Cmdline::Run().
◆ operator=()
◆ poll()
| void eve::dev::DevTool::poll | ( | ) |
◆ profile()
|
inline |
在文件 DevTool.hpp 第 104 行定义.
◆ profileClear()
|
inline |
在文件 DevTool.hpp 第 105 行定义.
被这些函数引用 exposeScriptApi().
◆ renderFlow() [1/2]
|
inline |
在文件 DevTool.hpp 第 80 行定义.
◆ renderFlow() [2/2]
|
inline |
在文件 DevTool.hpp 第 81 行定义.
◆ renderTraceEnabled()
|
inline |
在文件 DevTool.hpp 第 74 行定义.
◆ sampleLocals()
|
inline |
在文件 DevTool.hpp 第 75 行定义.
◆ setSampleLocals()
|
inline |
在文件 DevTool.hpp 第 76 行定义.
◆ snapshot()
|
inline |
在文件 DevTool.hpp 第 83 行定义.
被这些函数引用 exposeScriptApi().
◆ startDap()
| int eve::dev::DevTool::startDap | ( | uint16_t | port | ) |
Start DAP server; returns bound port (0 on failure).
在文件 DevTool.cpp 第 182 行定义.
引用了 eve::dev::DebugAdapter::instance() , 以及 eve::dev::DebugAdapter::listen().
◆ startMcp()
| int eve::dev::DevTool::startMcp | ( | uint16_t | port | ) |
Start MCP server for AI tooling; returns bound port (0 on failure).
在文件 DevTool.cpp 第 186 行定义.
引用了 eve::dev::McpServer::instance() , 以及 eve::dev::McpServer::listen().
◆ stopDap()
| void eve::dev::DevTool::stopDap | ( | ) |
在文件 DevTool.cpp 第 184 行定义.
引用了 eve::dev::DebugAdapter::instance() , 以及 eve::dev::DebugAdapter::stop().
被这些函数引用 detach().
◆ stopMcp()
| void eve::dev::DevTool::stopMcp | ( | ) |
在文件 DevTool.cpp 第 188 行定义.
引用了 eve::dev::McpServer::instance() , 以及 eve::dev::McpServer::stop().
被这些函数引用 detach().
该类的文档由以下文件生成:
- src/engine/devtools/DevTool.hpp
- src/engine/devtools/DevTool.cpp