dwarf-synthesis/dwarfsynth.ml
Théophile Bastian 3d336de196 Add flag to never go back to undefined rbp
Once rbp has been set in the DWARF, if this flag is set, nothing will
remove it from the table. This mimicks gcc and allows us to check easily
our tables against theirs.
2019-04-04 11:52:47 +02:00

37 lines
970 B
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 () = Cnf.(
when_ready ((fun {get=(!!)} ->
Bap.Std.Project.register_pass' (main
~no_rbp_undef:!!no_rbp_undef
!!outfile )))
)
end