Я хочу CFG + Callgraph для модуля, как:
https://github.com/rust-lang/rustc-guid ... ir_cfg.svg>
Код: Выделить всё
int main() { [] {} (); }
< /code>
Когда я пытаюсь сгенерировать CFG + Callgraph, используя эти два варианта: < /p>
$ clang++ -S -emit-llvm Main.C
$ opt -enable-new-pm=0 -dot-cfg -dot-callgraph Main.ll
Writing '.main.dot'...
Writing '._ZZ4mainENK3$_0clEv.dot'...
Writing 'Main.ll.callgraph.dot'...
Это будет генерировать три отдельных файла: один для графа вызовов и другие для CFG (один файл (один файл (один файл (один файл (один файл (один файл (один файл на PE Per Per (один файл (один файл на PE PES). />
Возможное решение: < /h2>
Одно возможное решение (и моя последняя пуля) - это объединить файлы вручную. < /p>
среда: < /h3>
- llvm vership < /h3>
llvm vershain < /h3>
llvm. /> clang : 16.0.0-++ 20220814102906+6afccc4a459ea-1 ~ exp1 ~ 20220814222919.677 - opt : 16.0.0 (x86_64-pc-gnu, westmere) : 16.0.0 (X86_64-pc-gn />
[*]GraphVIZ: 2.40.1-6+deb10u1
- dot: graphviz version 2.40.1 (201612255.0304)
Подробнее здесь: https://stackoverflow.com/questions/733 ... n-one-file