Commit Graph
8 Commits
Author SHA1 Message Date
西风逍遥游 d7f3d219b4 script: map debugger locations through source metadata 2026-08-25 20:26:31 +08:00
西风逍遥游 811eff1c3a ci(quality): warnings-as-errors gate, sanitizers, smoke, Python lint/tests
- EVENGINE_ENABLE_STRICT_WARNINGS option: MSVC /W4 /WX, GCC/Clang
  -Wall -Wextra -Werror, with documented noise suppressions and
  -isystem/-external:I for third-party headers; enabled on the
  Windows/Linux debug CI jobs.
- Fix warnings across engine, modules and tests exposed by the gate,
  including real bugs (incomplete-type deletes, Timespan microsecond
  overflow, overload hiding, enum switch gaps, dead code).
- Add Linux ASan+UBSan job, example smoke step, python-tools test
  job, ruff config (scripts+tools), weekly Linux coverage job and a
  CodeQL workflow.
2026-08-22 02:27:37 +08:00
西风逍遥游 33d5e5b870 devtools: DAP output events, variable inspect, error throw-site pause 2026-08-17 14:51:32 +08:00
西风逍遥游 8c8ac893f4 fix(devtools): correct Squirrel stack frame level for call stack and locals
The Squirrel native debug hook is invoked as a direct C call, so the top of the call stack (level 0) is the current script frame. The debugger, DAP adapter, and DevTool read locals/stack at level 1, which skipped the current frame: stackTrace omitted the innermost frame and the variables panel showed the caller's locals instead.

Read stack frames/locals at level 0 across Debugger::stackTrace, Debugger::locals, Debugger::evaluate, Debugger::scriptStackDepth, DebugAdapter variables requests, and DevTool local sampling.

Adds debugger_audit.cpp (breakpoint hits, stepInto/stepOver/stepOut, call stack at nested breakpoint, locals at breakpoint) and a threaded DAP end-to-end test that runs a real script and verifies the stopped event and the full call stack.
2026-08-14 21:02:30 +08:00
西风逍遥游 6974b8cd61 feat(devtools): implement AiPanel and McpServer for enhanced debugging capabilities
- Introduced AiPanel for managing AI-related debugging information, including logging and visibility controls.
- Added McpServer to facilitate communication with the debugging interface, supporting JSON-RPC for various commands.
- Updated CMake configurations to include new dependencies and libraries for the devtools.
- Enhanced Vulkan SDK detection in CMake for improved compatibility on Windows platforms.
- Refactored existing CMakeLists for better organization and readability.
2026-08-10 23:19:52 +08:00
Cursor Agentand西风逍遥游 adfad4f2c9 fix(devtools): compile MCP/AiPanel into existing TUs for MSVC exports
Fold McpServer and AiPanel implementations into DebugAdapter.cpp and
DevTool.cpp via .inc includes so WINDOWS_EXPORT_ALL_SYMBOLS does not add
extra Poco JSON-heavy object files (LNK1189). Keep prior macOS singleton
and ImGui drawer fixes.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
2026-08-10 01:36:26 +00:00
sunxfancy cee6eb0266 feat(devtools): enhance debugging capabilities with DAP integration and improved CallGraph
- Added support for DAP (Debug Adapter Protocol) in the DebugAdapter, allowing for better integration with IDEs like VS Code.
- Implemented new debugging commands: stepInto, stepOver, and stepOut, enhancing script execution control.
- Updated CallGraph to use a fixed ring buffer for event storage, improving performance and memory management.
- Introduced methods for resolving source paths and managing script aliases, facilitating smoother debugging experiences.
- Enhanced documentation to reflect new features and usage instructions for debugging tools.

These changes significantly improve the debugging workflow and provide developers with more robust tools for script management and error tracing.
2026-08-09 21:51:34 +08:00
西风逍遥游andCursor Agent 8abbb134cb feat(devtools): pause, breakpoints, watches, snapshots, and VS Code DAP (#6)
* feat(devtools): pause, breakpoints, watches, snapshots, and VS Code DAP

Add a script-centric debugger: Pause key / DAP frame pause, Squirrel
breakpoints with watches, JSON snapshot of script state (stateless
engine), TCP Debug Adapter Protocol server, and a VS Code extension
under tools/vscode-eve-debug.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

* fix(devtools): correct Snapshot JSON (Poco Ptr) and DAP includes

Use Poco::JSON::Object/Array::Ptr for script-state capture/restore so
round-trips no longer BadCast; include TimeoutException via Exception.h.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

* fix(devtools): move DebugAdapter ctor to cpp for MSVC unique_ptr

MSVC rejects unique_ptr of forward-declared Poco sockets when the
default constructor is defined in the header (incomplete-type delete).

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

* fix(devtools): disable Poco auto-link on EVDevTools for MSVC

Including Poco Net/JSON without POCO_NO_AUTOMATIC_LIBS makes the
Windows linker request PocoFoundationd.lib instead of PocoFoundationmdd.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-08-09 09:41:58 +08:00