summaryrefslogtreecommitdiffstats
path: root/tdecachegrind/TODO
blob: b9ee78c2bd89e5bab5c7efa8881a2334b917caf9 (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
TODO/Wishlist Items
===================


KCachegrind
-----------

All cost Lists:
* Show up to a number of items, not down to a threadshold.
  If more, add a "..." with number of items not shown, and context option
  to show more
* "Copy from Top" converts lists into ASCII, puts into clipboard


Configuration:
 Source dirs per ELF object

Layout:
* 1/2/3/4 vertical/horizontal FunctionInfos
  with Shift/Wraparound selection mode
* Inside each FunctionInfo different Layouts
 - tabbed layout
 - top: info, bottom left: calls/coverage, bottom right: graph/source
* Long/short info tab

General:
* Selected Item can be a object/file/class/function/line
* Configuration Dlg
 - Local config (?)
 - Cost Types
 - function colors
 - Try to reload source after config.
* Session Management



Annotation Views:

 BUGS:
  * Draw problem with multiple srcs to one target
  * REP case...

 TODO:
  * Selectable Jumps (Arrows)
  * Tooltip for Jumps (Kind, from/to, jump count) 
  * Show direction (arrows) on jump lines

 Source view TODO:
  * Implicit jumps (green) [needs support from the tool?]



Callgraph:
* Fix Arrows for back-arcs
* Less "Jumps" for minimap
* Correct Keyboard navigation (how?)

Types:
* Ratios
* Automatic subtypes

WISHS:
* Support for Data tracing
  Which variables are touched how often from which function?
  - Some graphical visualisation...

* GCC -pg (gmon.out) as Profiling Backend
* Demangler (use c++filt)
* Calculation of call weights (if not given)
* OProfile, DynaProf

Support for KCachegrind in Calltree
-----------------------------------

WISHS:
- store more details of calltree
  - for every function call: executed from shared lib
    (Not needed, if function names are unique in whole app)
  - adaptive call chain context (Really needed ? MUCH Data!)
- dump at
  - breakpoints
  - watchpoints (with data tracing!)
  - every xxx BBs (DONE)
- dump around
  - function invocation
  - TDEAction event
  - DCOP event

- data accesses from (instr address/count)
  stack:   -> (function, stackframe-offset)
  dynamic: -> (mem region start, [type], offset)
              type can be get when a constructor is called for region
  static:  -> (mem region start, type, offset)

* Generate full instr/data access trace for offline analysis.

* Appending mode