载入中...
搜索中...
未找到

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
 
DevTooloperator= (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)
 
CallGraphgraph ()
 
const CallGraphgraph () const
 
RenderFlowrenderFlow ()
 
const RenderFlowrenderFlow () const
 
Debuggerdebugger ()
 
Snapshotsnapshot ()
 
DebugAdapterdap ()
 
McpServermcp ()
 
AiPanelai ()
 
ConsolePanelconsole ()
 
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 DevToolinstance ()
 

详细描述

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.hpp43 行定义.

构造及析构函数说明

◆ DevTool()

eve::dev::DevTool::DevTool ( const DevTool )
delete

成员函数说明

◆ ai()

AiPanel & eve::dev::DevTool::ai ( )

在文件 DevTool.cpp192 行定义.

引用了 eve::dev::AiPanel::instance().

被这些函数引用 exposeScriptApi().

◆ analyzeError()

SliceResult eve::dev::DevTool::analyzeError ( const std::string &  errorMessage,
const std::vector< std::string > &  hintVars = {} 
) const

◆ attach() [1/2]

◆ attach() [2/2]

void eve::dev::DevTool::attach ( ssq::VM &  vm,
bool  sampleLocals = true 
)

Attach script tracer to VM and enable render tracing.

在文件 DevTool.cpp123 行定义.

引用了 attach(), sampleLocals() , 以及 vm.

被这些函数引用 attach().

◆ console()

ConsolePanel & eve::dev::DevTool::console ( )

在文件 DevTool.cpp194 行定义.

引用了 eve::dev::ConsolePanel::instance().

被这些函数引用 exposeScriptApi().

◆ dap()

DebugAdapter & eve::dev::DevTool::dap ( )
inline

在文件 DevTool.hpp84 行定义.

被这些函数引用 exposeScriptApi(), handleDebugEvent() , 以及 notifyError().

◆ debugger()

Debugger & eve::dev::DevTool::debugger ( )
inline

在文件 DevTool.hpp82 行定义.

被这些函数引用 exposeScriptApi() , 以及 notifyError().

◆ detach()

void eve::dev::DevTool::detach ( )

◆ drawAiPanel()

void eve::dev::DevTool::drawAiPanel ( )

Draw DevTools AI ImGui panel when visible (call from UI/frame loop).

在文件 DevTool.cpp201 行定义.

引用了 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.cpp203 行定义.

引用了 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.cpp136 行定义.

◆ exposeScriptApi()

void eve::dev::DevTool::exposeScriptApi ( ssq::VM &  vm)

Expose eve.dev script API (pause/breakpoint/watch/snapshot/AI).

在文件 DevTool.cpp205 行定义.

引用了 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

在文件 DevTool.cpp711 行定义.

引用了 a, b , 以及 name.

被这些函数引用 exposeScriptApi().

◆ graph() [1/2]

CallGraph & eve::dev::DevTool::graph ( )
inline

在文件 DevTool.hpp78 行定义.

被这些函数引用 eve::dev::mcpCallgraphEvents() , 以及 eve::dev::mcpCallgraphStackDepth().

◆ graph() [2/2]

const CallGraph & eve::dev::DevTool::graph ( ) const
inline

在文件 DevTool.hpp79 行定义.

◆ handleDebugEvent()

◆ instance()

◆ isAttached()

bool eve::dev::DevTool::isAttached ( ) const
inline

在文件 DevTool.hpp73 行定义.

被这些函数引用 eve::dev::mcpDevAttached().

◆ lastError()

const std::string & eve::dev::DevTool::lastError ( ) const
inline

在文件 DevTool.hpp96 行定义.

被这些函数引用 exposeScriptApi().

◆ lastReport()

const std::string & eve::dev::DevTool::lastReport ( ) const
inline

在文件 DevTool.hpp95 行定义.

被这些函数引用 eve::dev::mcpLastReport().

◆ mcp()

McpServer & eve::dev::DevTool::mcp ( )

在文件 DevTool.cpp190 行定义.

引用了 eve::dev::McpServer::instance().

◆ notifyError()

◆ operator=()

DevTool & eve::dev::DevTool::operator= ( const DevTool )
delete

◆ poll()

void eve::dev::DevTool::poll ( )

◆ profile()

const std::unordered_map< std::string, ProfileEntry > & eve::dev::DevTool::profile ( ) const
inline

在文件 DevTool.hpp104 行定义.

◆ profileClear()

void eve::dev::DevTool::profileClear ( )
inline

在文件 DevTool.hpp105 行定义.

被这些函数引用 exposeScriptApi().

◆ renderFlow() [1/2]

RenderFlow & eve::dev::DevTool::renderFlow ( )
inline

在文件 DevTool.hpp80 行定义.

◆ renderFlow() [2/2]

const RenderFlow & eve::dev::DevTool::renderFlow ( ) const
inline

在文件 DevTool.hpp81 行定义.

◆ renderTraceEnabled()

bool eve::dev::DevTool::renderTraceEnabled ( ) const
inline

在文件 DevTool.hpp74 行定义.

◆ sampleLocals()

bool eve::dev::DevTool::sampleLocals ( ) const
inline

在文件 DevTool.hpp75 行定义.

被这些函数引用 attach() , 以及 attach().

◆ setSampleLocals()

void eve::dev::DevTool::setSampleLocals ( bool  on)
inline

在文件 DevTool.hpp76 行定义.

◆ snapshot()

Snapshot & eve::dev::DevTool::snapshot ( )
inline

在文件 DevTool.hpp83 行定义.

被这些函数引用 exposeScriptApi().

◆ startDap()

int eve::dev::DevTool::startDap ( uint16_t  port)

Start DAP server; returns bound port (0 on failure).

在文件 DevTool.cpp182 行定义.

引用了 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.cpp186 行定义.

引用了 eve::dev::McpServer::instance() , 以及 eve::dev::McpServer::listen().

◆ stopDap()

void eve::dev::DevTool::stopDap ( )

在文件 DevTool.cpp184 行定义.

引用了 eve::dev::DebugAdapter::instance() , 以及 eve::dev::DebugAdapter::stop().

被这些函数引用 detach().

◆ stopMcp()

void eve::dev::DevTool::stopMcp ( )

在文件 DevTool.cpp188 行定义.

引用了 eve::dev::McpServer::instance() , 以及 eve::dev::McpServer::stop().

被这些函数引用 detach().


该类的文档由以下文件生成: