/* Copyright (C) 2021-2024 Free Software Foundation, Inc. Contributed by Oracle. This file is part of GNU Binutils. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef _GP_PRINT_H #define _ER_PRINT_H #include "Command.h" #include "DbeApplication.h" #include "Histable.h" #include "Print.h" void ipc_mainLoop (int argc, char *argv[]); class DbeView; template class Vector; // er_print object class er_print : public DbeApplication { public: er_print (int argc, char *argv[]); virtual ~er_print (); void start (int argc, char *argv[]); bool free_memory_before_exit (); private: char *error_msg; DbeView *dbev; char *out_fname; FILE *inp_file; FILE *dis_file; FILE *out_file; int dbevindex; char *cov_string; int limit; Vector *cstack; bool was_QQUIT; // override methods in base class int check_args (int argc, char *argv[]); void usage (); int is_valid_seg_name (char *seg_name, int prev); int cmp_seg_name (char *full_name, char *seg_name); int process_object_select (char *cov); int set_libexpand (char *cov, enum LibExpand expand); int set_libdefaults (); bool end_command (char *cmd); void run (int argc, char *argv[]); void proc_script (); void proc_cmd (CmdType cmd_type, int cparam, char *arg1, char *arg2, char *arg3 = NULL, char *arg4 = NULL, bool xdefault = true); void disp_list (int no_header, int size, int align[], char *header[], char **lists[]); void exp_list (); void describe (); void obj_list (); void seg_list (); void print_objects (); void print_overview (); void print_overview_nodes (Vector *data, int level, Vector *metric_cmds, Vector *non_metric_cmds); void print_overview_tree (Vector *data, int level, Vector *values, Vector *metric_cmds, Vector *non_metric_cmds); void print_segments (); void filter_list (CmdType cmd_type); int check_exp_id (int exp_id, char *sel); int get_exp_id (char *sel, int &bgn_index, int &end_index); void print_func (Histable::Type type, Print_mode mode, MetricList *mlist1, MetricList *mlist2, char *func_name = NULL, char *sel = NULL); void print_gprof (CmdType cmd_type, char *func_name, char *sel); void print_ctree (CmdType cmd_type); void print_dobj (Print_mode type, MetricList *mlist1, char *dobj_name = NULL, char *sel = NULL); void memobj (char *, int); void mo_list (bool showtab, FILE *outf); void mo_define (char *, char *, char *, char *, char *); void indxobj (char *, int); void indxo_list (bool showtab, FILE *outf); void indxo_define (char *, char *, char *, char *); void ifreq (); void dump_nodes (); void dump_stacks (); void dump_unk_pcs (); void dump_funcs (char *); void dump_dataobjects (char *); void dump_map (); void dump_entities (); void dump_stats (); void dump_proc_warnings (); void send_signal (); void print_cmd (er_print_common_display *); FILE *set_outfile (char *cmd, FILE *&set_file, bool append); void gen_mapfile (char *seg_name, char *cmd); }; #endif /* _ER_PRINT_H */