~ubuntu-branches/ubuntu/karmic/exmap/karmic

« back to all changes in this revision

Viewing changes to TODO

  • Committer: Bazaar Package Importer
  • Author(s): Samuel Mimram
  • Date: 2006-09-28 17:30:13 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20060928173013-y1fg9v4w13lzxkbi
Tags: 0.10-1
* New upstream release.
* Using dh_installmodules, closes: #381778.
* Updated makefile_no_kernel.dpatch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Each release
 
2
============
 
3
 
 
4
- Check Debian BTS
 
5
        - bug numbers in changelog
 
6
        - mailer off tag to debian bts
 
7
 
 
8
- mail exmap-announce
 
9
 
 
10
- test on FC4 (FC5?)
 
11
 
 
12
- test on ARM (slug)
 
13
 
 
14
- check /var/log/messages during make test
 
15
        - add to tests themselves?
 
16
 
 
17
For 0.10
 
18
========
 
19
 
 
20
DONE - have 'make exmtool' not depend on gtk/X 
 
21
 
 
22
DONE - Change list labels when we select 
 
23
        (e.g. maps for process X, maps for all procs)
 
24
 
 
25
DONE - Review 'not selected' text as well
 
26
 
 
27
DONE - provide resizable columns
 
28
 
 
29
DONE - fix seg when clicking checkbox with no lib selected (grey checkbox)
 
30
 
 
31
DONE - test 'all procs' works for ELF *symbols* too
 
32
 
 
33
DONE - avoid very long cmdlines (see patch from Lubos) 
 
34
 
 
35
DONE - Add About dialogue (from button) for shameless self-promotion
 
36
 
 
37
DONE - File view should all (and default to) sums over all procs
 
38
        DONE - add checkbox (all procs/this proc)
 
39
 
 
40
DONE - mad non-linear CPU usage
 
41
        - file tab
 
42
        - select libqt (used by psi)
 
43
        - select /usr/bin/psi process
 
44
        - select .texto
 
45
        - Looks like sorting on adding to the listbox
 
46
 
 
47
DONE - read *dynamic* symbols from ELF files
 
48
        - does this do what we need?
 
49
 
 
50
DONE - text/fix dump_maps
 
51
 
 
52
DONE - merge 0.9 64bit work into trunk (check diffs on trunk...worth keeping?)
 
53
        - and getpagesize()
 
54
        - maybe start from 0.9 and add in...
 
55
 
 
56
DONE - look at the "global memory analysis tool" gmail, some good todos in there
 
57
 
 
58
DONE - remove leading _ on buttons
 
59
 
 
60
DONE - add keyboard accelerators to buttons
 
61
 
 
62
NO - add keyboard accelerators to tabs
 
63
 
 
64
DONE - update ELF sections when file changes (proc might be NULL)
 
65
 
 
66
OK - are some of the 'sums' with 'all processes' set invalid as sums?
 
67
 
 
68
DONE - need to clear all sub-sections when we change something higher up
 
69
        - e.g. picking new process clears file
 
70
                - but elf sections don't change
 
71
 
 
72
DONE - clear symbols when sections change?
 
73
 
 
74
NOTABUG? - check .got bug from Lubos
 
75
        - add auto test case before fixing
 
76
                - pick out ELF section which must have writable > 0
 
77
 
 
78
Sometime
 
79
========
 
80
 
 
81
- cross-propagate file/proc selection between tabs
 
82
        - optional?
 
83
                - allow optional checkboxes to be set by
 
84
                cmdline and/or env var. avoids cfg file?
 
85
 
 
86
- cmdline sorting should ignore path
 
87
 
 
88
- keep PID? remove pid? father-son sort?
 
89
        - can we move some info out of the 'processes' list and into 
 
90
        an 'info' area below the list?
 
91
        e.g. 'full cmdline', parent pid (clickable!), children, 
 
92
 
 
93
- rename 'writable' column
 
94
        - improve doc for writable column
 
95
 
 
96
 
 
97
- add some kind of in-application help
 
98
 
 
99
- add tooltips
 
100
 
 
101
- drop most boost::shared_ptr usage. We build large std::lists of these
 
102
    things, leading to lots of object creation.
 
103
        - e.g. run under gdb, select an ELF section with many symbols and
 
104
        sample backtrace (with ctrl-C, bt, c) a few times
 
105
 
 
106
- add an icon (does this need gnome?)
 
107
 
 
108
- change kernel interface to /proc/<pid>/exmap
 
109
 
 
110
- shrink Panes sensibly when window resized (hook signal and even up?)
 
111
        - go to 4-way split on resize? (and startup?)
 
112
        - or just set 'expand' on panes?
 
113
 
 
114
- write data to file, load from file (add a FileSysInfo type)
 
115
        - use this to instrument slug
 
116
        - also use in main gexmap to reduce mem footprint during analysis?
 
117
 
 
118
- memprof shows
 
119
        - how much is allocated during reading info?
 
120
                - use massif
 
121
                - memprof on "write data to file" tool
 
122
        - 19Mb allocated
 
123
                - 6.5Mb in Vma::add_pages, from vector.push_back
 
124
                        - consider shrinking class Page?
 
125
                                - wasting 30 bits/class at the moment on padding
 
126
                        - could just store 'page index' into the PagePool
 
127
                                - and have PagePool store the bits
 
128
                                - warning if they aren't the same on all?
 
129
                                - also, common case is contig indices
 
130
                                into PagePool, so could store a 'Range'...
 
131
                - 2.5Mb in PagePool::inc_page_count/map[]
 
132
                - 0.7Mb in allocated class Vmas
 
133
                        - could lose the selfptr nonsense
 
134
                                - maybe drop the shared_ptr stuff entirely?
 
135
                - 3.9Mb in File::open_file()
 
136
                        - open ifstreams!
 
137
                        - need to close off open fds!
 
138
                                - reopen if needed
 
139
 
 
140
- add dirty column from pte_dirty (suggestion from didier)
 
141
 
 
142
- consider having per proc/file in a seperate window (reduce clutter)
 
143
 
 
144
- consider byte-sized sizes for smaller items like symbols
 
145
 
 
146
- consider adding columns (like 'swapped') and having config file
 
147
 
 
148
- command line tool
 
149
  - list procs/files with summary
 
150
  - specify proc/file and get basic info
 
151
  - specify proc/file and list files/procs
 
152
  - specify proc+file and list ELF info?
 
153
  - specify file/ELF section
 
154
 
 
155
- consider handling totals differently
 
156
  - best would be something outside of the file/proc tab.
 
157
  - a single text string on the bottombar looks ugly
 
158
    - multiple labels?
 
159
      - too wide
 
160
    - perhaps split over two lines or something?
 
161
  - even if keep totals in proc list, perhaps add to file too?
 
162
 
 
163
- somehow test on 64bit
 
164
        - finish sysinfo
 
165
                - merge read_vma and read_page_info so can override
 
166
                them both in test sysinfo
 
167
                        - have read /proc/x/maps as protected func
 
168
                - write TestNoModuleLinuxSysInfo
 
169
                        - which reads /proc/x/maps and makes up page info
 
170
                                - is there a way to make it test-compatible?
 
171
                                - or skip those tests if in that mode?
 
172
                - add a switch (on ENV var?) to enable no-module mode
 
173
                for t_exmap
 
174
                - test locally
 
175
                - test on hp testdrive
 
176
 
 
177
- add coverage testing support to makefile
 
178
        - better Exmap coverage
 
179
        -       mkdir -p ./coverage
 
180
        lcov --directory $STAP_OBJ --zerocounters
 
181
        runtest --tool=systemtap
 
182
        lcov --directory $STAP_OBJ --capture --output-file ./coverage/stap.info
 
183
        genhtml -o ./coverage ./coverage/stap.info
 
184
 
 
185
- document non-page-aligned values for files
 
186
 
 
187
- try and show thread stack usage
 
188
        - maybe additional info from kernel module?
 
189
 
 
190
- support earlier kernel versions (no pud_t. See mail from Joaquim)
 
191
        - also need to worry about [vdso] name
 
192
 
 
193
- we can have a map to a (deleted) file. We'll fail to open this
 
194
(d'uh). What problem does this cause? Just a "non elf" file?
 
195
 
 
196
- read /proc/k?mem using pfn to show hex contents?
 
197
        - I think /dev/mem is what is wanted.
 
198
        - shift pfn to get a physical address
 
199
        - seek & read /dev/mem to read data
 
200
 
 
201
        - add a 'RangeView' to exmap.pl
 
202
                - pfns are in Vma, so add 'read_mem_range' to that?
 
203
 
 
204
- Find a way to identify glibc [anon] maps as heap
 
205
 
 
206
- We are holding an open fd to each Elf file. We probably need it to
 
207
seek to read symbols, unless we open/close there (or make it private
 
208
and do it in the caller).
 
209
 
 
210
- add 'reload'
 
211
        - check for memleaks caused by shared_ptr
 
212
        - if we do 'reload', functionality then will need to explicitly break
 
213
        proc <-> file <-> vma links since the shared_ptr's are refcounting
 
214
        won't. (use weak_ptr) (also problems with selfptr nonsense)
 
215
 
 
216
- right justify Sizes
 
217
        - use %10.2f as the format
 
218
        - but then need fixed-width font in text renderer
 
219
                - do-able?
 
220
                - perhaps change default font for all of it?
 
221
                - could pad with leading zeros <ugh>
 
222
 
 
223
- doxygen
 
224
        - basic doc on all classes
 
225
        - need to mark todo's as \todo
 
226
        DONE - add TODO generation
 
227
        DONE - up and running
 
228
 
 
229
------------------------------------------------------------