#!/usr/bin/env python import argparse import os import sys import string import rcs_utils import ng_utils if __name__ == '__main__': parser = argparse.ArgumentParser( description = 'Check the call graph generated based on the ' \ 'specified AA') parser.add_argument('bc', help = 'the bitcode of the program') parser.add_argument('log', help = 'the point-to log') parser.add_argument('aa', help = 'the underlying alias analysis: ' + \ str(ng_utils.get_aa_choices()), metavar = 'aa', choices = ng_utils.get_aa_choices()) args = parser.parse_args() cmd = ng_utils.load_all_plugins('opt') cmd = ng_utils.load_aa(cmd, args.aa) cmd = string.join((cmd, '-fpcg')) cmd = string.join((cmd, '-check-cg')) cmd = string.join((cmd, '-log-file', args.log)) cmd = string.join((cmd, '-disable-output', '<', args.bc)) rcs_utils.invoke(cmd)
#!/usr/bin/env python import argparse import os import sys import string import rcs_utils import ng_utils if __name__ == '__main__': parser = argparse.ArgumentParser( description = 'Check the call graph generated based on the ' \ 'specified AA') parser.add_argument('bc', help='the bitcode of the program') parser.add_argument('log', help='the point-to log') parser.add_argument('aa', help = 'the underlying alias analysis: ' + \ str(ng_utils.get_aa_choices()), metavar = 'aa', choices = ng_utils.get_aa_choices()) args = parser.parse_args() cmd = ng_utils.load_all_plugins('opt') cmd = ng_utils.load_aa(cmd, args.aa) cmd = string.join((cmd, '-fpcg')) cmd = string.join((cmd, '-check-cg')) cmd = string.join((cmd, '-log-file', args.log)) cmd = string.join((cmd, '-disable-output', '<', args.bc)) rcs_utils.invoke(cmd)
exe_hybrid = args.prog + '.hybrid' time_start_hybrid = time.time() # Insert alias checks. cmd = ng_utils.load_all_plugins('opt') if args.input_alias_checks is not None: cmd = ' '.join((cmd, '-input-alias-checks', args.input_alias_checks)) else: if args.baseline == args.aa: sys.stderr.write('\033[0;31m') print >> sys.stderr, 'Error: Baseline and the checked AA', print >> sys.stderr, 'must be different' sys.stderr.write('\033[m') sys.exit(1) # baseline need be put before aa cmd = ng_utils.load_aa(cmd, args.baseline) cmd = ' '.join((cmd, '-baseline-aa')) cmd = ' '.join((cmd, '-baseline-aa-name', args.baseline)) cmd = ng_utils.load_aa(cmd, args.aa) if args.output_alias_checks is not None: cmd = ' '.join((cmd, '-output-alias-checks', args.output_alias_checks)) cmd = ' '.join((cmd, '-instrument-alias-checker')) if args.no_phi: cmd = ' '.join((cmd, '-no-phi')) cmd = ' '.join((cmd, '-action=' + args.action_if_missed)) if args.check_all: cmd = ' '.join((cmd, '-check-all-pointers-online')) # ignore offline functions if args.offline_funcs is not None: for funcs in args.offline_funcs: for func in funcs: