]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gprofng/src/gp-print.h
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / gprofng / src / gp-print.h
1 /* Copyright (C) 2021-2024 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 */