]> Git Repo - binutils.git/blob - gdb/TODO
2003-01-29 Michael Snyder <[email protected]>
[binutils.git] / gdb / TODO
1 If you find inaccuracies in this list, please send mail to
2 [email protected].  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://sources.redhat.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                 GDB 5.1 - New features
36                 ======================
37
38 The following new features should be included in 5.1.
39
40 --
41
42                 GDB 5.1 - Cleanups
43                 ==================
44
45 The following code cleanups will hopefully be applied to GDB 5.1.
46
47 --
48
49                 GDB 5.1 - Known Problems
50                 ========================
51
52 --
53
54 z8k
55
56 The z8k has suffered bit rot and is known to not build.  The problem
57 was occuring in the opcodes directory.
58
59 --
60
61 The BFD directory requires bug-fixed AUTOMAKE et.al.
62
63 AUTOMAKE 1.4 incorrectly set the TEXINPUTS environment variable.  It
64 contained the full path to texinfo.tex when it should have only
65 contained the directory.  The bug has been fixed in the current
66 AUTOMAKE sources.  Automake snapshots can be found in:
67         ftp://sources.redhat.com/pub/gdb/infrastructure
68 and     ftp://sources.redhat.com/pub/binutils
69
70 --
71
72 Solaris 8 x86 CURSES_H problem
73 http://sources.redhat.com/ml/gdb/2000-07/msg00038.html
74
75 The original problem was worked around with:
76
77     2000-06-06  Michael Snyder  <[email protected]>
78
79         * configure.in: Enable autoconf to find curses.h on Solaris 2.8.
80         * configure: Regenerate.
81
82 When building both GDB and SID using the same source tree the problem
83 will still occure. sid/component/configure.in mis-configures
84 <curses.h> and leaves wrong information in the config cache.
85
86 --
87
88                 GDB 5.2 - Fixes
89                 ===============
90
91 --
92
93                 GDB 5.2 - New features
94                 ======================
95
96 --
97
98 GCC 3.0 ABI support (but hopefully sooner...).
99
100 --
101
102 Objective C/C++ support (but hopefully sooner...).
103
104 --
105
106 Import of readline 4.2
107
108 --
109
110                 GDB 5.2 - Cleanups
111                 ==================
112
113 The following cleanups have been identified as part of GDB 5.2.
114
115 --
116
117 Compiler warnings.
118
119 Eliminate warnings for all targets on at least one host for one of the
120 -W flags.  Flags up for debate include: -Wswitch -Wcomment -trigraphs
121 -Wtrigraphs -Wunused-function -Wunused-label -Wunused-variable
122 -Wunused-value -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
123 -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
124 -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
125 -Woverloaded-virtual -Winline
126
127 --
128
129 Deprecate, if not delete, the following:
130
131         register[]
132         register_valid[]
133         REGISTER_BYTE()
134                 Replaced by, on the target side
135                   supply_register()
136                 and on core-gdb side:
137                   {read,write}_register_gen()
138                 Remote.c will need to use something
139                 other than REGISTER_BYTE() and
140                 REGISTER_RAW_SIZE() when unpacking
141                 [gG] packets.
142
143         STORE_PSEUDO_REGISTER
144         FETCH_PSEUDO_REGISTER
145                 Now handed by the methods
146                   gdbarch_{read,write}_register()
147                 which sits between core GDB and
148                 the register cache.
149
150         REGISTER_CONVERTIBLE
151         REGISTER_CONVERT_TO_RAW
152         REGISTER_CONVERT_TO_VIRTUAL
153                 I think these three are redundant.
154                 gdbarch_register_{read,write} can
155                 do any conversion it likes.
156
157         REGISTER_VIRTUAL_SIZE
158         MAX_REGISTER_VIRTUAL_SIZE
159         REGISTER_VIRTUAL_TYPE
160                 I think these can be replaced by
161                 the pair:
162                   FRAME_REGISTER_TYPE(frame, regnum)
163                   REGISTER_TYPE(regnum)
164
165         DO_REGISTERS_INFO
166                 Replace with
167                  FRAME_REGISTER_INFO (frame, ...)
168
169         REGISTER_SIM_REGNO()
170                 If nothing else rename this so that
171                 how it relates to rawreg and the
172                 regnum is clear.
173
174         REGISTER_BYTES
175                 The size of the cache can be computed
176                 on the fly.
177
178         IS_TRAPPED_INTERNALVAR
179                 The pseudo registers should eventually make
180                 this redundant.
181
182 --
183
184 Obsolete the targets:
185
186 arm*-wince-pe
187 mips*-*-pe
188 sh*-*-pe
189
190 --
191
192 Obsolete the protocols:
193
194 RDB?
195
196 ``As of version 5.3, WindRiver has removed the RDB server (RDB
197 protocol support is built into gdb).''  -- Till.
198
199 --
200
201 Restructure gdb directory tree so that it avoids any 8.3 and 14
202 filename problems.
203
204 --
205
206 Convert GDB build process to AUTOMAKE.
207
208 See also sub-directory configure below.
209
210 The current convention is (kind of) to use $(<header>_h) in all
211 dependency lists.  It isn't done in a consistent way.
212
213 --
214
215                 GDB 5.2 - Known Problems
216                 ========================
217
218 --
219
220                 Code Cleanups: General
221                 ======================
222
223 The following are more general cleanups and fixes.  They are not tied
224 to any specific release.
225
226
227                         New Features and Fixes
228                         ======================
229
230 These are harder than cleanups but easier than work involving
231 fundamental architectural change.
232
233 --
234
235                         Language Support
236                         ================
237
238 New languages come onto the scene all the time.
239
240 --
241
242 Re: Various C++ things
243
244 RTTI for g++ should be using the typeinfo functions rather than the
245 vtables.  The typeinfo functions are always at offset 4 from the
246 beginning of the vtable, and are always right. The vtables will have
247 weird names like E::VB sometimes.  The typeinfo function will always
248 be "E type_info function", or somesuch.
249
250 value_virtual_fn_field needs to be fixed so there are no failures for
251 virtual functions for C++ using g++.
252
253 Testsuite cases are the major priority right now for C++ support,
254 since i have to make a lot of changes that could potentially break
255 each other.
256
257 --
258
259
260                         Symbol Support
261                         ==============
262
263 --
264
265 Investiagate ways of reducing memory.
266
267 --
268
269 Investigate ways of improving load time.
270
271 --
272
273                         Testsuite Support
274                         =================
275
276 There are never to many testcases.
277
278 --
279
280 Better thread testsuite.
281
282 --
283
284 Better C++ testsuite.
285
286 --
287
288                 Architectural Changes: General
289                 ==============================
290
291 These are harder than simple cleanups / fixes and, consequently
292 involve more work.  Typically an Architectural Change will be broken
293 down into a more digestible set of cleanups and fixes.
294
295 --
296
297                 Architectural Change: Multi-arch et al.
298                 =======================================
299
300 The long term objective is to remove all assumptions that there is a
301 single target with a single address space with a single instruction
302 set architecture and single application binary interface.
303
304 This is an ongoing effort.  The first milestone is to enable
305 ``multi-arch'' where by all architectural decisions are made at
306 runtime.
307
308 It should be noted that ``gdbarch'' is really ``gdbabi'' and
309 ``gdbisa''.  Once things are multi-arched breaking that down correctly
310 will become much easier.
311
312 --
313
314         Architectural Change: MI, LIBGDB and scripting languages
315         ========================================================
316
317 See also architectural changes related to the event loop.  LIBGDB
318 can't be finished until there is a generic event loop being used by
319 all targets.
320
321 The long term objective is it to be possible to integrate GDB into
322 scripting languages.
323
324 --
325
326                 Architectural Change: Async
327                 ===========================
328
329 While GDB uses an event loop when prompting the user for input.  That
330 event loop is not exploited by targets when they allow the target
331 program to continue.  Typically targets still block in (target_wait())
332 until the program again halts.
333
334 The closest a target comes to supporting full asynchronous mode are
335 the remote targets ``async'' and ``extended-async''.
336
337 --
338
339 # Local Variables:
340 # mode: text
341 # End:
This page took 0.044273 seconds and 4 git commands to generate.