let output () =
    Pdg_parameters.set_debug_keys ["?"];
    let do_kf_pdg kf =
      let fname = Kernel_function.get_name kf in
      if Pdg_parameters.BuildAll.get () ||
        Datatype.String.Set.mem fname (Pdg_parameters.BuildFct.get ())
      then
        let pdg = !Db.Pdg.get kf in
        let bw  = Pdg_parameters.PrintBw.get () in
        Pdg_parameters.result "@[%a@]" (!Db.Pdg.pretty ~bw) pdg;
        let dot_basename = Pdg_parameters.DotBasename.get () in
        if dot_basename <> "" then
          !Db.Pdg.extract pdg (dot_basename ^ "." ^ fname ^ ".dot")
    in
    !Db.Semantic_Callgraph.topologically_iter_on_functions do_kf_pdg;
    let ks = Pdg_parameters.get_debug_keyset () in
    let pp_keys =
      Pretty_utils.pp_flowlist ~left:"" ~sep:", " ~right:"." 
        Format.pp_print_string
    in Pdg_parameters.debug ~level:1 "Logging keys : %a" pp_keys ks ;
    if Pdg_parameters.BuildAll.get () then
      Pdg_parameters.feedback "====== PDG GRAPH COMPUTED ======"