summaryrefslogtreecommitdiffstats
path: root/meta/packages/oprofile
diff options
context:
space:
mode:
authorRichard Purdie <richard@openedhand.com>2007-02-22 17:54:09 +0000
committerRichard Purdie <richard@openedhand.com>2007-02-22 17:54:09 +0000
commitc269b41ea29d3fbc50a7521aa487a2a87508963d (patch)
tree2fa1dc5784baff6bb9531065673ffee774e0b9eb /meta/packages/oprofile
parent1b447bc1c9f5c9b6bd39e2ce2d24e78813422b5d (diff)
downloadpoky-c269b41ea29d3fbc50a7521aa487a2a87508963d.tar.gz
oprofile: Improve xml_callgraph patch
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@1290 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'meta/packages/oprofile')
-rw-r--r--meta/packages/oprofile/oprofile/xml_callgraph.patch162
-rw-r--r--meta/packages/oprofile/oprofile_cvs.bb2
2 files changed, 111 insertions, 53 deletions
diff --git a/meta/packages/oprofile/oprofile/xml_callgraph.patch b/meta/packages/oprofile/oprofile/xml_callgraph.patch
index 0c2b567614..337706f72d 100644
--- a/meta/packages/oprofile/oprofile/xml_callgraph.patch
+++ b/meta/packages/oprofile/oprofile/xml_callgraph.patch
@@ -1,7 +1,22 @@
1---
2 libpp/callgraph_container.cpp | 22 ++-
3 libpp/callgraph_container.h | 7 -
4 libpp/format_output.cpp | 245 ++++++++++++++++++++++++++++++++++++------
5 libpp/format_output.h | 41 +++++--
6 libpp/symbol.h | 15 +-
7 libpp/symbol_sort.cpp | 17 --
8 libpp/symbol_sort.h | 6 -
9 libpp/xml_utils.cpp | 17 --
10 libutil++/xml_output.cpp | 3
11 libutil++/xml_output.h | 3
12 pp/opreport.cpp | 40 +++++-
13 pp/opreport_options.cpp | 5
14 12 files changed, 314 insertions(+), 107 deletions(-)
15
1Index: oprofile/libpp/callgraph_container.cpp 16Index: oprofile/libpp/callgraph_container.cpp
2=================================================================== 17===================================================================
3--- oprofile.orig/libpp/callgraph_container.cpp 18--- oprofile.orig/libpp/callgraph_container.cpp 2007-02-22 18:19:11.000000000 +0000
4+++ oprofile/libpp/callgraph_container.cpp 19+++ oprofile/libpp/callgraph_container.cpp 2007-02-22 18:19:12.000000000 +0000
5@@ -379,17 +379,19 @@ process(count_array_t total, double thre 20@@ -379,17 +379,19 @@ process(count_array_t total, double thre
6 21
7 process_children(sym, threshold); 22 process_children(sym, threshold);
@@ -56,8 +71,8 @@ Index: oprofile/libpp/callgraph_container.cpp
56 } 71 }
57Index: oprofile/libpp/callgraph_container.h 72Index: oprofile/libpp/callgraph_container.h
58=================================================================== 73===================================================================
59--- oprofile.orig/libpp/callgraph_container.h 74--- oprofile.orig/libpp/callgraph_container.h 2007-02-22 18:19:11.000000000 +0000
60+++ oprofile/libpp/callgraph_container.h 75+++ oprofile/libpp/callgraph_container.h 2007-02-22 18:19:12.000000000 +0000
61@@ -53,7 +53,7 @@ public: 76@@ -53,7 +53,7 @@ public:
62 count_array_t const & arc_count); 77 count_array_t const & arc_count);
63 78
@@ -88,8 +103,8 @@ Index: oprofile/libpp/callgraph_container.h
88 /** 103 /**
89Index: oprofile/libpp/format_output.cpp 104Index: oprofile/libpp/format_output.cpp
90=================================================================== 105===================================================================
91--- oprofile.orig/libpp/format_output.cpp 106--- oprofile.orig/libpp/format_output.cpp 2007-02-22 18:19:11.000000000 +0000
92+++ oprofile/libpp/format_output.cpp 107+++ oprofile/libpp/format_output.cpp 2007-02-22 18:19:12.000000000 +0000
93@@ -489,7 +489,7 @@ cg_formatter::cg_formatter(callgraph_con 108@@ -489,7 +489,7 @@ cg_formatter::cg_formatter(callgraph_con
94 } 109 }
95 110
@@ -226,20 +241,21 @@ Index: oprofile/libpp/format_output.cpp
226 241
227 ostringstream str; 242 ostringstream str;
228 for (; it != end; ++it) { 243 for (; it != end; ++it) {
229@@ -725,10 +742,10 @@ output_symbol_details(symbol_entry const 244@@ -725,10 +742,11 @@ output_symbol_details(symbol_entry const
230 245
231 void xml_formatter:: 246 void xml_formatter::
232 output_symbol(ostream & out, 247 output_symbol(ostream & out,
233- symbol_collection::const_iterator const it, size_t lo, size_t hi) 248- symbol_collection::const_iterator const it, size_t lo, size_t hi)
234+ symbol_entry const * symb, size_t lo, size_t hi) 249+ symbol_entry const * symb, size_t lo, size_t hi, bool is_module)
235 { 250 {
236- symbol_entry const * symb = *it; 251- symbol_entry const * symb = *it;
237 ostringstream str; 252 ostringstream str;
238+ size_t indx; 253+ // pointless reference to is_module, remove insane compiler warning
254+ size_t indx = is_module ? 0 : 1;
239 255
240 // output symbol's summary data for each profile class 256 // output symbol's summary data for each profile class
241 bool got_samples = false; 257 bool got_samples = false;
242@@ -750,27 +767,21 @@ output_symbol(ostream & out, 258@@ -750,27 +768,21 @@ output_symbol(ostream & out,
243 259
244 string const image = get_image_name(symb->image_name, true); 260 string const image = get_image_name(symb->image_name, true);
245 string const qname = image + ":" + name; 261 string const qname = image + ":" + name;
@@ -271,7 +287,7 @@ Index: oprofile/libpp/format_output.cpp
271 details << detail_str; 287 details << detail_str;
272 } 288 }
273 289
274@@ -826,5 +837,170 @@ output_attribute(ostream & out, field_da 290@@ -826,5 +838,176 @@ output_attribute(ostream & out, field_da
275 } 291 }
276 } 292 }
277 293
@@ -296,7 +312,7 @@ Index: oprofile/libpp/format_output.cpp
296+ 312+
297+void xml_cg_formatter:: 313+void xml_cg_formatter::
298+output_symbol_core(ostream & out, 314+output_symbol_core(ostream & out,
299+ symbol_entry const * symb, size_t lo, size_t hi) 315+ symbol_entry const * symb, size_t lo, size_t hi, bool is_module)
300+{ 316+{
301+ cg_symbol const * cg_symb = dynamic_cast<const cg_symbol *>(symb); 317+ cg_symbol const * cg_symb = dynamic_cast<const cg_symbol *>(symb);
302+ ostringstream str; 318+ ostringstream str;
@@ -348,11 +364,13 @@ Index: oprofile/libpp/format_output.cpp
348+ if (!got_samples) 364+ if (!got_samples)
349+ continue; 365+ continue;
350+ 366+
351+ out << open_element(MODULE, true);
352+ out << init_attr(NAME, module) << close_element(NONE, true);
353+
354+ cverb << vxml << " <!-- symbol_ref=" << symbol_names.name(cit->name) << " -->" << endl; 367+ cverb << vxml << " <!-- symbol_ref=" << symbol_names.name(cit->name) << " -->" << endl;
355+ 368+
369+ if (is_module) {
370+ out << open_element(MODULE, true);
371+ out << init_attr(NAME, module) << close_element(NONE, true);
372+ }
373+
356+ out << open_element(SYMBOL, true); 374+ out << open_element(SYMBOL, true);
357+ 375+
358+ string const name1 = symbol_names.name(cit->name); 376+ string const name1 = symbol_names.name(cit->name);
@@ -368,7 +386,8 @@ Index: oprofile/libpp/format_output.cpp
368+ 386+
369+ out << close_element(SYMBOL); 387+ out << close_element(SYMBOL);
370+ 388+
371+ out << close_element(MODULE); 389+ if (is_module)
390+ out << close_element(MODULE);
372+ } 391+ }
373+ } 392+ }
374+ out << close_element(CALLERS); 393+ out << close_element(CALLERS);
@@ -394,11 +413,13 @@ Index: oprofile/libpp/format_output.cpp
394+ if (!got_samples) 413+ if (!got_samples)
395+ continue; 414+ continue;
396+ 415+
397+ out << open_element(MODULE, true);
398+ out << init_attr(NAME, module) << close_element(NONE, true);
399+
400+ cverb << vxml << " <!-- symbol_ref=" << symbol_names.name(cit->name) << " -->" << endl; 416+ cverb << vxml << " <!-- symbol_ref=" << symbol_names.name(cit->name) << " -->" << endl;
401+ 417+
418+ if (is_module) {
419+ out << open_element(MODULE, true);
420+ out << init_attr(NAME, module) << close_element(NONE, true);
421+ }
422+
402+ out << open_element(SYMBOL, true); 423+ out << open_element(SYMBOL, true);
403+ 424+
404+ string name1 = symbol_names.name(cit->name); 425+ string name1 = symbol_names.name(cit->name);
@@ -423,7 +444,8 @@ Index: oprofile/libpp/format_output.cpp
423+ 444+
424+ out << close_element(SYMBOL); 445+ out << close_element(SYMBOL);
425+ 446+
426+ out << close_element(MODULE); 447+ if (is_module)
448+ out << close_element(MODULE);
427+ } 449+ }
428+ } 450+ }
429+ out << close_element(CALLEES); 451+ out << close_element(CALLEES);
@@ -436,16 +458,16 @@ Index: oprofile/libpp/format_output.cpp
436+ 458+
437+void xml_cg_formatter:: 459+void xml_cg_formatter::
438+output_symbol(ostream & out, 460+output_symbol(ostream & out,
439+ symbol_entry const * symb, size_t lo, size_t hi) 461+ symbol_entry const * symb, size_t lo, size_t hi, bool is_module)
440+{ 462+{
441+ output_symbol_core(out, symb, lo, hi); 463+ output_symbol_core(out, symb, lo, hi, is_module);
442+} 464+}
443 465
444 } // namespace format_output 466 } // namespace format_output
445Index: oprofile/libpp/format_output.h 467Index: oprofile/libpp/format_output.h
446=================================================================== 468===================================================================
447--- oprofile.orig/libpp/format_output.h 469--- oprofile.orig/libpp/format_output.h 2007-02-22 18:19:11.000000000 +0000
448+++ oprofile/libpp/format_output.h 470+++ oprofile/libpp/format_output.h 2007-02-22 18:19:12.000000000 +0000
449@@ -201,7 +201,7 @@ public: 471@@ -201,7 +201,7 @@ public:
450 472
451 /** output callgraph information according to the previously format 473 /** output callgraph information according to the previously format
@@ -464,7 +486,7 @@ Index: oprofile/libpp/format_output.h
464 symbol_collection & symbols); 486 symbol_collection & symbols);
465 487
466 // output body of XML output 488 // output body of XML output
467@@ -235,9 +235,8 @@ public: 489@@ -235,9 +235,9 @@ public:
468 490
469 /** output one symbol symb to out according to the output format 491 /** output one symbol symb to out according to the output format
470 * specifier previously set by call(s) to add_format() */ 492 * specifier previously set by call(s) to add_format() */
@@ -472,11 +494,12 @@ Index: oprofile/libpp/format_output.h
472- symbol_collection::const_iterator const it, 494- symbol_collection::const_iterator const it,
473- size_t lo, size_t hi); 495- size_t lo, size_t hi);
474+ virtual void output_symbol(std::ostream & out, 496+ virtual void output_symbol(std::ostream & out,
475+ symbol_entry const * symb, size_t lo, size_t hi); 497+ symbol_entry const * symb, size_t lo, size_t hi,
498+ bool is_module);
476 499
477 /// output details for the symbol 500 /// output details for the symbol
478 std::string output_symbol_details(symbol_entry const * symb, 501 std::string output_symbol_details(symbol_entry const * symb,
479@@ -246,9 +245,12 @@ public: 502@@ -246,9 +246,12 @@ public:
480 /// set the output_details boolean 503 /// set the output_details boolean
481 void show_details(bool); 504 void show_details(bool);
482 505
@@ -490,7 +513,7 @@ Index: oprofile/libpp/format_output.h
490 513
491 // ordered collection of symbols associated with this profile 514 // ordered collection of symbols associated with this profile
492 symbol_collection & symbols; 515 symbol_collection & symbols;
493@@ -256,9 +258,6 @@ private: 516@@ -256,9 +259,6 @@ private:
494 /// true if we need to show details for each symbols 517 /// true if we need to show details for each symbols
495 bool need_details; 518 bool need_details;
496 519
@@ -500,7 +523,7 @@ Index: oprofile/libpp/format_output.h
500 // count of DetailData items output so far 523 // count of DetailData items output so far
501 size_t detail_count; 524 size_t detail_count;
502 525
503@@ -270,6 +269,28 @@ private: 526@@ -270,6 +270,29 @@ private:
504 format_flags fl, tag_t tag); 527 format_flags fl, tag_t tag);
505 }; 528 };
506 529
@@ -517,22 +540,23 @@ Index: oprofile/libpp/format_output.h
517+ /** output one symbol symb to out according to the output format 540+ /** output one symbol symb to out according to the output format
518+ * specifier previously set by call(s) to add_format() */ 541+ * specifier previously set by call(s) to add_format() */
519+ virtual void output_symbol(std::ostream & out, 542+ virtual void output_symbol(std::ostream & out,
520+ symbol_entry const * symb, size_t lo, size_t hi); 543+ symbol_entry const * symb, size_t lo, size_t hi, bool is_module);
521+ 544+
522+private: 545+private:
523+ /// container we work from 546+ /// container we work from
524+ callgraph_container const * callgraph; 547+ callgraph_container const * callgraph;
525+ 548+
526+ void output_symbol_core(std::ostream & out, 549+ void output_symbol_core(std::ostream & out,
527+ symbol_entry const * symb, size_t lo, size_t hi); 550+ symbol_entry const * symb, size_t lo, size_t hi,
551+ bool is_module);
528+}; 552+};
529 553
530 } // namespace format_output 554 } // namespace format_output
531 555
532Index: oprofile/libpp/symbol.h 556Index: oprofile/libpp/symbol.h
533=================================================================== 557===================================================================
534--- oprofile.orig/libpp/symbol.h 558--- oprofile.orig/libpp/symbol.h 2007-02-22 18:19:11.000000000 +0000
535+++ oprofile/libpp/symbol.h 559+++ oprofile/libpp/symbol.h 2007-02-22 18:19:12.000000000 +0000
536@@ -55,8 +55,11 @@ struct sample_entry { 560@@ -55,8 +55,11 @@ struct sample_entry {
537 561
538 562
@@ -562,10 +586,10 @@ Index: oprofile/libpp/symbol.h
562 586
563+/// a collection of sorted callgraph symbols (the objects themselves) 587+/// a collection of sorted callgraph symbols (the objects themselves)
564+typedef std::vector<cg_symbol> cg_collection_objs; 588+typedef std::vector<cg_symbol> cg_collection_objs;
565+
566 589
567-/// a collection of sorted callgraph symbols 590-/// a collection of sorted callgraph symbols
568-typedef std::vector<cg_symbol> cg_collection; 591-typedef std::vector<cg_symbol> cg_collection;
592+
569+/// a collection of sorted callgraph symbols (pointers too, compatible with symbol_collection) 593+/// a collection of sorted callgraph symbols (pointers too, compatible with symbol_collection)
570+//typedef std::vector<cg_symbol const *> cg_collection; 594+//typedef std::vector<cg_symbol const *> cg_collection;
571 595
@@ -573,8 +597,8 @@ Index: oprofile/libpp/symbol.h
573 /// for storing diff %ages 597 /// for storing diff %ages
574Index: oprofile/libpp/symbol_sort.cpp 598Index: oprofile/libpp/symbol_sort.cpp
575=================================================================== 599===================================================================
576--- oprofile.orig/libpp/symbol_sort.cpp 600--- oprofile.orig/libpp/symbol_sort.cpp 2007-02-22 18:19:11.000000000 +0000
577+++ oprofile/libpp/symbol_sort.cpp 601+++ oprofile/libpp/symbol_sort.cpp 2007-02-22 18:19:12.000000000 +0000
578@@ -146,23 +146,6 @@ sort(symbol_collection & syms, bool reve 602@@ -146,23 +146,6 @@ sort(symbol_collection & syms, bool reve
579 603
580 604
@@ -601,8 +625,8 @@ Index: oprofile/libpp/symbol_sort.cpp
601 long_filenames = lf; 625 long_filenames = lf;
602Index: oprofile/libpp/symbol_sort.h 626Index: oprofile/libpp/symbol_sort.h
603=================================================================== 627===================================================================
604--- oprofile.orig/libpp/symbol_sort.h 628--- oprofile.orig/libpp/symbol_sort.h 2007-02-22 18:19:11.000000000 +0000
605+++ oprofile/libpp/symbol_sort.h 629+++ oprofile/libpp/symbol_sort.h 2007-02-22 18:19:12.000000000 +0000
606@@ -44,12 +44,6 @@ struct sort_options { 630@@ -44,12 +44,6 @@ struct sort_options {
607 /** 631 /**
608 * Sort the given container by the given criteria. 632 * Sort the given container by the given criteria.
@@ -618,9 +642,9 @@ Index: oprofile/libpp/symbol_sort.h
618 642
619Index: oprofile/libpp/xml_utils.cpp 643Index: oprofile/libpp/xml_utils.cpp
620=================================================================== 644===================================================================
621--- oprofile.orig/libpp/xml_utils.cpp 645--- oprofile.orig/libpp/xml_utils.cpp 2007-02-22 18:19:12.000000000 +0000
622+++ oprofile/libpp/xml_utils.cpp 646+++ oprofile/libpp/xml_utils.cpp 2007-02-22 18:24:58.000000000 +0000
623@@ -257,13 +257,6 @@ void xml_utils::output_xml_header(string 647@@ -268,13 +268,6 @@ void xml_utils::output_xml_header(string
624 cout << close_element(SETUP) << endl; 648 cout << close_element(SETUP) << endl;
625 } 649 }
626 650
@@ -634,19 +658,53 @@ Index: oprofile/libpp/xml_utils.cpp
634 class subclass_info_t { 658 class subclass_info_t {
635 public: 659 public:
636 string unitmask; 660 string unitmask;
637@@ -589,7 +582,7 @@ void module_info::output_summary(ostream 661@@ -443,7 +436,7 @@ public:
638 void module_info::output_symbols(ostream & out) 662 bool is_closed(string const & n);
663 protected:
664 void output_summary(ostream & out);
665- void output_symbols(ostream & out);
666+ void output_symbols(ostream & out, bool is_module);
667
668 string name;
669 sym_iterator begin;
670@@ -593,7 +586,7 @@ void module_info::output(ostream & out)
671 out << open_element(MODULE, true);
672 out << init_attr(NAME, name) << close_element(NONE, true);
673 output_summary(out);
674- output_symbols(out);
675+ output_symbols(out, true);
676 out << close_element(MODULE);
677 }
678
679@@ -605,13 +598,13 @@ void module_info::output_summary(ostream
680 }
681
682
683-void module_info::output_symbols(ostream & out)
684+void module_info::output_symbols(ostream & out, bool is_module)
639 { 685 {
686 if (begin == (sym_iterator)0)
687 return;
688
640 for (sym_iterator it = begin; it != end; ++it) 689 for (sym_iterator it = begin; it != end; ++it)
641- xml_out->output_symbol(out, it, lo, hi); 690- xml_out->output_symbol(out, it, lo, hi);
642+ xml_out->output_symbol(out, *it, lo, hi); 691+ xml_out->output_symbol(out, *it, lo, hi, is_module);
643 } 692 }
644 693
645 694
695@@ -791,7 +784,7 @@ void binary_info::output(ostream & out)
696 out << init_attr(NAME, name) << close_element(NONE, true);
697
698 output_summary(out);
699- output_symbols(out);
700+ output_symbols(out, false);
701 for (size_t a = 0; a < nr_modules; ++a)
702 my_modules[a].output(out);
703
646Index: oprofile/libutil++/xml_output.cpp 704Index: oprofile/libutil++/xml_output.cpp
647=================================================================== 705===================================================================
648--- oprofile.orig/libutil++/xml_output.cpp 706--- oprofile.orig/libutil++/xml_output.cpp 2007-02-22 18:19:11.000000000 +0000
649+++ oprofile/libutil++/xml_output.cpp 707+++ oprofile/libutil++/xml_output.cpp 2007-02-22 18:19:12.000000000 +0000
650@@ -47,8 +47,11 @@ string const xml_tag_map[] = { 708@@ -47,8 +47,11 @@ string const xml_tag_map[] = {
651 "binary", 709 "binary",
652 "module", 710 "module",
@@ -661,8 +719,8 @@ Index: oprofile/libutil++/xml_output.cpp
661 "symboltable", 719 "symboltable",
662Index: oprofile/libutil++/xml_output.h 720Index: oprofile/libutil++/xml_output.h
663=================================================================== 721===================================================================
664--- oprofile.orig/libutil++/xml_output.h 722--- oprofile.orig/libutil++/xml_output.h 2007-02-22 18:19:11.000000000 +0000
665+++ oprofile/libutil++/xml_output.h 723+++ oprofile/libutil++/xml_output.h 2007-02-22 18:19:12.000000000 +0000
666@@ -28,7 +28,8 @@ typedef enum { 724@@ -28,7 +28,8 @@ typedef enum {
667 THREAD, THREAD_ID, 725 THREAD, THREAD_ID,
668 BINARY, 726 BINARY,
@@ -675,8 +733,8 @@ Index: oprofile/libutil++/xml_output.h
675 SOURCE_FILE, SOURCE_LINE, CODE_LENGTH, 733 SOURCE_FILE, SOURCE_LINE, CODE_LENGTH,
676Index: oprofile/pp/opreport.cpp 734Index: oprofile/pp/opreport.cpp
677=================================================================== 735===================================================================
678--- oprofile.orig/pp/opreport.cpp 736--- oprofile.orig/pp/opreport.cpp 2007-02-22 18:19:11.000000000 +0000
679+++ oprofile/pp/opreport.cpp 737+++ oprofile/pp/opreport.cpp 2007-02-22 18:19:12.000000000 +0000
680@@ -378,7 +378,7 @@ void output_symbols(profile_container co 738@@ -378,7 +378,7 @@ void output_symbols(profile_container co
681 format_output::opreport_formatter * text_out = 0; 739 format_output::opreport_formatter * text_out = 0;
682 740
@@ -743,8 +801,8 @@ Index: oprofile/pp/opreport.cpp
743 801
744Index: oprofile/pp/opreport_options.cpp 802Index: oprofile/pp/opreport_options.cpp
745=================================================================== 803===================================================================
746--- oprofile.orig/pp/opreport_options.cpp 804--- oprofile.orig/pp/opreport_options.cpp 2007-02-22 18:19:11.000000000 +0000
747+++ oprofile/pp/opreport_options.cpp 805+++ oprofile/pp/opreport_options.cpp 2007-02-22 18:19:12.000000000 +0000
748@@ -177,11 +177,6 @@ void check_options(bool diff) 806@@ -177,11 +177,6 @@ void check_options(bool diff)
749 } 807 }
750 808
diff --git a/meta/packages/oprofile/oprofile_cvs.bb b/meta/packages/oprofile/oprofile_cvs.bb
index a085cc41de..034ea51ff0 100644
--- a/meta/packages/oprofile/oprofile_cvs.bb
+++ b/meta/packages/oprofile/oprofile_cvs.bb
@@ -1,5 +1,5 @@
1PV = "0.9.2+cvs${SRCDATE}" 1PV = "0.9.2+cvs${SRCDATE}"
2PR = "r2" 2PR = "r3"
3SECTION = "devel" 3SECTION = "devel"
4DESCRIPTION = "OProfile is a system-wide profiler for Linux systems, capable \ 4DESCRIPTION = "OProfile is a system-wide profiler for Linux systems, capable \
5of profiling all running code at low overhead." 5of profiling all running code at low overhead."