(root)/
binutils-2.41/
gprofng/
src/
gp-print.h
       1  /* Copyright (C) 2021-2023 Free Software Foundation, Inc.
       2     Contributed by Oracle.
       3  
       4     This file is part of GNU Binutils.
       5  
       6     This program is free software; you can redistribute it and/or modify
       7     it under the terms of the GNU General Public License as published by
       8     the Free Software Foundation; either version 3, or (at your option)
       9     any later version.
      10  
      11     This program is distributed in the hope that it will be useful,
      12     but WITHOUT ANY WARRANTY; without even the implied warranty of
      13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      14     GNU General Public License for more details.
      15  
      16     You should have received a copy of the GNU General Public License
      17     along with this program; if not, write to the Free Software
      18     Foundation, 51 Franklin Street - Fifth Floor, Boston,
      19     MA 02110-1301, USA.  */
      20  
      21  #ifndef _GP_PRINT_H
      22  #define _ER_PRINT_H
      23  
      24  #include "Command.h"
      25  #include "DbeApplication.h"
      26  #include "Histable.h"
      27  #include "Print.h"
      28  
      29  void ipc_mainLoop (int argc, char *argv[]);
      30  
      31  class DbeView;
      32  template <class ITEM> class Vector;
      33  
      34  // er_print object
      35  class er_print : public DbeApplication
      36  {
      37  public:
      38  
      39    er_print (int argc, char *argv[]);
      40    virtual ~er_print ();
      41    void start (int argc, char *argv[]);
      42    bool free_memory_before_exit ();
      43  
      44  private:
      45  
      46    char *error_msg;
      47    DbeView *dbev;
      48    char *out_fname;
      49    FILE *inp_file;
      50    FILE *dis_file;
      51    FILE *out_file;
      52    int dbevindex;
      53    char *cov_string;
      54    int limit;
      55    Vector<Histable*> *cstack;
      56    bool was_QQUIT;
      57  
      58    // override methods in base class
      59    int check_args (int argc, char *argv[]);
      60    void usage ();
      61  
      62    int is_valid_seg_name (char *seg_name, int prev);
      63    int cmp_seg_name (char *full_name, char *seg_name);
      64    int process_object_select (char *cov);
      65    int set_libexpand (char *cov, enum LibExpand expand);
      66    int set_libdefaults ();
      67  
      68    bool end_command (char *cmd);
      69    void run (int argc, char *argv[]);
      70    void proc_script ();
      71    void proc_cmd (CmdType cmd_type, int cparam, char *arg1, char *arg2,
      72  		 char *arg3 = NULL, char *arg4 = NULL, bool xdefault = true);
      73    void disp_list (int no_header, int size, int align[],
      74  		  char *header[], char **lists[]);
      75    void exp_list ();
      76    void describe ();
      77    void obj_list ();
      78    void seg_list ();
      79    void print_objects ();
      80    void print_overview ();
      81    void print_overview_nodes (Vector<void*> *data, int level,
      82  			     Vector<char *> *metric_cmds, Vector<char *> *non_metric_cmds);
      83    void print_overview_tree (Vector<void*> *data, int level, Vector<void*> *values,
      84  			    Vector<char *> *metric_cmds, Vector<char *> *non_metric_cmds);
      85    void print_segments ();
      86    void filter_list (CmdType cmd_type);
      87    int check_exp_id (int exp_id, char *sel);
      88    int get_exp_id (char *sel, int &bgn_index, int &end_index);
      89    void print_func (Histable::Type type, Print_mode mode,
      90  		   MetricList *mlist1, MetricList *mlist2,
      91  		   char *func_name = NULL, char *sel = NULL);
      92    void print_gprof (CmdType cmd_type, char *func_name, char *sel);
      93    void print_ctree (CmdType cmd_type);
      94    void print_dobj (Print_mode type, MetricList *mlist1,
      95  		   char *dobj_name = NULL, char *sel = NULL);
      96    void memobj (char *, int);
      97    void mo_list (bool showtab, FILE *outf);
      98    void mo_define (char *, char *, char *, char *, char *);
      99    void indxobj (char *, int);
     100    void indxo_list (bool showtab, FILE *outf);
     101    void indxo_define (char *, char *, char *, char *);
     102    void ifreq ();
     103    void dump_nodes ();
     104    void dump_stacks ();
     105    void dump_unk_pcs ();
     106    void dump_funcs (char *);
     107    void dump_dataobjects (char *);
     108    void dump_map ();
     109    void dump_entities ();
     110    void dump_stats ();
     111    void dump_proc_warnings ();
     112    void send_signal ();
     113    void print_cmd (er_print_common_display *);
     114    FILE *set_outfile (char *cmd, FILE *&set_file, bool append);
     115    void gen_mapfile (char *seg_name, char *cmd);
     116  };
     117  
     118  #endif /* _ER_PRINT_H */