let get_init_funcs () =
  let entry_point_name = Parameters.MainFunction.get () in
  let init_funcs =
    (* entry point is always a root *)
    Datatype.String.Set.add entry_point_name (InitFunc.get ())
  in
  (* Add the callees of entry point as roots *)
  let callees =
    let kf = fst (Globals.entry_point ()) in
    !Db.Users.get kf
  in
  Kernel_function.Hptset.fold
    (fun kf acc -> Datatype.String.Set.add (Kernel_function.get_name kf) acc)
    callees
    init_funcs