summaryrefslogtreecommitdiff
path: root/gdb/TODO
blob: 191f1067f686f554ce269d311c6e1aa1e8a55613 (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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
If you find inaccuracies in this list, please send mail to
gdb-patches@sourceware.cygnus.com.  If you would like to work on any
of these, you should consider sending mail to the same address, to
find out whether anyone else is working on it.


			GDB 5.1 - Fixes
			===============

Below is a list of problems identified during the GDB 5.0 release
cycle.  People hope to have these problems fixed in 5.1.

--

Wow, three bug reports for the same problem in one day!  We should
probably make fixing this a real priority :-).

Anyway, thanks for reporting.

The following patch will fix the problems with setting breakpoints in
dynamically loaded objects:

   http://sourceware.cygnus.com/ml/gdb-patches/2000-05/msg00230.html

This patch isn't checked in yet (ping Michael/JimB), but I hope this
will be in the next GDB release.

There should really be a test in the testsuite for this problem, since
it keeps coming up :-(.  Any volunteers?

Mark

--

		GDB 5.1 - New features
		======================

The following new features should be included in 5.1.

--

		GDB 5.1 - Cleanups
		==================

The following code cleanups will hopefully be applied to GDB 5.1.

--

		GDB 5.1 - Known Problems
		========================

--

z8k

The z8k has suffered bit rot and is known to not build.  The problem
was occuring in the opcodes directory.

--

The BFD directory requires bug-fixed AUTOMAKE et.al.

AUTOMAKE 1.4 incorrectly set the TEXINPUTS environment variable.  It
contained the full path to texinfo.tex when it should have only
contained the directory.  The bug has been fixed in the current
AUTOMAKE sources.  Automake snapshots can be found in:
	ftp://sourceware.cygnus.com/pub/gdb/snapshots
and	ftp://sourceware.cygnus.com/pub/binutils

--

Solaris 8 x86 CURSES_H problem
http://sources.redhat.com/ml/gdb/2000-07/msg00038.html

The original problem was worked around with:

    2000-06-06  Michael Snyder  <msnyder@cygnus.com>

        * configure.in: Enable autoconf to find curses.h on Solaris 2.8.
        * configure: Regenerate.

When building both GDB and SID using the same source tree the problem
will still occure. sid/component/configure.in mis-configures
<curses.h> and leaves wrong information in the config cache.

--

		GDB 5.2 - Fixes
		===============

--

		GDB 5.2 - New features
		======================

--

GCC 3.0 ABI support (but hopefully sooner...).

--

Objective C/C++ support (but hopefully sooner...).

--

Import of readline 4.2

--

		GDB 5.2 - Cleanups
		==================

The following cleanups have been identified as part of GDB 5.2.

--

Remove old code that does not use ui_out functions and all the related
"ifdef"s.  This also allows the elimination of -DUI_OUT from
Makefile.in and configure.in.

--

Compiler warnings.

Eliminate warnings for all targets on at least one host for one of the
-W flags.  Flags up for debate include: -Wswitch -Wcomment -trigraphs
-Wtrigraphs -Wunused-function -Wunused-label -Wunused-variable
-Wunused-value -Wchar-subscripts -Wtraditional -Wshadow -Wcast-qual
-Wcast-align -Wwrite-strings -Wconversion -Wstrict-prototypes
-Wmissing-prototypes -Wmissing-declarations -Wredundant-decls
-Woverloaded-virtual -Winline

--

Deprecate, if not delete, the following:

        register[]
        register_valid[]
	REGISTER_BYTE()
                Replaced by, on the target side
                  supply_register()
                and on core-gdb side:
                  {read,write}_register_gen()
		Remote.c will need to use something
		other than REGISTER_BYTE() and
		REGISTER_RAW_SIZE() when unpacking
		[gG] packets.

        STORE_PSEUDO_REGISTER
        FETCH_PSEUDO_REGISTER
                Now handed by the methods
                  gdbarch_{read,write}_register()
                which sits between core GDB and
                the register cache.

        REGISTER_CONVERTIBLE
        REGISTER_CONVERT_TO_RAW
        REGISTER_CONVERT_TO_VIRTUAL
                I think these three are redundant.
                gdbarch_register_{read,write} can
                do any conversion it likes.

        REGISTER_VIRTUAL_SIZE
        MAX_REGISTER_VIRTUAL_SIZE
        REGISTER_VIRTUAL_TYPE
                I think these can be replaced by
		the pair:
                  FRAME_REGISTER_TYPE(frame, regnum)
                  REGISTER_TYPE(regnum)

	DO_REGISTERS_INFO
		Replace with
		 FRAME_REGISTER_INFO (frame, ...)

	REGISTER_SIM_REGNO()
		If nothing else rename this so that
		how it relates to rawreg and the
		regnum is clear.

	REGISTER_BYTES
		The size of the cache can be computed
		on the fly.

	IS_TRAPPED_INTERNALVAR
		The pseudo registers should eventually make
		this redundant.

--

Obsolete the targets:

arm*-wince-pe
mips*-*-pe
sh*-*-pe

--

Obsolete the protocols:

RDB?

``As of version 5.3, WindRiver has removed the RDB server (RDB
protocol support is built into gdb).''  -- Till.

--

Restructure gdb directory tree so that it avoids any 8.3 and 14
filename problems.

--

Convert GDB build process to AUTOMAKE.

See also sub-directory configure below.

The current convention is (kind of) to use $(<header>_h) in all
dependency lists.  It isn't done in a consistent way.

--

		GDB 5.2 - Known Problems
		========================

--

		Code Cleanups: General
		======================

The following are more general cleanups and fixes.  They are not tied
to any specific release.


			New Features and Fixes
			======================

These are harder than cleanups but easier than work involving
fundamental architectural change.

--

			Language Support
			================

New languages come onto the scene all the time.

--

Re: Various C++ things

value_headof/value_from_vtable_info are worthless, and should be
removed.  The one place in printcmd.c that uses it should use the RTTI
functions.

RTTI for g++ should be using the typeinfo functions rather than the
vtables.  The typeinfo functions are always at offset 4 from the
beginning of the vtable, and are always right. The vtables will have
weird names like E::VB sometimes.  The typeinfo function will always
be "E type_info function", or somesuch.

value_virtual_fn_field needs to be fixed so there are no failures for
virtual functions for C++ using g++.

Testsuite cases are the major priority right now for C++ support,
since i have to make a lot of changes that could potentially break
each other.

--


			Symbol Support
			==============

--

Investiagate ways of reducing memory.

--

Investigate ways of improving load time.

--

			Testsuite Support
			=================

There are never to many testcases.

--

Better thread testsuite.

--

Better C++ testsuite.

--

		Architectural Changes: General
		==============================

These are harder than simple cleanups / fixes and, consequently
involve more work.  Typically an Architectural Change will be broken
down into a more digestible set of cleanups and fixes.

--

		Architectural Change: Multi-arch et al.
		=======================================

The long term objective is to remove all assumptions that there is a
single target with a single address space with a single instruction
set architecture and single application binary interface.

This is an ongoing effort.  The first milestone is to enable
``multi-arch'' where by all architectural decisions are made at
runtime.

It should be noted that ``gdbarch'' is really ``gdbabi'' and
``gdbisa''.  Once things are multi-arched breaking that down correctly
will become much easier.

--

	Architectural Change: MI, LIBGDB and scripting languages
	========================================================

See also architectural changes related to the event loop.  LIBGDB
can't be finished until there is a generic event loop being used by
all targets.

The long term objective is it to be possible to integrate GDB into
scripting languages.

--

		Architectural Change: Async
		===========================

While GDB uses an event loop when prompting the user for input.  That
event loop is not exploited by targets when they allow the target
program to continue.  Typically targets still block in (target_wait())
until the program again halts.

The closest a target comes to supporting full asynchronous mode are
the remote targets ``async'' and ``extended-async''.

--

# Local Variables:
# mode: text
# End: