Useful Debugging Options
With any program compiled with our toolchains, the following options print out various important intermediate representations.
-ShowREs - Print parsed or generated regular expressions -ShowPablo - Print generated Pablo code -ShowIR - Print generated LLVM IR. -ShowASM - Print assembly code.
For example, try
./icgrep -ShowREs myRegExp
./icgrep -ShowASM myRegExp
Runtime traces of Pablo code can be printed with
-DumpTrace - Generate dynamic traces of executed Pablo assignments.
Finally, (for the adventurous), if you are having problems with segmented pipeline parallelism mode, you can check what happens with the following flag.
-SerializeThreads - Force segment threads to run sequentially.
With this option, if you get correct output that matches the single-thread output, then it is likely that there is a race condition. However, if the output shows anomalous behaviour, then it is likely a logical problem in kernel, buffer or pipeline structure.