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

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 attach (eve::Runtime &runtime, bool sampleLocals=true)
 Attach to a Runtime and route its boundary errors into the slicer.
 
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).
 
void drawFrameStatsPanel ()
 Draw FPS / frame-time overlay when visible (call from UI/frame loop).
 
bool isAttached () const
 
bool isRuntimeBound () const
 True when errors also flow through Runtime::setErrorHandler.
 
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 ()
 
ScenarioRecorder & scenario ()
 
DebugAdapter & dap ()
 
McpServer & mcp ()
 
AiPanel & ai ()
 
ConsolePanel & console ()
 
FrameStatsPanel & frameStats ()
 
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 SliceResult & lastSlice () const
 Script-side slice from the last notifyError (empty if none).
 
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)
  • EveScript LanguageServer (stdio LSP via eve language-server, typed API for tests)
  • 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 第 50 行定义.

构造及析构函数说明

◆ DevTool()

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

成员函数说明

◆ ai()

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

在文件 DevTool.cpp 第 251 行定义.

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

被这些函数引用 exposeScriptApi().

◆ analyzeError()

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

◆ attach() [1/3]

void eve::dev::DevTool::attach ( eve::Runtime &  runtime,
bool  sampleLocals = true 
)

Attach to a Runtime and route its boundary errors into the slicer.

参数
runtimeRuntime whose errors (compile/reflect/unload, plus any uncaught error the VM hook did not already report) are forwarded to notifyError().
sampleLocalsWhether to sample frame locals for data-flow slicing.

在文件 DevTool.cpp 第 139 行定义.

引用了 attach(), error, notifyError() , 以及 sampleLocals().

◆ attach() [2/3]

◆ attach() [3/3]

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

Attach script tracer to VM and enable render tracing.

在文件 DevTool.cpp 第 137 行定义.

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

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

◆ console()

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

在文件 DevTool.cpp 第 253 行定义.

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

被这些函数引用 exposeScriptApi().

◆ dap()

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

在文件 DevTool.hpp 第 104 行定义.

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

◆ debugger()

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

在文件 DevTool.hpp 第 101 行定义.

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

◆ detach()

◆ drawAiPanel()

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

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

在文件 DevTool.cpp 第 262 行定义.

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

引用了 eve::dev::ConsolePanel::drawImGui() , 以及 eve::dev::ConsolePanel::instance().

被这些函数引用 exposeScriptApi().

◆ drawFrameStatsPanel()

void eve::dev::DevTool::drawFrameStatsPanel ( )

Draw FPS / frame-time overlay when visible (call from UI/frame loop).

在文件 DevTool.cpp 第 266 行定义.

引用了 eve::dev::FrameStatsPanel::drawImGui() , 以及 eve::dev::FrameStatsPanel::instance().

被这些函数引用 exposeScriptApi().

◆ enableRenderTrace()

void eve::dev::DevTool::enableRenderTrace ( bool  on = true)

Enable render-flow tracing without a Squirrel VM (C++ / unit tests).

在文件 DevTool.cpp 第 170 行定义.

◆ exposeScriptApi()

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

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

在文件 DevTool.cpp 第 268 行定义.

引用了 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::ScenarioRecorder::begin(), begin, eve::dev::Debugger::breakOnError(), eve::dev::Debugger::breakpointsEnabled(), eve::dev::ScenarioRecorder::cancel(), eve::dev::Snapshot::capture(), eve::dev::ConsolePanel::clear(), eve::dev::Debugger::clearBreakpoint(), eve::dev::Debugger::clearBreakpoints(), eve::dev::FrameStatsPanel::clearEntityCount(), eve::dev::AiPanel::clearLog(), eve::dev::Snapshot::clearRoots(), eve::dev::Debugger::clearWatches(), condition, console(), dap(), debugger(), drawAiPanel(), drawConsolePanel(), drawFrameStatsPanel(), end, eve::dev::FrameStatsPanel::entityCount(), eve::dev::ScenarioRecorder::errorReport(), eve::dev::ConsolePanel::eval(), eve::dev::Debugger::evaluate(), eve::executeGameplayControlJson(), eve::dev::executeSoftRestart(), eve::dev::exposeMcpScriptApi(), eve::dev::FrameStatsPanel::format(), eve::dev::ConsolePanel::format(), eve::dev::AiPanel::formatLog(), formatProfileReport(), eve::dev::FrameStatsPanel::fps(), eve::dev::FrameStatsPanel::frameMs(), eve::dev::ScenarioRecorder::framesRemaining(), eve::dev::FrameStatsPanel::hasEntityCount(), info, eve::dev::AiPanel::instance(), eve::dev::ConsolePanel::instance(), eve::dev::FrameStatsPanel::instance(), eve::dev::ReloadSession::instance(), eve::dev::ScenarioRecorder::instance(), eve::dev::Snapshot::instance(), eve::dev::Debugger::isPaused(), eve::dev::AiPanel::isVisible(), eve::dev::ConsolePanel::isVisible(), eve::dev::FrameStatsPanel::isVisible(), lastError(), line, lines, eve::dev::Snapshot::loadFile(), eve::dev::ScenarioRecorder::markFrame(), eve::dev::Snapshot::markRoot(), eve::dev::Snapshot::markTransientRoot(), 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, path, eve::dev::Debugger::pause(), eve::dev::Debugger::pauseAt(), eve::dev::PauseKey, poll(), profileClear(), eve::dev::ConsolePanel::recent(), eve::dev::ScenarioRecorder::recording(), eve::dev::Debugger::refreshWatches(), eve::dev::DebugAdapter::registerSource(), eve::dev::SoftRestartRequest::reloadScripts, eve::dev::Debugger::removeWatch(), request, eve::dev::resetNativeStateProviders(), eve::dev::resourceCacheCount(), eve::dev::SoftRestartReport::resourceCountAfter, eve::dev::Snapshot::restore(), eve::dev::Debugger::resume(), eve::dev::Snapshot::rootsFor(), eve::dev::FrameStatsPanel::sample(), eve::dev::Snapshot::saveFile(), eve::dev::SoftRestartReport::scriptsReloaded, eve::dev::Debugger::setBreakOnError(), eve::dev::Debugger::setBreakpoint(), eve::dev::Debugger::setBreakpointsEnabled(), eve::dev::FrameStatsPanel::setEntityCount(), eve::dev::AiPanel::setVisible(), eve::dev::ConsolePanel::setVisible(), eve::dev::FrameStatsPanel::setVisible(), eve::dev::Debugger::shouldRunUpdate(), eve::dev::Snapshot, snapshot(), source, eve::dev::ScenarioRecorder::stageFrame(), status, eve::statusCodeName(), 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(), text, eve::dev::AiPanel::toggleVisible(), eve::dev::ConsolePanel::toggleVisible(), eve::dev::FrameStatsPanel::toggleVisible(), eve::dev::Snapshot::transientRoots(), eve::dev::Snapshot::unmarkRoot(), eve::dev::Snapshot::unmarkTransientRoot(), 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.cpp 第 903 行定义.

引用了 a, b, name , 以及 rows.

被这些函数引用 exposeScriptApi().

◆ frameStats()

FrameStatsPanel & eve::dev::DevTool::frameStats ( )

在文件 DevTool.cpp 第 255 行定义.

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

◆ graph() [1/2]

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

在文件 DevTool.hpp 第 97 行定义.

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

◆ graph() [2/2]

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

在文件 DevTool.hpp 第 98 行定义.

◆ handleDebugEvent()

◆ instance()

◆ isAttached()

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

在文件 DevTool.hpp 第 90 行定义.

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

◆ isRuntimeBound()

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

True when errors also flow through Runtime::setErrorHandler.

在文件 DevTool.hpp 第 92 行定义.

◆ lastError()

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

在文件 DevTool.hpp 第 117 行定义.

被这些函数引用 exposeScriptApi().

◆ lastReport()

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

在文件 DevTool.hpp 第 116 行定义.

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

◆ lastSlice()

const SliceResult & eve::dev::DevTool::lastSlice ( ) const
inline

Script-side slice from the last notifyError (empty if none).

在文件 DevTool.hpp 第 119 行定义.

◆ mcp()

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

在文件 DevTool.cpp 第 249 行定义.

引用了 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.hpp 第 127 行定义.

◆ profileClear()

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

在文件 DevTool.hpp 第 128 行定义.

被这些函数引用 exposeScriptApi().

◆ renderFlow() [1/2]

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

在文件 DevTool.hpp 第 99 行定义.

◆ renderFlow() [2/2]

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

在文件 DevTool.hpp 第 100 行定义.

◆ renderTraceEnabled()

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

在文件 DevTool.hpp 第 93 行定义.

◆ sampleLocals()

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

在文件 DevTool.hpp 第 94 行定义.

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

◆ scenario()

ScenarioRecorder & eve::dev::DevTool::scenario ( )
inline

在文件 DevTool.hpp 第 103 行定义.

◆ setSampleLocals()

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

在文件 DevTool.hpp 第 95 行定义.

◆ snapshot()

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

在文件 DevTool.hpp 第 102 行定义.

被这些函数引用 exposeScriptApi().

◆ startDap()

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

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

在文件 DevTool.cpp 第 241 行定义.

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

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

◆ stopDap()

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

在文件 DevTool.cpp 第 243 行定义.

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

被这些函数引用 detach().

◆ stopMcp()

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

在文件 DevTool.cpp 第 247 行定义.

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

被这些函数引用 detach().


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