let get_init_funcs () =
  let entry_point_name = Parameters.MainFunction.get () in
  let init_funcs = 
    (* entry point is always a root *)
    Cilutil.StringSet.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.Set.fold
    (fun kf acc -> Cilutil.StringSet.add (Kernel_function.get_name kf) acc)
    callees
    init_funcs