dwarf-synthesis/dwarfsynth.ml

47 lines
1.2 KiB
OCaml

(** dwarfsynth
*
* Entry point for the BAP plugin `dwarfsynth`, defining the command line
* interface
**)
module Self = struct
include Bap.Std.Self()
end
let main = DwarfSynth.Main.main
module Cmdline = struct
module Cnf = Self.Config
let outfile = Cnf.(
param (string) "output"
~doc:("The file in which the output marshalled data will be written. "
^ "Output goes to ./tmp.marshal by default.")
~default:"tmp.marshal"
)
let no_rbp_undef = Cnf.(
param (bool) "no-rbp-undef"
~doc:("Do not unset %rbp after it has been set once in a FDE. "
^"This mimics gcc eh_frame for ease of validation.")
~as_flag:true
~default:false
)
let timers = Cnf.(
param (bool) "timers"
~doc:("Enable timers: print time probes at various points of the "
^"code.")
~as_flag:true
~default: false
)
let () = Cnf.(
when_ready ((fun {get=(!!)} ->
Bap.Std.Project.register_pass' (main
~no_rbp_undef:!!no_rbp_undef
~timers:!!timers
!!outfile )))
)
end