Claude-skill-registry debug-with-valgrind
Debug crashes, segfaults, and memory errors using valgrind integration with nextest through pre-configured profiles
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/debug-with-valgrind" ~/.claude/skills/majiayu000-claude-skill-registry-debug-with-valgrind && rm -rf "$T"
manifest:
skills/data/debug-with-valgrind/SKILL.mdsource content
Debugging with Valgrind + Nextest
When you encounter crashes, segfaults, or memory errors in tests, use valgrind for proper debugging.
Quick Usage
# Run a specific test under valgrind cargo nextest run --profile valgrind -p PACKAGE --test TEST_FILE TEST_NAME # Example cargo nextest run --profile valgrind -p facet-format-json --test jit_deserialize test_jit_option_some
How It Works
The project has valgrind pre-configured in
.config/nextest.toml:
-
Wrapper script: Defined as
[scripts.wrapper.valgrind]- Command:
valgrind --leak-check=full --show-leak-kinds=all ... - Automatically wraps test execution
- Command:
-
Profile:
applies the wrapper to all tests on Linux[profile.valgrind] -
Running: Use
flag with nextest--profile valgrind
Benefits
- ✅ Automatic setup - no manual valgrind commands needed
- ✅ Proper configuration - leak checking, error codes pre-configured
- ✅ Integrated - works with nextest filtering and test selection
- ✅ Clean output - nextest captures and formats valgrind output
Don't Do This
❌ Running valgrind manually:
valgrind ./target/debug/deps/test-binary
❌ Using raw --no-run + valgrind commands
❌ Playing hunt-the-segfault without proper tools
Do This Instead
✅ Use the pre-configured profile:
cargo nextest run --profile valgrind <filters>
✅ Let nextest handle the wrapper script integration
✅ Get clean, actionable valgrind output immediately
Debugging Workflow
- Test crashes with SIGSEGV
- Run:
cargo nextest run --profile valgrind -p PACKAGE --test FILE TEST_NAME - Valgrind shows exact line where invalid read/write occurs
- Fix the bug
- Verify with regular tests
See Also
- Nextest wrapper scripts docs: https://nexte.st/docs/configuration/wrapper-scripts/
- Project nextest config:
.config/nextest.toml