搜索

PythonReactSEOPDF
GitHub Skill

debug-with-valgrind

Debug crashes, segfaults, and memory errors using valgrind integration with nextest through pre-configured profiles

facet-rs☆ 2,390 仓库 Stars104 仓库 Forks

安装与使用

请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。

查看来源 ↗使用指南

技能说明

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:

  1. Wrapper script: Defined as [scripts.wrapper.valgrind]

    • Command: valgrind --leak-check=full --show-leak-kinds=all ...
    • Automatically wraps test execution
  2. Profile: [profile.valgrind] applies the wrapper to all tests on Linux

  3. Running: Use --profile valgrind flag with nextest

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

  1. Test crashes with SIGSEGV
  2. Run: cargo nextest run --profile valgrind -p PACKAGE --test FILE TEST_NAME
  3. Valgrind shows exact line where invalid read/write occurs
  4. Fix the bug
  5. Verify with regular tests

See Also

使用示例

查看来源仓库中的使用示例与配置说明。

查看来源 ↗

来源历史

收录时间
2026-01-20
索引更新时间
2026-02-04
Branch
main

收录与同步日期属于本站记录。源码修改历史请查看来源仓库。

GitHub ↗

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!