LLVM에서 call flow graph를 생성하기 위해 바로 보거나, dot 파일 등으로 저장할 수 있다.
dot 파일을 위해 graphviz를 설치한다
$ sudo apt install graphviz
이후 LLVM 으로 cfg 를 생성한다.
bitcode 생성
$ clang -c -emit-llvm main.c -o main.bc
ll 생성
$ llvm-dis main.bc
cfg 생성
$ opt -analyze -dot-cfg main.ll
코드에 따라서 1개 이상의 .dot 파일이 생성된다.
만약 x11 환경이라면 -dot-cfg 옵션 대신에 -view-cfg 옵션을 통해 바로 cfg 를 볼 수 있다.
dot 파일을 직접 볼 수 없으므로 png 로 변경한다.
$ dot -Tpng -o main.png .main.dot

'IT > LLVM' 카테고리의 다른 글
LLVM Pass 실행 (0) | 2020.09.11 |
---|---|
LLVM clang IR(*.ll) 변환 (0) | 2020.09.11 |