]> Git Repo - binutils.git/blob - gdb/TODO
* configure.in: Call AC_C_INLINE.
[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 Remove old code that does not use ui_out functions and all the related
118 "ifdef"s.  This also allows the elimination of -DUI_OUT from
119 Makefile.in and configure.in.
120
121 --
122
123 Compiler warnings.
124
125 Eliminate warnings for all targets on at least one host for one of the
126 -W flags.  Flags up for debate include: -Wswitch -Wcomment -trigraphs
127 -Wtrigraphs -Wunused-function -Wunused-label -Wunused-variable
128 -Wunused-value -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
129 -Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
130 -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
131 -Woverloaded-virtual -Winline
132
133 --
134
135 Deprecate, if not delete, the following:
136
137         register[]
138         register_valid[]
139         REGISTER_BYTE()
140                 Replaced by, on the target side
141                   supply_register()
142                 and on core-gdb side:
143                   {read,write}_register_gen()
144                 Remote.c will need to use something
145                 other than REGISTER_BYTE() and
146                 REGISTER_RAW_SIZE() when unpacking
147                 [gG] packets.
148
149         STORE_PSEUDO_REGISTER
150         FETCH_PSEUDO_REGISTER
151                 Now handed by the methods
152                   gdbarch_{read,write}_register()
153                 which sits between core GDB and
154                 the register cache.
155
156         REGISTER_CONVERTIBLE
157         REGISTER_CONVERT_TO_RAW
158         REGISTER_CONVERT_TO_VIRTUAL
159                 I think these three are redundant.
160                 gdbarch_register_{read,write} can
161                 do any conversion it likes.
162
163         REGISTER_VIRTUAL_SIZE
164         MAX_REGISTER_VIRTUAL_SIZE
165         REGISTER_VIRTUAL_TYPE
166                 I think these can be replaced by
167                 the pair:
168                   FRAME_REGISTER_TYPE(frame, regnum)
169                   REGISTER_TYPE(regnum)
170
171         DO_REGISTERS_INFO
172                 Replace with
173                  FRAME_REGISTER_INFO (frame, ...)
174
175         REGISTER_SIM_REGNO()
176                 If nothing else rename this so that
177                 how it relates to rawreg and the
178                 regnum is clear.
179
180         REGISTER_BYTES
181                 The size of the cache can be computed
182                 on the fly.
183
184         IS_TRAPPED_INTERNALVAR
185                 The pseudo registers should eventually make
186                 this redundant.
187
188 --
189
190 Obsolete the targets:
191
192 arm*-wince-pe
193 mips*-*-pe
194 sh*-*-pe
195
196 --
197
198 Obsolete the protocols:
199
200 RDB?
201
202 ``As of version 5.3, WindRiver has removed the RDB server (RDB
203 protocol support is built into gdb).''  -- Till.
204
205 --
206
207 Restructure gdb directory tree so that it avoids any 8.3 and 14
208 filename problems.
209
210 --
211
212 Convert GDB build process to AUTOMAKE.
213
214 See also sub-directory configure below.
215
216 The current convention is (kind of) to use $(<header>_h) in all
217 dependency lists.  It isn't done in a consistent way.
218
219 --
220
221                 GDB 5.2 - Known Problems
222                 ========================
223
224 --
225
226                 Code Cleanups: General
227                 ======================
228
229 The following are more general cleanups and fixes.  They are not tied
230 to any specific release.
231
232
233                         New Features and Fixes
234                         ======================
235
236 These are harder than cleanups but easier than work involving
237 fundamental architectural change.
238
239 --
240
241                         Language Support
242                         ================
243
244 New languages come onto the scene all the time.
245
246 --
247
248 Re: Various C++ things
249
250 value_headof/value_from_vtable_info are worthless, and should be
251 removed.  The one place in printcmd.c that uses it should use the RTTI
252 functions.
253
254 RTTI for g++ should be using the typeinfo functions rather than the
255 vtables.  The typeinfo functions are always at offset 4 from the
256 beginning of the vtable, and are always right. The vtables will have
257 weird names like E::VB sometimes.  The typeinfo function will always
258 be "E type_info function", or somesuch.
259
260 value_virtual_fn_field needs to be fixed so there are no failures for
261 virtual functions for C++ using g++.
262
263 Testsuite cases are the major priority right now for C++ support,
264 since i have to make a lot of changes that could potentially break
265 each other.
266
267 --
268
269
270                         Symbol Support
271                         ==============
272
273 --
274
275 Investiagate ways of reducing memory.
276
277 --
278
279 Investigate ways of improving load time.
280
281 --
282
283                         Testsuite Support
284                         =================
285
286 There are never to many testcases.
287
288 --
289
290 Better thread testsuite.
291
292 --
293
294 Better C++ testsuite.
295
296 --
297
298                 Architectural Changes: General
299                 ==============================
300
301 These are harder than simple cleanups / fixes and, consequently
302 involve more work.  Typically an Architectural Change will be broken
303 down into a more digestible set of cleanups and fixes.
304
305 --
306
307                 Architectural Change: Multi-arch et al.
308                 =======================================
309
310 The long term objective is to remove all assumptions that there is a
311 single target with a single address space with a single instruction
312 set architecture and single application binary interface.
313
314 This is an ongoing effort.  The first milestone is to enable
315 ``multi-arch'' where by all architectural decisions are made at
316 runtime.
317
318 It should be noted that ``gdbarch'' is really ``gdbabi'' and
319 ``gdbisa''.  Once things are multi-arched breaking that down correctly
320 will become much easier.
321
322 --
323
324         Architectural Change: MI, LIBGDB and scripting languages
325         ========================================================
326
327 See also architectural changes related to the event loop.  LIBGDB
328 can't be finished until there is a generic event loop being used by
329 all targets.
330
331 The long term objective is it to be possible to integrate GDB into
332 scripting languages.
333
334 --
335
336                 Architectural Change: Async
337                 ===========================
338
339 While GDB uses an event loop when prompting the user for input.  That
340 event loop is not exploited by targets when they allow the target
341 program to continue.  Typically targets still block in (target_wait())
342 until the program again halts.
343
344 The closest a target comes to supporting full asynchronous mode are
345 the remote targets ``async'' and ``extended-async''.
346
347 --
348
349 # Local Variables:
350 # mode: text
351 # End:
This page took 0.047801 seconds and 4 git commands to generate.