Verify that you have a recent version of GNAT, ASIS and Ast2Cfg installed and remember the paths.
After downloading the latest version of BWAA unpack the tarball and cd to the newly created directory. Open the Makefile in your favourite editor and adapt the paths at the beginning of the file to your needs. Execute make all and copy the resulting executable to a directory in your path.
$ tar -xzf bwaa-0.8.tar.gz $ cd bwaa-0.8 $ vim Makefile # edit the paths $ make all $ cp bwaa /usr/bin
Usage: bwaa [-v|-vv|-vvv|-vvvv] [-i] [-t] [-f FILE1 FILE2 .. FILEN]
Without options all adt files in the current directory are processed.
-f: only consider adt files FILE1 to FILEN
-i: also consider indirect candidates
-t: only report busy wait if every variable in a termination statement is affected (light scan)
-v: be verbose (show pretty printed output)
-vv: be more verbose (show detailed output)
-vvv: be very verbose (show debug output)
-vvvv: be very very verbose (show all output, not recommended)
Tree Files (.adt)
BWAA takes tree files that are generated by GNAT as input. In order to generate those files you need to compile the program you want to analyse with the -gnatt and the -gnatc switch. For detailed information on those files see the ASIS-for-GNAT documentation.
Detailed documentation can be found in my thesis "Detecting Busy Waiting by Means of Static Control Flow Analysis" which is also available for download.