AgentSkillsCN

Nethercore Debugging

调试检查器与运行时调试工具(所有控制台)。触发条件包括“调试”、“F4 检查器”、“debug_register”、“调试面板”、“实时编辑”、“观察变量”、“逐帧调试”、“暂停游戏”。 **在以下情况下加载参考文档:** - 完整的调试 API 详情 -> `references/inspector-api.md`

SKILL.md
--- frontmatter
name: Nethercore Debugging
description: |
  Debug inspector and runtime debugging tools (all consoles). Triggers on "debug", "F4 inspector", "debug_register", "debug panel", "live editing", "watch values", "frame stepping", "pause game".

  **Load references when:**
  - Full debug API details -> `references/inspector-api.md`
version: 1.0.0

Nethercore Debugging

The debug system is built into the Nethercore player and works with all consoles.

F4 Debug Inspector

Press F4 during development to open the Debug Inspector. This is your primary debugging tool.

Features:

  • Live value editing (sliders, toggles, color pickers)
  • Read-only watches for monitoring
  • Grouped/collapsible organization
  • Frame control (pause, step, time scale)
  • Zero overhead in release builds

Quick Reference

FunctionPurposeCall In
debug_register_i32(name, ptr)Editable integerinit()
debug_register_f32(name, ptr)Editable floatinit()
debug_register_bool(name, ptr)Toggle checkboxinit()
debug_register_vec3(name, ptr)3D positioninit()
debug_register_color(name, ptr)RGBA pickerinit()
debug_watch_*(name, ptr)Read-only displayinit()
debug_group_begin/end(name)Collapsible sectionsinit()

Range-Constrained (Sliders)

rust
debug_register_f32_range(b"Speed".as_ptr(), 5, &SPEED, 0.0, 20.0);
debug_register_i32_range(b"Lives".as_ptr(), 5, &LIVES, 0, 10);

Keyboard Shortcuts

KeyAction
F4Toggle Debug Inspector
F3Toggle Runtime Stats
F5Pause/Resume
F6Step one frame (when paused)
F7/F8Decrease/Increase time scale

Frame Control

rust
fn update() {
    if debug_is_paused() != 0 { return; }
    let dt = delta_time() * debug_get_time_scale();
    // ...
}

Typical Setup

rust
static mut PLAYER_X: f32 = 0.0;
static mut GRAVITY: f32 = 9.8;
static mut GOD_MODE: u8 = 0;

fn init() {
    unsafe {
        debug_group_begin(b"Player".as_ptr(), 6);
        debug_watch_f32(b"X".as_ptr(), 1, &PLAYER_X);
        debug_register_f32_range(b"Gravity".as_ptr(), 7, &GRAVITY, 1.0, 50.0);
        debug_register_bool(b"God Mode".as_ptr(), 8, &GOD_MODE);
        debug_group_end();
    }
}

When to Use What

ScenarioTool
Live parameter tuningDebug Inspector (F4)
Tracking state over timelog() in update()
Regression testingReplay system
Finding exact frame of bugF5 pause + F6 step