We present CodeFlowGen, a tool for generating scalable synthetic test programs to evaluate the performance of program analysis techniques. CodeFlowGen creates test cases that scale across all three abstraction levels defined by the LLVM infrastructure: the call graph, control flow graph, and instruction chain. Users can fine-tune the number of functions, calls, and control flow paths within the generated test programs. Additionally, CodeFlowGen supports the generation of computational chains for variables, facilitating data-level analysis. CodeFlowGen was employed to evaluate a static analysis method for mapping Linux kernel system calls to capability checks. Comprehensive execution time measurements for all mapping algorithms prove the tool’s effectiveness in creating large, realistic test programs, highlighting the scalability of the tested algorithms. To ease the tool’s usage, a general, language-independent benchmark is created and published. CodeFlowGen provides a state-of-the-art systematic method for generating test cases that can be used for measuring the effectiveness of static analysis algorithms on scalable inputs.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

CodeFlowGen: A Generator of Synthetic Source Code with Scalable Control Flow Paths for Evaluating Static Analysis Tools

  • Răzvan-Mihai Bolunduṭ,
  • Adrian-Viorel Coleşa,
  • Radu-Marian Portase

摘要

We present CodeFlowGen, a tool for generating scalable synthetic test programs to evaluate the performance of program analysis techniques. CodeFlowGen creates test cases that scale across all three abstraction levels defined by the LLVM infrastructure: the call graph, control flow graph, and instruction chain. Users can fine-tune the number of functions, calls, and control flow paths within the generated test programs. Additionally, CodeFlowGen supports the generation of computational chains for variables, facilitating data-level analysis. CodeFlowGen was employed to evaluate a static analysis method for mapping Linux kernel system calls to capability checks. Comprehensive execution time measurements for all mapping algorithms prove the tool’s effectiveness in creating large, realistic test programs, highlighting the scalability of the tested algorithms. To ease the tool’s usage, a general, language-independent benchmark is created and published. CodeFlowGen provides a state-of-the-art systematic method for generating test cases that can be used for measuring the effectiveness of static analysis algorithms on scalable inputs.