From: Philippe E. <ph...@us...> - 2003-04-27 23:52:34
|
Update of /cvsroot/oprofile/oprofile/libpp In directory sc8-pr-cvs1:/tmp/cvs-serv8830/libpp Modified Files: Tag: pp-interface-branch format_output.cpp format_output.h profile_container.cpp profile_container.h Log Message: handle --include-symbols + dead code removal + minor cleanup regards, Phil Index: format_output.cpp =================================================================== RCS file: /cvsroot/oprofile/oprofile/libpp/Attic/format_output.cpp,v retrieving revision 1.1.2.9 retrieving revision 1.1.2.10 diff -u -d -r1.1.2.9 -r1.1.2.10 --- format_output.cpp 27 Apr 2003 18:51:59 -0000 1.1.2.9 +++ format_output.cpp 27 Apr 2003 23:47:07 -0000 1.1.2.10 @@ -22,74 +22,9 @@ using namespace std; -namespace options { - extern bool demangle; -} - -struct output_option { - char option; - outsymbflag flag; - string help_string; -}; - -static output_option const output_options[] = { - { 'v', osf_vma, "vma offset" }, - { 's', osf_nr_samples, "nr samples" }, - { 'S', osf_nr_samples_cumulated, "nr cumulated samples" }, - { 'p', osf_percent, "nr percent samples" }, - { 'P', osf_percent_cumulated, "nr cumulated percent samples" }, - { 'q', osf_percent_details, "nr percent samples details" }, - { 'Q', osf_percent_cumulated_details, "nr cumulated percent samples details" }, - { 'n', osf_symb_name, "symbol name" }, - { 'l', osf_linenr_info, "source file name and line nr" }, - { 'i', osf_image_name, "image name" }, - { 'e', osf_app_name, "owning application name" }, -}; - -size_t const nr_output_option = sizeof(output_options) / sizeof(output_options[0]); - -namespace { - -output_option const * find_option(char ch) -{ - for (size_t i = 0 ; i < nr_output_option ; ++i) { - if (ch == output_options[i].option) { - return &output_options[i]; - } - } - return 0; -} - -} - - namespace format_output { -outsymbflag parse_format(string const & option) -{ - size_t flag = 0; - for (size_t i = 0 ; i < option.length() ; ++i) { - output_option const * opt = find_option(option[i]); - if (!opt) - return osf_none; - flag |= opt->flag; - } - - return static_cast<outsymbflag>(flag); -} - - -void show_help(ostream & out) -{ - out << "--output format string:\n"; - for (size_t i = 0 ; i < nr_output_option ; ++i) { - out << output_options[i].option << "\t" - << output_options[i].help_string << endl; - } -} - - formatter::formatter(profile_container const & profile_) : flags(osf_none), @@ -168,6 +103,7 @@ need_header = true; } + void formatter::show_short_filename() { short_filename = true; @@ -315,7 +251,7 @@ { if (f.name[0] == '?') return "(no symbol)"; - return options::demangle ? demangle_symbol(f.name) : f.name; + return demangle_symbol(f.name); } Index: format_output.h =================================================================== RCS file: /cvsroot/oprofile/oprofile/libpp/Attic/format_output.h,v retrieving revision 1.1.2.7 retrieving revision 1.1.2.8 diff -u -d -r1.1.2.7 -r1.1.2.8 --- format_output.h 27 Apr 2003 18:51:59 -0000 1.1.2.7 +++ format_output.h 27 Apr 2003 23:47:07 -0000 1.1.2.8 @@ -27,13 +27,6 @@ namespace format_output { -/// output to out the formatting options available -void show_help(std::ostream & out); - -/** return osf_none if the option string is ill formed, so you can call - * output_symbol::show_help() to notify user on available options */ -outsymbflag parse_format(std::string const & option); - /// class to output in a columned format symbols and associated samples class formatter { public: Index: profile_container.cpp =================================================================== RCS file: /cvsroot/oprofile/oprofile/libpp/Attic/profile_container.cpp,v retrieving revision 1.1.2.9 retrieving revision 1.1.2.10 diff -u -d -r1.1.2.9 -r1.1.2.10 --- profile_container.cpp 27 Apr 2003 20:46:49 -0000 1.1.2.9 +++ profile_container.cpp 27 Apr 2003 23:47:07 -0000 1.1.2.10 @@ -69,17 +69,13 @@ // the samples_by_file_loc member var is correctly setup. void profile_container::add(profile_t const & profile, op_bfd const & abfd, - string const & app_name, - string const & symbol_name) + string const & app_name) { string const image_name = abfd.get_filename(); bool const need_linenr = flags & osf_linenr_info; for (symbol_index_t i = 0; i < abfd.syms.size(); ++i) { - if (!symbol_name.empty() && abfd.syms[i].name() != symbol_name) - continue; - u32 start, end; string filename; uint linenr; @@ -307,16 +303,16 @@ string const & image_name, string const & app_name, vector<string> const & excluded_symbols, - string const & symbol) + std::vector<std::string> const & included_symbols) { profile_t profile(sample_filename); - op_bfd abfd(image_name, excluded_symbols, vector<string>()); + op_bfd abfd(image_name, excluded_symbols, included_symbols); profile.check_mtime(image_name); profile.set_start_offset(abfd.get_start_offset()); - samples.add(profile, abfd, app_name, symbol); + samples.add(profile, abfd, app_name); return abfd.have_debug_info(); } Index: profile_container.h =================================================================== RCS file: /cvsroot/oprofile/oprofile/libpp/Attic/profile_container.h,v retrieving revision 1.1.2.10 retrieving revision 1.1.2.11 diff -u -d -r1.1.2.10 -r1.1.2.11 --- profile_container.h 27 Apr 2003 20:46:49 -0000 1.1.2.10 +++ profile_container.h 27 Apr 2003 23:47:07 -0000 1.1.2.11 @@ -63,8 +63,7 @@ * sampling rate, same events etc.) */ void add(profile_t const & profile, op_bfd const & abfd, - std::string const & app_name, - std::string const & symbol_name = std::string()); + std::string const & app_name); /// Find a symbol from its vma, return zero if no symbol at this vma symbol_entry const * find_symbol(bfd_vma vma) const; @@ -187,6 +186,7 @@ std::string const & app_name, std::vector<std::string> const & excluded_symbols = std::vector<std::string>(), - std::string const & symbol = std::string()); + std::vector<std::string> const & included_symbols = + std::vector<std::string>()); #endif /* !PROFILE_CONTAINER_H */ |