This document describes the top-level directories, core files, and results-tree layout that are intentionally retained in the repository.
Literal identifiers such as bindebench/, binbench-*.yaml, and BINBENCH_* are kept as compatibility-facing paths or runtime names. The benchmark name is CodeFuse-DeBench.
bindebench/
├── src/ # benchmark source corpus
├── build/ # original binaries and successful_builds.json
├── decompiled/ # outputs from each decompiler
├── evaluator/ # Step1 / Step2 / Step3 implementations
├── scripts/ # build, single-task, and batch orchestration scripts
├── config/ # LLM configuration templates
├── prompt/ # Step1 prompt assets
├── results_glm_v4_full/ # GLM results tree
├── results_qwen_v4_full/ # Qwen results tree
├── results_minimax_v4_full/ # MiniMax results tree
├── docs/ # core documentation
├── binbench-arm32.yaml
├── binbench-x64.yaml
├── binbench-x86.yaml
└── README.md
Entry point for the benchmark source corpus. The retained set includes:
1.c2.c3.c3-3_extern_defs.c4.c5-1.cpp5-23.c6.c7.c
Notes:
3.cand3-3_extern_defs.cform a multi-source case5-1.cppis the only C++ benchmark case
Stores original binaries and build metadata.
Key file:
build/successful_builds.json
Common layout:
build/<arch>/<src>/<bin_name>
Stores outputs from each decompiler.
Main directories:
ghidra_out/ida_out/retdec_out/BinaryAI_out/angr_out/
Common layout:
decompiled/<tool>_out/<arch>/<src>/<bin_name>.c
Step1 readability evaluation.
Core file:
eval_readability.py
Step2 recompilability evaluation.
The retained mainline implementation is:
auto_fixer_v3.pyutils/compiler.pyutils/error_parser_v3.pyutils/file_manager_v3.pyutils/logger_v2.pyutils/llm_client.pyutils/trace_repair.py
Step3 semantic-fidelity evaluation.
Core files:
run_instrumentation.pyanalyze_traces.pysemantic_utils.pytrace_format.pyhook_trace.jscase_stability_config.jsontarget_functions.json
Mainline script usage is documented in scripts/README.md.
Most common call chain:
launch_auto_eval.py
-> auto_eval.py
-> pipeline_host.py
-> evaluator/readability
-> run_pipeline_in_docker.py
-> evaluator/syntactic
-> evaluator/semantic
These are the main results trees. All three stages share the same per-task directory.
Common layout:
results_<llm>_v4_full/
├── eval_state_arm64.json
├── eval_state_arm32.json
├── eval_state_x64.json
├── eval_state_x86.json
└── <arch>/<src>/<bin_name>/<decompiler>/
├── readability/
├── syntactic/
├── semantic/
└── report.md
Notes:
readability/stores raw Step1 responses and thetest_results_*.jsonfiles consumed by the pipelinesyntactic/storesrepair_trace.json, compile checkpoints, repaired sources, and rebuilt binariessemantic/stores stdout captures, traces, program JSONs, metrics, and analysis reports
Profile templates without real credentials.
References real keys via environment variables such as:
${BINBENCH_GLM_API_KEY}${BINBENCH_DASHSCOPE_API_KEY}${BINBENCH_MINIMAX_API_KEY}
See LLM_CONFIGURATION_GUIDE.md for details.