本文へ移動
cccskills
無料GitHub で公開

godot-debugging-profiling

Expert debugging and profiling for leaks, GPU/Visual Profiler, headless CI QA, orphan nodes, thread-safe logs, and custom Debugger monitors — not print/breakpoint tutorials. Trigger on OBJECT_ORPHAN_NODE_COUNT, ObjectDB growth, Visual Profiler GPU spikes, flaky headless exits, or remote device consoles. Keywords: orphan nodes, Performance.get_monitor, Visual Profiler, Time.get_ticks_usec, EditorDebuggerPlugin, headless QA, push_error, backtrace.

インストール方法を見る

含まれるファイル(23)

  • SKILL.md13.0 KB
  • references/debug-workflows.md2.5 KB
  • references/migration-notes.md4.1 KB
  • scripts/advanced_backtrace_recorder.gd1.3 KB
  • scripts/automated_qa_suite.gd1.7 KB
  • scripts/break_on_condition.gd1.2 KB
  • scripts/custom_debug_draw.gd1.2 KB
  • scripts/custom_editor_monitor.gd1.2 KB
  • scripts/debug_overlay.gd2.6 KB
  • scripts/debugger_tab_plugin.gd1.4 KB
  • scripts/engine_editor_hint_logic.gd1.1 KB
  • scripts/engine_error_interceptor.gd1.3 KB
  • scripts/high_precision_benchmarker.gd1.2 KB
  • scripts/memory_usage_threshold_alert.gd1.2 KB
  • scripts/orphan_node_detector.gd1.4 KB
  • scripts/performance_plotter.gd2.3 KB
  • scripts/property_watcher_gizmo.gd1.2 KB
  • scripts/push_error_safe_exit.gd1.3 KB
  • scripts/remote_debug_console.gd1.3 KB
  • scripts/scene_tree_dump.gd1.1 KB
  • scripts/stack_trace_logger.gd1.2 KB
  • scripts/thread_safe_logger.gd1.3 KB
  • scripts/thread_safety_assert.gd1.2 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

NEVER Do

  • NEVER use print() without descriptive context — print(value) is useless. Use print("Player health:", health) with labels.
  • NEVER leave debug prints in release builds — Wrap in if OS.is_debug_build() or use custom DEBUG const. Prints slow down release.
  • NEVER ignore push_warning() messages — Warnings indicate potential bugs (null refs, deprecated APIs). Fix them before they become errors.
  • NEVER use assert() for runtime validation in release — Asserts are disabled in release builds. Use if not condition: push_error() for runtime checks.
  • NEVER profile in debug mode — Debug builds are 5-10x slower. Always profile with release exports or --release flag.
  • NEVER assume Engine.capture_script_backtraces(true) is cheap — Capturing locals allocates significant memory and can prevent objects from being deallocated, causing artificial leaks [19].
  • NEVER call push_error() or print() inside a custom Logger._log_message override — This causes infinite recursion and crashes as the logger intercepts its own output [20].
  • NEVER leave the Visual Profiler running during gameplay tests — Continuous polling degrades framerates significantly, invalidating actual performance metrics [21].
  • NEVER rely on OS.get_ticks_msec() for microbenchmarking — Milliseconds lack precision for logic timing; ALWAYS use Time.get_ticks_usec() for microsecond precision [22].
  • NEVER assume OBJECT_ORPHAN_NODE_COUNT works in production — This monitor is strictly debug-only; it safely returns 0 in release builds, potentially hiding leaks [23].
  • NEVER benchmark with V-Sync enabled — V-Sync throttles metrics to the monitor refresh rate, masking the true CPU/GPU processing overhead [24].
  • NEVER leave print_stack() or print_debug() in release builds — These are often stripped or useless outside the debugger. Use structured logging for production [25].
  • NEVER strip debugging symbols if using external C++ profilers — Stripping destroys call stack readability for external tools like Perfetto or VerySleepy [26].
  • NEVER forget to unregister an EditorDebuggerPlugin in _exit_tree() — Failing to clean up leaves "ghost" connections in the engine's debugging loop [27].
  • NEVER trust the Visual Profiler on macOS when using the Compatibility renderer — Platform-specific driver limitations severely restrict OpenGL profiling accuracy on macOS [28].

Symptom → Monitor → Script

MANDATORY for the matching row. Do NOT Load every debug script for one bug.

SymptomMonitor / APIScript
Nodes removed but RAM climbsOBJECT_ORPHAN_NODE_COUNT (debug)MANDATORY orphan_node_detector.gd
ObjectDB / instance growthcustom monitors + dumpmemory_usage_threshold_alert.gd, scene_tree_dump.gd
GPU / overdraw mysteryVisual Profiler (briefly)Pair with perf skill; use performance_plotter.gd for trends — do not leave Visual Profiler on
Flaky headless / CI exitexit codes + assertsMANDATORY automated_qa_suite.gd, push_error_safe_exit.gd
Microbenchmark liesTime.get_ticks_usecMANDATORY high_precision_benchmarker.gd
Crash needs localsbacktraces (debug only)advanced_backtrace_recorder.gd, stack_trace_logger.gd
Engine errors to backendLogger interceptengine_error_interceptor.gd — never print inside Logger
Custom Debugger metricsMonitors tabcustom_editor_monitor.gd, debugger_tab_plugin.gd
Mobile/console no stdoutin-game consoleremote_debug_console.gd, debug_overlay.gd (debug builds only)
Thread races / log corruptionmutex logger / assertsthread_safe_logger.gd, thread_safety_assert.gd
Invisible logic (AI/physics)debug draw / gizmoscustom_debug_draw.gd, property_watcher_gizmo.gd
Conditional halthardcoded breakbreak_on_condition.gd
Editor vs runtime pathsEngine.is_editor_hintengine_editor_hint_logic.gd

Available Scripts (full catalog)

Leaks & memory

Timing & QA

Errors, stacks, threads

Editor / remote / viz

Expert Pointers

  • Profile release/--release with V-Sync off; never trust Debug-build timings.
  • Prefer structured logs over print_stack() in anything that might ship.
  • Escalate sustained FPS issues to godot-performance-optimization after the symptom tree identifies the bottleneck class.

MANDATORY for print/breakpoint workflow depth, profiler interpretation, and expert CI/GPU/thread patterns: debug-workflows.md. Do NOT Load when the symptom → script table above already routes you.

Reference

Progressive disclosure: open Official Documentation links only when researching a specific API; load Related Skills when routing to a peer domain — do not preload the whole lattice.

Official Documentation

  • Overview of debugging tools — Map of remote scene tree, breakpoints, Output, and profiler entry points before picking a deeper page.
  • Debugger panel — Stack, variables, breakpoints, errors, and monitors used for live remote debug sessions.
  • The profiler — Time and visual profilers: why you profile release-like builds and how frame charts isolate CPU/GPU spikes.
  • Output panel — How print / push_warning / push_error surface in the editor and why noisy release logs hide real faults.
  • ObjectDB profiler — Before/after ObjectDB snapshots for RefCounted cycles and leaked instances that orphan monitors miss.
  • Custom performance monitors — Performance.add_custom_monitor so game-specific metrics appear next to engine monitors.
  • Logging — Custom Logger registration, file sinks, and recursion hazards when logging from inside log handlers.
  • Command line tutorial — Headless --script / export flags for automated QA and CI exit-code runners.
  • CPU optimization — Interpreting profiler hotspots into GDScript/server/thread fixes after measurement.
  • Using multiple threads — Worker-thread rules that motivate thread-safety asserts and mutexed loggers.
  • Thread-safe APIs — Which servers/APIs may be called off-main-thread without corrupting the SceneTree.
  • Performance — Built-in monitors (OBJECT_ORPHAN_NODE_COUNT, memory, render) used by overlays and leak detectors.

Related Skills

Prerequisites

  • godot-project-foundations — Debug/release feature tags, project settings, and Autoload layout must exist before debugger plugins or global monitors.
  • godot-gdscript-mastery — Typed Callables, assert/push_error, and Time APIs underpin benchmarks, breakpoints, and stack helpers.

Complements

  • godot-performance-optimization — After the profiler names a hotspot, apply pooling, culling, and MultiMesh fixes from that skill.
  • godot-testing-patterns — GUT/assert/CI patterns pair with headless QA suites and deterministic quit exit codes.
  • godot-export-builds — Profile and remote-debug against real export templates; debug symbols and strip settings matter for external profilers.
  • godot-scene-management — Scene swap lifetime bugs show up as orphan-node growth; use tree dumps when loaders fail to free.
  • godot-signal-architecture — Ghost listeners and deferred connects often explain “why is this still running?” stack traces.
  • godot-autoload-architecture — Global loggers, monitors, and error interceptors belong in Autoloads with clear boot order.
  • godot-server-architecture — When debug draw or metrics push into Rendering/Physics servers, keep server ownership separate from nodes.

Downstream / consumers

  • godot-auditor — Consumes debugger/profiler evidence when enforcing never-lists and architectural integrity reviews.
  • godot-platform-mobile — Device remote debug and on-screen consoles are required when desktop Output is unavailable.
  • godot-monte-carlo-balancer — Headless microbenchmarks and CI QA feed balance sims that need stable timing and exit codes.
  • godot-multiplayer-networking — Networked games need remote inspectors and structured logs across peers without flooding the Output panel.

Master

  • godot-master — Library router and mirrored module entry; open when discovering which Domain Skill owns a cross-cutting debug or perf concern.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Bevy ECS skill for 2D sprite animation. Keywords: Bevy, sprite, animation, AnimationPlayer, AnimationClip, 2D.

日本語の概要は準備中です。原文の説明を表示しています。

thedivergentai/Game-Design-Agentic-Skills8452026年10月13日 更新

Bevy ECS skill for 3D lights. Keywords: Bevy, lighting, directional, point, spot, bevy_light, PBR.

日本語の概要は準備中です。原文の説明を表示しています。

thedivergentai/Game-Design-Agentic-Skills8452026年10月13日 更新

Bevy ECS skill for PBR materials. Keywords: Bevy, StandardMaterial, PBR, material, ExtendedMaterial.

日本語の概要は準備中です。原文の説明を表示しています。

thedivergentai/Game-Design-Agentic-Skills8452026年10月13日 更新

Bevy ECS skill for 3D level assembly. Keywords: Bevy, level, scene, mesh, world, ECS.

日本語の概要は準備中です。原文の説明を表示しています。

thedivergentai/Game-Design-Agentic-Skills8452026年10月13日 更新

Bevy ECS skill for abilities. Keywords: Bevy, ability, cooldown, ECS, gameplay.

日本語の概要は準備中です。原文の説明を表示しています。

thedivergentai/Game-Design-Agentic-Skills8452026年10月13日 更新

Bevy ECS skill for moving a Bevy game from 2D to 3D. Keywords: Bevy, 2D, 3D, adapt, camera, sprite.

日本語の概要は準備中です。原文の説明を表示しています。

thedivergentai/Game-Design-Agentic-Skills8452026年10月13日 更新

thedivergentai のスキルをすべて見る

このスキルの問題を報告する