Line Execution Checker
GitHub用于检查源码行是否在执行测试时被覆盖的工具。通过编译C++工具解析gcov数据,验证指定文件行是否被执行及执行次数,辅助测试分析与调试。
Trigger Scenarios
Install
npx skills add gadievron/raptor --skill Line Execution Checker -g -y
SKILL.md
Frontmatter
{
"name": "Line Execution Checker",
"tags": [
"coverage",
"gcov",
"testing"
],
"author": "Claude",
"version": 1,
"description": "Check if specific lines were executed using gcov data",
"user-invocable": false
}
Line Execution Checker
Purpose
Fast tool to check if specific source lines were executed during test runs.
Tool: line-checker
Build
Always build fresh from this skill's line_checker.cpp, into a scratch
directory YOU create — never into (or from) the coverage/build directory.
That directory is written by the instrumented target's own build and run,
so any pre-existing line-checker found there could have been planted by
the analysed program to forge coverage verdicts; never execute one.
CHECKER_DIR=$(mktemp -d)
g++ -O3 -std=c++17 line_checker.cpp -o "$CHECKER_DIR/line-checker"
Usage
# Single line (from the coverage data directory)
"$CHECKER_DIR/line-checker" file.c:42
# Multiple lines
"$CHECKER_DIR/line-checker" file.c:42 main.c:100 util.c:55
Output
file.c:42 EXECUTED (5 times)
main.c:100 NOT EXECUTED
util.c:55 EXECUTED (12 times)
Exit Codes
- 0: All lines executed
- 1: One or more lines NOT executed
- 2: Error
Prerequisites
Coverage data must exist from prior test run with --coverage flag.
When User Asks
"Was line X of file.c executed?" or "Check if these lines were covered"
Steps
- Verify
.gcdafiles exist:find . -name "*.gcda" -print -quit - Build the tool fresh into a scratch dir (see Build above — never
reuse a
line-checkerbinary found in the coverage/build tree):CHECKER_DIR=$(mktemp -d) && g++ -O3 -std=c++17 line_checker.cpp -o "$CHECKER_DIR/line-checker" - Run:
"$CHECKER_DIR/line-checker" file.c:X - Report result to user
Example Interaction
User: "Was line 127 in parser.c executed?"
"$CHECKER_DIR/line-checker" parser.c:127
# Output: parser.c:127 EXECUTED (3 times)
Response: "Yes, line 127 was executed 3 times during testing."
Version History
-
4d2e852
Current 2026-09-27 22:56
修复安全漏洞:禁止使用覆盖率目录中可能已被篡改的二进制文件,改为每次从源码在临时目录重新编译并沙箱运行,确保结果可信。
- 91a9686 2026-07-24 22:16


