Search code examples
debuggingllvmtrace

llvm basic block tracing


I'm trying to navigate the LLVM toolchain (it seems to be under constant flux) and am looking for a debugging tool: I want a stream of basic blocks an LLVM program runs through as it executes. It looks like lli used to have a -trace option which did this but 2.8 doesn't seem to have this -- I am assuming there is a more 'modern' way to do this now? Would one of the -print-after options do what I want?

Thanks.


Solution

  • Can't find a direct answer, but here is a way using valgrind:

    valgrind --log-file=blocks --vex-guest-chase-thresh=0 --trace-superblocks=yes --tool=lackey ./a.out

    (then check the 'blocks' file)