From: Philippe E. <ph...@us...> - 2007-10-27 16:31:13
|
Update of /cvsroot/oprofile/oprofile/pp In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv13477/pp Modified Files: Tag: JIT_SUPPORT common_option.cpp common_option.h opannotate.cpp opannotate_options.cpp oparchive.cpp oparchive_options.cpp opgprof.cpp opgprof_options.cpp opreport.cpp opreport_options.cpp Log Message: Sync with HEAD, one merge conflict in op_bfd.cpp solved, call to find_image_path() added, it's not clear how oparchive will intercat with jit profiling but these changeset shouldn't hurt jit because it only defer the find_image_path() call from caller down to op_bfd() ctor Index: common_option.cpp =================================================================== RCS file: /cvsroot/oprofile/oprofile/pp/common_option.cpp,v retrieving revision 1.22 retrieving revision 1.22.2.1 diff -u -p -d -r1.22 -r1.22.2.1 --- common_option.cpp 17 Nov 2006 23:47:30 -0000 1.22 +++ common_option.cpp 27 Oct 2007 16:31:14 -0000 1.22.2.1 @@ -24,7 +24,6 @@ using namespace std; namespace options { - extra_images extra_found_images; double threshold = 0.0; string threshold_opt; string session_dir = OP_SESSION_DIR_DEFAULT; @@ -187,8 +186,6 @@ options::spec get_options(int argc, char if (!ok) throw op_runtime_error("invalid --image-path= options"); - options::extra_found_images.populate(options::image_path); - // XML generator needs command line options for its header ostringstream str; for (int i = 1; i < argc; ++i) Index: common_option.h =================================================================== RCS file: /cvsroot/oprofile/oprofile/pp/common_option.h,v retrieving revision 1.11 retrieving revision 1.11.2.1 diff -u -p -d -r1.11 -r1.11.2.1 --- common_option.h 17 Nov 2006 23:47:30 -0000 1.11 +++ common_option.h 27 Oct 2007 16:31:14 -0000 1.11.2.1 @@ -21,7 +21,6 @@ namespace options { extern bool verbose; - extern extra_images extra_found_images; extern double threshold; extern std::string threshold_opt; extern std::string command_options; Index: opannotate.cpp =================================================================== RCS file: /cvsroot/oprofile/oprofile/pp/opannotate.cpp,v retrieving revision 1.44 retrieving revision 1.44.2.1 diff -u -p -d -r1.44 -r1.44.2.1 --- opannotate.cpp 7 Aug 2005 11:15:53 -0000 1.44 +++ opannotate.cpp 27 Oct 2007 16:31:14 -0000 1.44.2.1 @@ -685,13 +685,13 @@ int opannotate(options::spec const & spe nr_events = classes.v.size(); - samples.reset(new profile_container(true, true)); + samples.reset(new profile_container(true, true, + classes.extra_found_images)); list<string> images; list<inverted_profile> iprofiles - = invert_profiles(options::archive_path, classes, - options::extra_found_images); + = invert_profiles(options::archive_path, classes); report_image_errors(iprofiles); Index: opannotate_options.cpp =================================================================== RCS file: /cvsroot/oprofile/oprofile/pp/opannotate_options.cpp,v retrieving revision 1.22 retrieving revision 1.22.2.1 diff -u -p -d -r1.22 -r1.22.2.1 --- opannotate_options.cpp 1 Jun 2005 00:35:39 -0000 1.22 +++ opannotate_options.cpp 27 Oct 2007 16:31:14 -0000 1.22.2.1 @@ -120,7 +120,7 @@ void handle_options(options::spec const options::file_filter = path_filter(include_file, exclude_file); profile_spec const pspec = - profile_spec::create(spec.common, options::extra_found_images); + profile_spec::create(spec.common, options::image_path); list<string> sample_files = pspec.generate_file_list(exclude_dependent, true); @@ -138,7 +138,8 @@ void handle_options(options::spec const // or assembly point of view the result will be merged anyway merge_by = handle_merge_option(mergespec, false, exclude_dependent); - classes = arrange_profiles(sample_files, merge_by); + classes = arrange_profiles(sample_files, merge_by, + pspec.extra_found_images); cverb << vsfile << "profile_classes:\n" << classes << endl; Index: oparchive.cpp =================================================================== RCS file: /cvsroot/oprofile/oprofile/pp/oparchive.cpp,v retrieving revision 1.9 retrieving revision 1.9.2.1 diff -u -p -d -r1.9 -r1.9.2.1 --- oparchive.cpp 24 May 2007 17:08:36 -0000 1.9 +++ oparchive.cpp 27 Oct 2007 16:31:14 -0000 1.9.2.1 @@ -27,6 +27,7 @@ #include "cverb.h" #include "image_errors.h" #include "string_manip.h" +#include "locate_images.h" using namespace std; @@ -59,8 +60,7 @@ int oparchive(options::spec const & spec /* copy over each of the executables and the debuginfo files */ list<inverted_profile> iprofiles - = invert_profiles(options::archive_path, classes, - options::extra_found_images); + = invert_profiles(options::archive_path, classes); report_image_errors(iprofiles); @@ -69,7 +69,16 @@ int oparchive(options::spec const & spec cverb << vdebug << "(exe_names)" << endl << endl; for (; it != end; ++it) { - string exe_name = it->image; + + image_error error; + string exe_name = find_image_path("", it->image, + classes.extra_found_images, + error, true); + + // output name must be identical to the original name, when + // using this archive the used fixup will be identical e.g.: + // oparchive -p /lib/modules/2.6.42/kernel -o tmp; + // opreport -p /lib/modules/2.6.42/kernel { archive:tmp } string exe_archive_file = options::outdirectory + exe_name; // FIXME: hacky Index: oparchive_options.cpp =================================================================== RCS file: /cvsroot/oprofile/oprofile/pp/oparchive_options.cpp,v retrieving revision 1.10 retrieving revision 1.10.2.1 diff -u -p -d -r1.10 -r1.10.2.1 --- oparchive_options.cpp 20 May 2007 17:31:43 -0000 1.10 +++ oparchive_options.cpp 27 Oct 2007 16:31:14 -0000 1.10.2.1 @@ -91,7 +91,7 @@ void handle_options(options::spec const check_options(); profile_spec const pspec = - profile_spec::create(spec.common, extra_found_images); + profile_spec::create(spec.common, image_path); sample_files = pspec.generate_file_list(exclude_dependent, false); @@ -103,7 +103,8 @@ void handle_options(options::spec const copy(sample_files.begin(), sample_files.end(), ostream_iterator<string>(cverb << vsfile, "\n")); - classes = arrange_profiles(sample_files, merge_by); + classes = arrange_profiles(sample_files, merge_by, + pspec.extra_found_images); cverb << vsfile << "profile_classes:\n" << classes << endl; Index: opgprof.cpp =================================================================== RCS file: /cvsroot/oprofile/oprofile/pp/opgprof.cpp,v retrieving revision 1.27 retrieving revision 1.27.2.1 diff -u -p -d -r1.27 -r1.27.2.1 --- opgprof.cpp 15 Aug 2005 20:56:36 -0000 1.27 +++ opgprof.cpp 27 Oct 2007 16:31:15 -0000 1.27.2.1 @@ -26,6 +26,8 @@ using namespace std; +extern profile_classes classes; + namespace { #define GMON_VERSION 1 @@ -278,12 +280,12 @@ int opgprof(options::spec const & spec) { handle_options(spec); - profile_container samples(false, true); + profile_container samples(false, true, classes.extra_found_images); bool ok = image_profile.error == image_ok; // FIXME: symbol_filter would be allowed through option op_bfd abfd(options::archive_path, image_profile.image, - string_filter(), ok); + string_filter(), classes.extra_found_images, ok); if (!ok && image_profile.error == image_ok) image_profile.error = image_format_failure; Index: opgprof_options.cpp =================================================================== RCS file: /cvsroot/oprofile/oprofile/pp/opgprof_options.cpp,v retrieving revision 1.20 retrieving revision 1.20.2.1 diff -u -p -d -r1.20 -r1.20.2.1 --- opgprof_options.cpp 17 Nov 2006 23:47:30 -0000 1.20 +++ opgprof_options.cpp 27 Oct 2007 16:31:15 -0000 1.20.2.1 @@ -63,16 +63,15 @@ bool try_merge_profiles(profile_spec con merge_by.tgid = true; merge_by.unitmask = true; - profile_classes classes - = arrange_profiles(sample_files, merge_by); + classes = arrange_profiles(sample_files, merge_by, + spec.extra_found_images); cverb << vsfile << "profile_classes:\n" << classes << endl; size_t nr_classes = classes.v.size(); list<inverted_profile> iprofiles - = invert_profiles(options::archive_path, classes, - options::extra_found_images); + = invert_profiles(options::archive_path, classes); if (nr_classes == 1 && iprofiles.size() == 1) { image_profile = *(iprofiles.begin()); @@ -110,7 +109,7 @@ void handle_options(options::spec const } profile_spec const pspec = - profile_spec::create(spec.common, options::extra_found_images); + profile_spec::create(spec.common, options::image_path); options::archive_path = pspec.get_archive_path(); cverb << vsfile << "Archive: " << options::archive_path << endl; Index: opreport.cpp =================================================================== RCS file: /cvsroot/oprofile/oprofile/pp/opreport.cpp,v retrieving revision 1.59 retrieving revision 1.59.2.1 diff -u -p -d -r1.59 -r1.59.2.1 --- opreport.cpp 22 May 2007 00:26:27 -0000 1.59 +++ opreport.cpp 27 Oct 2007 16:31:15 -0000 1.59.2.1 @@ -403,7 +403,8 @@ void output_symbols(profile_container co if (options::xml) { xml_support = new xml_utils(xml_out, symbols, nr_classes, - &options::symbol_filter, options::archive_path); + &options::symbol_filter, options::archive_path, + pc.extra_found_images); xml_out->output(cout); } else { text_out->output(cout, symbols); @@ -479,7 +480,8 @@ void output_cg_symbols(callgraph_contain if (options::xml) { xml_support = new xml_utils(xml_out, symbols, nr_classes, - &options::symbol_filter, options::archive_path); + &options::symbol_filter, options::archive_path, + cg.extra_found_images); xml_out->output(cout); } else { text_out->output(cout, symbols); @@ -511,8 +513,7 @@ int opreport(options::spec const & spec) } list<inverted_profile> iprofiles - = invert_profiles(options::archive_path, classes, - options::extra_found_images); + = invert_profiles(options::archive_path, classes); report_image_errors(iprofiles); @@ -529,7 +530,8 @@ int opreport(options::spec const & spec) multiple_apps |= true; } - profile_container pc1(options::debug_info, options::details); + profile_container pc1(options::debug_info, options::details, + classes.extra_found_images); list<inverted_profile>::iterator it = iprofiles.begin(); list<inverted_profile>::iterator const end = iprofiles.end(); @@ -539,12 +541,12 @@ int opreport(options::spec const & spec) *it, options::symbol_filter, 0); list<inverted_profile> iprofiles2 - = invert_profiles(options::archive_path2, classes2, - options::extra_found_images); + = invert_profiles(options::archive_path2, classes2); report_image_errors(iprofiles2); - profile_container pc2(options::debug_info, options::details); + profile_container pc2(options::debug_info, options::details, + classes2.extra_found_images); list<inverted_profile>::iterator it2 = iprofiles2.begin(); list<inverted_profile>::iterator const end2 = iprofiles2.end(); @@ -557,13 +559,14 @@ int opreport(options::spec const & spec) } else if (options::callgraph) { callgraph_container cg_container; cg_container.populate(options::archive_path, iprofiles, - options::extra_found_images, - options::debug_info, options::threshold, - options::merge_by.lib, options::symbol_filter); + classes.extra_found_images, options::debug_info, + options::threshold, options::merge_by.lib, + options::symbol_filter); output_cg_symbols(cg_container, multiple_apps); } else { - profile_container samples(options::debug_info, options::details); + profile_container samples(options::debug_info, + options::details, classes.extra_found_images); list<inverted_profile>::iterator it = iprofiles.begin(); list<inverted_profile>::iterator const end = iprofiles.end(); Index: opreport_options.cpp =================================================================== RCS file: /cvsroot/oprofile/oprofile/pp/opreport_options.cpp,v retrieving revision 1.34 retrieving revision 1.34.2.1 diff -u -p -d -r1.34 -r1.34.2.1 --- opreport_options.cpp 22 May 2007 00:26:27 -0000 1.34 +++ opreport_options.cpp 27 Oct 2007 16:31:15 -0000 1.34.2.1 @@ -248,7 +248,7 @@ string process_spec(profile_classes & cl cverb << vsfile << "\n\n"; profile_spec const pspec = - profile_spec::create(spec, extra_found_images); + profile_spec::create(spec, image_path); list<string> sample_files = pspec.generate_file_list(exclude_dependent, !options::callgraph); @@ -260,7 +260,8 @@ string process_spec(profile_classes & cl copy(sample_files.begin(), sample_files.end(), ostream_iterator<string>(cverb << vsfile, "\n")); - classes = arrange_profiles(sample_files, merge_by); + classes = arrange_profiles(sample_files, merge_by, + pspec.extra_found_images); cverb << vsfile << "profile_classes:\n" << classes << endl; |