summaryrefslogtreecommitdiffstats
path: root/tdecachegrind/tdecachegrind/tips
blob: 1f555c0ef988c1004ebb6fa9950c7d8f7a3b536c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<tip category="KCachegrind|Help">
<html>
<p>...that the <em>What's This?</em> help for every GUI widget
in KCachegrind contains detailed usage information for this widget?
It is highly recommended to read at least these help texts on first
use. Request <em>What's This?</em> help by pressing
Shift+F1 and clicking on the widget.</p>
</html>
</tip>

<tip category="KCachegrind|Explanation">
<html>
<p>...that you can get profile information at instruction level
with Calltree when you provide the option <em>--dump-instr=yes</em>?
Use the Assembler View for the instruction annotations.
</p>
</html>
</tip>

<tip category="KCachegrind|Keyboard">
<html>
<p>...that you can use Alt-Left/Right keys of your keyboard to go
back/forward in the active object history ?</p>
</html>
</tip>

<tip category="KCachegrind|Keyboard">
<html>
<p>...that you can navigate in the Callee/Caller Map View using
arrow keys? Use Left/Right to change to siblings of the current
item; use Up/Down to go one nesting level up/down. To select
the current item, press Space, and to activate it, press Return.
</p>
</html>
</tip>

<tip category="KCachegrind|Keyboard">
<html>
<p>...that you can navigate in the Call Graph View using
arrow keys? Use Up/Down to go one calling level up/down, alternating
between calls and functions. Use Left/Right to change to siblings of a current
selected call. To activate the current item, press Return.
</p>
</html>
</tip>

<tip category="KCachegrind|Filters">
<html>
<p>...that you can rapidly locate a function by entering part of its
name (case-insensitive) into the edit line of the toolbar
and hit return?</p>
</html>
</tip>

<tip category="KCachegrind|Appearance">
<html>
<p>...that you can assign custom colors to 
ELF objects/C++ Classes/Source Files for graph coloring
in <em>Settings->Configure KCachegrind...</em>?</p>
</html>
</tip>

<tip category="KCachegrind|Configuration">
<html>
<p>...that you can see if debug info is available for a selected 
function by looking at the location label in the Info tab or
the source listing header in the source tab?</p>
<p>There must be the name of the source file (with extension).
If KCachegrind still doesn't show the source, make sure that you
have added the directory of the source file to the
<em>Source Directories</em> list in the configuration.
</html>
</tip>

<tip category="KCachegrind|Appearance">
<html>
<p>...that you can configure whether KCachgrind should
show absolute event counts or relative ones (percentage display)?</p>
</html>
</tip>

<tip category="KCachegrind|Appearance">
<html>
<p>...that you can configure the maximum number of items
for all function lists in KCachegrind? Limiting the number
of items is done to get a fast reacting GUI. The last item in
the list will show you the number of skipped functions, together
with a cost condition for these skipped functions.</p>
<p>To activate a function with small costs, search for it and select
it in the flat profile. Selecting functions with small cost will
temporarily add them to the flat profile list.</p>
</html>
</tip>

<tip category="KCachegrind|Explanation">
<html>
<p>...that the Coverage tab - in contrast to the Call Lists tab -
shows <em>all</em> functions that are calling the selected function
(upper part) / are called by the selected function (bottom part),
no matter how many function are between them on the stack?</p>
<p>Examples:</p>
<p>An entry in the upper list for function foo1() with a value of 50%
with function bar() selected means that 50% of all the cost of function
bar() happened while called from function foo1().</p>
<p>An entry in the bottom list for function foo2() with a value of 50%
with function bar() selected means that 50% of all the cost of function
bar() happened while calling foo2() from bar().</p>
</html>
</tip>

<tip category="KCachegrind|Explanation">
<html>
<p>...that waiting for the tool tip inside of a tree map
shows the list of names of the nested rectangles the mouse
pointer is over?</p>
<p>Items from this list can be selected by pressing the right
mouse button.</p>
</html>
</tip>

<tip category="KCachegrind|Explanation">
<html>
<p>...that you can constrain the cost counts shown to only a
few parts of the whole trace by selecting these parts in the
"Trace Selection" Dockable?</p>
<p>To generate multiple parts in a profiling run with
cachegrind, use e.g. option --cachedumps=xxx for parts
of a length of xxx basic blocks (A basic block is a run
of not-branching assembler statements inside of your program
code).</p>
</html>
</tip>

<tip category="KCachegrind|Explanation">
<p>...that by splitting the view to show information of 
two functions simultaniously, selecting a function in
one panel shows the information for that function
in the other panel?</p>
</html>
</tip>