From 3ab947ce345e9d18ddcda57d8f88b2a9b8f5d267 Mon Sep 17 00:00:00 2001 From: Xavier Leroy Date: Mon, 12 Oct 2015 11:48:36 +0200 Subject: Removal of cchecklink, superseded by AbsInt's Valex tool. --- checklink/Validator.ml | 132 ------------------------------------------------- 1 file changed, 132 deletions(-) delete mode 100644 checklink/Validator.ml (limited to 'checklink/Validator.ml') diff --git a/checklink/Validator.ml b/checklink/Validator.ml deleted file mode 100644 index f9ca0edb..00000000 --- a/checklink/Validator.ml +++ /dev/null @@ -1,132 +0,0 @@ -open Check -open Disassembler -open ELF_parsers -open ELF_printers -open Fuzz - -let elf_file = ref (None: string option) -let sdump_files = ref ([] : string list) -let option_fuzz = ref false -let option_bytefuzz = ref false -let option_printelf = ref false - -let set_elf_file s = - begin match !elf_file with - | None -> elf_file := Some s - | Some _ -> raise (Arg.Bad "multiple ELF executables given on command line") - end - -let set_conf_file s = - begin match !conf_file with - | None -> conf_file := Some s - | Some _ -> raise (Arg.Bad "multiple configuration files given on command line") - end - -let read_sdumps_from_channel ic = - try - while true do - let l = input_line ic in - if l <> "" then sdump_files := l :: !sdump_files - done - with End_of_file -> - () - -let read_sdumps_from_file f = - if f = "-" then - read_sdumps_from_channel stdin - else begin - try - let ic = open_in f in - read_sdumps_from_channel ic; - close_in ic - with Sys_error msg -> - Printf.eprintf "Error reading file: %s\n" msg; exit 2 - end - -let option_disassemble = ref false -let disassemble_list = ref ([]: string list) -let add_disassemble s = - disassemble_list := s :: !disassemble_list; - option_disassemble := true - -let options = [ - (* Main options *) - "-exe", Arg.String set_elf_file, - " Specify the ELF executable file to analyze"; - "-conf", Arg.String set_conf_file, - " Specify a configuration file"; - "-files-from", Arg.String read_sdumps_from_file, - " Read names of .sdump files from the given file\n\ - \t(or from standard input if is '-')"; - (* Parsing behavior *) - "-relaxed", Arg.Set ELF_parsers.relaxed, - "Allows the following behaviors in the ELF parser:\n\ -\t* Use of a fallback heuristic to resolve symbols bootstrapped at load time"; - (* Printing behavior *) - "-no-exhaustive", Arg.Clear Check.exhaustivity, - "Disable the exhaustivity check of ELF function and data symbols"; - "-list-missing", Arg.Set Check.list_missing, - "List function and data symbols that were missing in the exhaustivity check"; - (* Alternative outputs *) - "-debug", Arg.Set Check.debug, - "Print a detailed trace of verification"; - "-disass", Arg.String add_disassemble, - " Disassemble the symbol with specified name (can be repeated)"; - "-print-elf", Arg.Set option_printelf, - "Print the contents of the unanalyzed ELF executable"; - (* ELF map related *) - "-print-elfmap", Arg.Set Check.print_elfmap, - "Print a map of the analyzed ELF executable"; - "-verbose-elfmap", Arg.Set Frameworks.verbose_elfmap, - "Show sections and symbols contained in the unknown parts of the elf map"; - (* Fuzz testing related *) - "-dump-elfmap", Arg.Set Check.dump_elfmap, - "Dump an ELF map to .elfmap, for use with random fuzzing"; - "-fuzz", Arg.Set option_fuzz, - "Random fuzz testing"; - "-fuzz-byte", Arg.Set option_bytefuzz, - "Random fuzz testing byte per byte"; - "-fuzz-debug", Arg.Set Fuzz.fuzz_debug, - "Print a detailed trace of ongoing fuzz testing"; -] - -let anonymous arg = - if Filename.check_suffix arg ".sdump" then - sdump_files := arg :: !sdump_files - else - set_elf_file arg - -let usage = - "The CompCert C post-linking validator, version " ^ Version.version ^ " -Usage: cchecklink [options] <.sdump files> -In the absence of options, checks are performed and a short result is displayed. -Options are:" - -let _ = - Arg.parse options anonymous usage; - begin match !elf_file with - | None -> - Arg.usage options usage; - exit 2 - | Some elffilename -> - let sdumps = List.rev !sdump_files in - if !option_disassemble then begin - let elf = read_elf elffilename in - List.iter - (fun s -> - Printf.printf "Disassembling %s:\n%s\n\n" s (disassemble elf s) - ) - !disassemble_list - end else if !option_bytefuzz then begin - Random.self_init(); - fuzz_every_byte_loop elffilename sdumps - end else if !option_fuzz then begin - Random.self_init(); - fuzz_loop elffilename sdumps - end else if !option_printelf then begin - let elf = read_elf elffilename in - print_endline (string_of_elf elf) - end else begin - check_elf_dump elffilename sdumps - end - end -- cgit