debugging
Debugging conventions for pikru. Use when adding debug traces or investigating issues. Important rule - leave debug traces in place.
When & Why to Use This Skill
This Claude skill provides standardized debugging conventions for the pikru project, covering both C and Rust implementations. It streamlines the process of adding diagnostic traces and enforces a persistent logging policy to enhance long-term maintainability and accelerate future troubleshooting.
Use Cases
- Investigating complex issues in C code by implementing the DBG() macro according to project standards.
- Adding granular diagnostic logs in Rust components using tracing::debug!() for environment-based log control.
- Maintaining a robust codebase by ensuring debug traces are preserved for future forensic analysis and system monitoring.
- Ensuring project-specific debugging rules are followed during code modification to prevent the accidental removal of valuable diagnostic data.
| name | debugging |
|---|---|
| description | Debugging conventions for pikru. Use when adding debug traces or investigating issues. Important rule - leave debug traces in place. |
Debugging
When in doubt, add tracing:
- C code:
DBG()macro - Rust code:
tracing::debug!()(noteprintln!)
IMPORTANT: Leave debug traces in place!
- DO NOT remove
DBG()calls from C code after debugging - DO NOT remove
tracing::debug!()calls from Rust code after debugging - DO NOT run
make cleanin vendor/pikchr-c (it's disabled anyway)
Rationale
- The C implementation is not used in production - debug traces are helpful for future investigations
- Rust tracing can be turned on/off at compile time via
RUST_LOGenvironment variable - Having traces in place makes future debugging much faster