2017-01-03 7 views
2

LLVM IR에 대한 분석을 수행하고 개발자에게 문제를보고하는 정적 분석 도구가 있는지 찾으려고합니다.LLVM IR에 대한 정적 분석 도구

모든 의견을 환영합니다.

+0

LLVM 자체는 본질적으로 많은 정적 분석을 포함합니다. 어떤 종류의 분석을 실행하고 싶으십니까? – Oak

+0

많은 언어가 소스 코드를 LLVM IR (C/C++, Fortran, Ruby 등)으로 변환하는 프론트 엔드를 가지고 있습니다. LLVM IR에 대한 정적 분석 (심볼릭 실행, 데이터 흐름, 제어 흐름 등)을 수행 할 수 있는지 파악하고 소스 코드 측면에서 정보를 제공하는 개발자에게 버그를보고하려고합니다. (버그 설명 및 소스 코드 번호가 발생한 곳). – user2888308

답변

2

관심있는 사람들에게 LLVM IR에 대한 분석을 수행하고 개발자에게 오류/경고를보고하는 몇 가지 조사 도구를 찾을 수있었습니다. 여기에 설명 된대로

  1. KLEE (LLVM IR에 상징적 인 실행이 C 소스 코드에서 생성 http://llvm.org/pubs/2008-12-OSDI-KLEE.html)- 실행하고 보고서를 생성 : 다음 목록입니다. http://klee.github.io/tutorials/testing-regex/
  2. KLOVER (http://www.cs.utah.edu/~ligd/publications/KLOVER-CAV11.pdf) - KLEE의 상단에 내장하는 것은 생성 C++ 프로그램의 테스트 케이스
  3. LLBMC (http://llbmc.org/) - LLVM IR은 SMT-LIB 수식으로 변환되는 중간 논리 표현으로 변환됩니다 .SMT-lib 수식은 SMT 솔버를 사용하여 해결됩니다. 자세한 내용은 http://llbmc.org/files/papers/ASE13.pdf에서 찾을 수 있습니다.
  4. LAV (http://argo.matf.bg.ac.rs/?content=lav) - LLVM 컴파일러 인프라 위에 구축 된 버그 발견 도구입니다. LAV는 기호 실행, 프로그램 제어 흐름의 SAT 인코딩 및 한정 모델 검사의 일부 기능을 결합합니다.