TODO: Convert most items into PRs.
[binutils-gdb.git] / gdb / TODO
1 If you find inaccuracies in this list, please send mail to
2 gdb-patches@sourceware.cygnus.com. If you would like to work on any
3 of these, you should consider sending mail to the same address, to
4 find out whether anyone else is working on it.
5
6
7 GDB 5.1 - Fixes
8 ===============
9
10 Below is a list of problems identified during the GDB 5.0 release
11 cycle. People hope to have these problems fixed in 5.1.
12
13 --
14
15 Wow, three bug reports for the same problem in one day! We should
16 probably make fixing this a real priority :-).
17
18 Anyway, thanks for reporting.
19
20 The following patch will fix the problems with setting breakpoints in
21 dynamically loaded objects:
22
23 http://sourceware.cygnus.com/ml/gdb-patches/2000-05/msg00230.html
24
25 This patch isn't checked in yet (ping Michael/JimB), but I hope this
26 will be in the next GDB release.
27
28 There should really be a test in the testsuite for this problem, since
29 it keeps coming up :-(. Any volunteers?
30
31 Mark
32
33 --
34
35 x86 linux GDB and SIGALRM (???)
36 http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00803.html
37
38 This problem has been fixed, but a regression test still needs to be
39 added to the testsuite:
40 http://sourceware.cygnus.com/ml/gdb-patches/2000-05/msg00309.html
41
42 Mark
43
44 [The test has been submitted for approval - cagney]
45
46 --
47
48 GDB 5.1 - New features
49 ======================
50
51 The following new features should be included in 5.1.
52
53 --
54
55 Pascal (Pierre Muller, David Taylor)
56
57 Pierre Muller has contributed patches for adding Pascal Language
58 support to GDB.
59
60 2 pascal language patches inserted in database
61 http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00521.html
62
63 Indent -gnu ?
64 http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00496.html
65
66 [I think this has been merged, need to confirm - cagney]
67
68 --
69
70 Java (Anthony Green, David Taylor)
71
72 Anthony Green has a number of Java patches that did not make it into
73 the 5.0 release. The first two are in cvs now, but the third needs
74 some fixing up before it can go in.
75
76 Patch: java tests
77 http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00512.html
78
79 Patch: java booleans
80 http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00515.html
81
82 Patch: handle N_MAIN stab
83 http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00527.html
84
85 -- 2001-03-08
86
87 Add CRIS target.
88
89 A predicate to this is the multi-arching of SOFTWARE_SINGLE_STEP(). A
90 patch has been submitted.
91
92 --
93
94 GDB 5.1 - Cleanups
95 ==================
96
97 The following code cleanups will hopefully be applied to GDB 5.1.
98
99 --
100
101 GDB 5.1 - Known Problems
102 ========================
103
104 --
105
106 z8k
107
108 The z8k has suffered bit rot and is known to not build. The problem
109 was occuring in the opcodes directory.
110
111 --
112
113 m88k
114
115 The m88k has suffered bit rot and is known to not build.
116
117 --
118
119 The BFD directory requires bug-fixed AUTOMAKE et.al.
120
121 AUTOMAKE 1.4 incorrectly set the TEXINPUTS environment variable. It
122 contained the full path to texinfo.tex when it should have only
123 contained the directory. The bug has been fixed in the current
124 AUTOMAKE sources. Automake snapshots can be found in:
125 ftp://sourceware.cygnus.com/pub/gdb/snapshots
126 and ftp://sourceware.cygnus.com/pub/binutils
127
128 --
129
130 Solaris 8 x86 CURSES_H problem
131 http://sources.redhat.com/ml/gdb/2000-07/msg00038.html
132
133 The original problem was worked around with:
134
135 2000-06-06 Michael Snyder <msnyder@cygnus.com>
136
137 * configure.in: Enable autoconf to find curses.h on Solaris 2.8.
138 * configure: Regenerate.
139
140 When building both GDB and SID using the same source tree the problem
141 will still occure. sid/component/configure.in mis-configures
142 <curses.h> and leaves wrong information in the config cache.
143
144 --
145
146 GDB 5.2 - Fixes
147 ===============
148
149 --
150
151 GDB 5.2 - New features
152 ======================
153
154 --
155
156 GCC 3.0 ABI support (but hopefully sooner...).
157
158 --
159
160 Objective C/C++ support (but hopefully sooner...).
161
162 --
163
164 Import of readline 4.2
165
166 --
167
168 GDB 5.2 - Cleanups
169 ==================
170
171 The following cleanups have been identified as part of GDB 5.2.
172
173 --
174
175 Remove old code that does not use ui_out functions and all the related
176 "ifdef"s. This also allows the elimination of -DUI_OUT from
177 Makefile.in and configure.in.
178
179 --
180
181 Compiler warnings.
182
183 Eliminate warnings for all targets on at least one host for one of the
184 -W flags. Flags up for debate include: -Wswitch -Wcomment -trigraphs
185 -Wtrigraphs -Wunused-function -Wunused-label -Wunused-variable
186 -Wunused-value -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
187 -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
188 -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
189 -Woverloaded-virtual -Winline
190
191 --
192
193 Deprecate, if not delete, the following:
194
195 register[]
196 register_valid[]
197 register_buffer()
198 REGISTER_BYTE()
199 Replaced by, on the target side
200 supply_register()
201 and on core-gdb side:
202 {read,write}_register_gen()
203 Remote.c will need to use something
204 other than REGISTER_BYTE() and
205 REGISTER_RAW_SIZE() when unpacking
206 [gG] packets.
207
208 STORE_PSEUDO_REGISTER
209 FETCH_PSEUDO_REGISTER
210 Now handed by the methods
211 gdbarch_{read,write}_register()
212 which sits between core GDB and
213 the register cache.
214
215 REGISTER_CONVERTIBLE
216 REGISTER_CONVERT_TO_RAW
217 REGISTER_CONVERT_TO_VIRTUAL
218 I think these three are redundant.
219 gdbarch_register_{read,write} can
220 do any conversion it likes.
221
222 REGISTER_VIRTUAL_SIZE
223 MAX_REGISTER_VIRTUAL_SIZE
224 REGISTER_VIRTUAL_TYPE
225 I think these can be replaced by
226 the pair:
227 FRAME_REGISTER_TYPE(frame, regnum)
228 REGISTER_TYPE(regnum)
229
230 DO_REGISTERS_INFO
231 Replace with
232 FRAME_REGISTER_INFO (frame, ...)
233
234 REGISTER_SIM_REGNO()
235 If nothing else rename this so that
236 how it relates to rawreg and the
237 regnum is clear.
238
239 REGISTER_BYTES
240 The size of the cache can be computed
241 on the fly.
242
243 IS_TRAPPED_INTERNALVAR
244 The pseudo registers should eventually make
245 this redundant.
246
247 --
248
249 Obsolete the targets:
250
251 arm*-wince-pe
252 mips*-*-pe
253 sh*-*-pe
254
255 --
256
257 Obsolete the protocols:
258
259 RDB?
260
261 ``As of version 5.3, WindRiver has removed the RDB server (RDB
262 protocol support is built into gdb).'' -- Till.
263
264 --
265
266 Restructure gdb directory tree so that it avoids any 8.3 and 14
267 filename problems.
268
269 --
270
271 Convert GDB build process to AUTOMAKE.
272
273 See also sub-directory configure below.
274
275 The current convention is (kind of) to use $(<header>_h) in all
276 dependency lists. It isn't done in a consistent way.
277
278 --
279
280 GDB 5.2 - Known Problems
281 ========================
282
283 --
284
285 Code Cleanups: General
286 ======================
287
288 The following are more general cleanups and fixes. They are not tied
289 to any specific release.
290
291
292 New Features and Fixes
293 ======================
294
295 These are harder than cleanups but easier than work involving
296 fundamental architectural change.
297
298 --
299
300 Language Support
301 ================
302
303 New languages come onto the scene all the time.
304
305 --
306
307 Re: Various C++ things
308
309 value_headof/value_from_vtable_info are worthless, and should be
310 removed. The one place in printcmd.c that uses it should use the RTTI
311 functions.
312
313 RTTI for g++ should be using the typeinfo functions rather than the
314 vtables. The typeinfo functions are always at offset 4 from the
315 beginning of the vtable, and are always right. The vtables will have
316 weird names like E::VB sometimes. The typeinfo function will always
317 be "E type_info function", or somesuch.
318
319 value_virtual_fn_field needs to be fixed so there are no failures for
320 virtual functions for C++ using g++.
321
322 Testsuite cases are the major priority right now for C++ support,
323 since i have to make a lot of changes that could potentially break
324 each other.
325
326 --
327
328
329 Symbol Support
330 ==============
331
332 --
333
334 Investiagate ways of reducing memory.
335
336 --
337
338 Investigate ways of improving load time.
339
340 --
341
342 Testsuite Support
343 =================
344
345 There are never to many testcases.
346
347 --
348
349 Better thread testsuite.
350
351 --
352
353 Better C++ testsuite.
354
355 --
356
357 Architectural Changes: General
358 ==============================
359
360 These are harder than simple cleanups / fixes and, consequently
361 involve more work. Typically an Architectural Change will be broken
362 down into a more digestible set of cleanups and fixes.
363
364 --
365
366 Architectural Change: Multi-arch et al.
367 =======================================
368
369 The long term objective is to remove all assumptions that there is a
370 single target with a single address space with a single instruction
371 set architecture and single application binary interface.
372
373 This is an ongoing effort. The first milestone is to enable
374 ``multi-arch'' where by all architectural decisions are made at
375 runtime.
376
377 It should be noted that ``gdbarch'' is really ``gdbabi'' and
378 ``gdbisa''. Once things are multi-arched breaking that down correctly
379 will become much easier.
380
381 --
382
383 Architectural Change: MI, LIBGDB and scripting languages
384 ========================================================
385
386 See also architectural changes related to the event loop. LIBGDB
387 can't be finished until there is a generic event loop being used by
388 all targets.
389
390 The long term objective is it to be possible to integrate GDB into
391 scripting languages.
392
393 --
394
395 Architectural Change: Async
396 ===========================
397
398 While GDB uses an event loop when prompting the user for input. That
399 event loop is not exploited by targets when they allow the target
400 program to continue. Typically targets still block in (target_wait())
401 until the program again halts.
402
403 The closest a target comes to supporting full asynchronous mode are
404 the remote targets ``async'' and ``extended-async''.
405
406 --
407
408 # Local Variables:
409 # mode: text
410 # End: