* solib-aix5.c (map_index_vs_section_name_okay): New function.
[deliverable/binutils-gdb.git] / gdb / TODO
CommitLineData
c906108c 1If you find inaccuracies in this list, please send mail to
2a00c9ce
AC
2gdb-patches@sourceware.cygnus.com. If you would like to work on any
3of these, you should consider sending mail to the same address, to
4find out whether anyone else is working on it.
c906108c 5
138f88c0 6
552054a8
AC
7 GDB 5.1 - Fixes
8 ===============
138f88c0 9
bc9e5bbf 10Below is a list of problems identified during the GDB 5.0 release
552054a8 11cycle. People hope to have these problems fixed in 5.1.
4fd99b5a 12
a50c34dc
AC
13-- 2001-03-08
14
15Update GDB's coding standard documentation. Known topics:
16
17 o alloca/malloc et.al.
18
19 o typedef and structs
20
21 o ISO-C
22
23and most likely also:
24
25 o include conventions
26
4fd99b5a
AC
27--
28
a50c34dc
AC
29Wow, three bug reports for the same problem in one day! We should
30probably make fixing this a real priority :-).
138f88c0 31
a50c34dc
AC
32Anyway, thanks for reporting.
33
34The following patch will fix the problems with setting breakpoints in
35dynamically loaded objects:
36
37 http://sourceware.cygnus.com/ml/gdb-patches/2000-05/msg00230.html
38
39This patch isn't checked in yet (ping Michael/JimB), but I hope this
40will be in the next GDB release.
41
42There should really be a test in the testsuite for this problem, since
43it keeps coming up :-(. Any volunteers?
44
45Mark
bc9e5bbf 46
138f88c0
AC
47--
48
67edb2c6
AC
49x86 linux GDB and SIGALRM (???)
50http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00803.html
51
37d4dc74
MK
52This problem has been fixed, but a regression test still needs to be
53added to the testsuite:
54http://sourceware.cygnus.com/ml/gdb-patches/2000-05/msg00309.html
67edb2c6 55
bc9e5bbf 56Mark
67edb2c6 57
a50c34dc 58[The test has been submitted for approval - cagney]
b2f4b24d 59
6bc37a96
AC
60--
61
a50c34dc
AC
62RFD: infrun.c: No bpstat_stop_status call after proceed over break?
63http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00665.html
6bc37a96 64
a50c34dc
AC
65GDB misses watchpoint triggers after proceeding over a breakpoint on
66x86 targets.
b2f4b24d 67
26099b4a
AC
68--
69
70GDB 5.0 doesn't work on Linux/SPARC
71
a50c34dc 72There are two parts to this.
552054a8 73
a50c34dc 74 o GDB 5.0 doesn't work on GNU/Linux/SPARC32
552054a8 75
a50c34dc
AC
76 o GDB 5.0 doesn't work on the new target
77 GNU/Linux/SPARC64
552054a8 78
a50c34dc 79GDB does build on both these targets.
552054a8 80
a50c34dc 81The first problem is the one that should be fixed.
4afc966c 82
552054a8
AC
83--
84
85 GDB 5.1 - New features
86 ======================
87
88The following new features should be included in 5.1.
89
90--
91
92Enable MI by default. Old code can be deleted after 5.1 is out.
93
a50c34dc
AC
94Issues:
95
96 o syntax change where a list would
97 look like:
98 [ foo=a, foo=b, foo=c ]
99 instead of
100 { foo=a, foo=b, foo=c }
101
102 o kill off the idea of a reverse
103 query.
104
105 o review test cases
106
107 o enable it
108
552054a8
AC
109--
110
111Pascal (Pierre Muller, David Taylor)
112
113Pierre Muller has contributed patches for adding Pascal Language
114support to GDB.
115
1162 pascal language patches inserted in database
117http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00521.html
118
119Indent -gnu ?
120http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00496.html
121
a50c34dc
AC
122[I think this has been merged, need to confirm - cagney]
123
552054a8
AC
124--
125
126Java (Anthony Green, David Taylor)
127
128Anthony Green has a number of Java patches that did not make it into
129the 5.0 release. The first two are in cvs now, but the third needs
130some fixing up before it can go in.
131
132Patch: java tests
133http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00512.html
134
135Patch: java booleans
136http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00515.html
137
138Patch: handle N_MAIN stab
139http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00527.html
140
a50c34dc 141-- 2001-03-08
552054a8 142
a50c34dc 143Add CRIS target.
552054a8 144
a50c34dc
AC
145A predicate to this is the multi-arching of SOFTWARE_SINGLE_STEP(). A
146patch has been submitted.
552054a8
AC
147
148--
149
150 GDB 5.1 - Cleanups
151 ==================
152
153The following code cleanups will hopefully be applied to GDB 5.1.
154
1a5cef06 155-- 2001-03-26
a50c34dc 156
0d35ddba
AC
157Resolve the build status of all broken targets as identified by the
158MAINTAINERS file.
a50c34dc 159
0981ead9
AC
160 o arm-* vs NetBSD's lack of ``unix''
161 o arm-* vs IRIX (see below)
162
5300940c
AC
163 o delete mpw?
164
0d35ddba
AC
165-- 2001-03-15
166
167 Obsolete some targets.
168
169Possible selection criteria are:
170
171 o uses a deprecated feature
172
173 o doesn't build
174
175 o doesn't have a maintainer
176
177Steps:
178
bb19ff3b
AC
179 o Identify TUPPLE : CPU / HOST / TARGET
180 combinations.
181
182 TUPPLE CPU HOST TARGET ZAPPED
183 ------ --- ---- ------ ------
184 ns32k-*-mach3* ns32k ns32km3 ns32km3 yes
185 ns32k-umax-* ns32k umax - yes
186 ns32k-utek-sysv* ns32k merlin merlin yes
187 ns32k-utek-* ns32k - umax yes
52071915 188 tic80-* tic80 - tic80 yes
bb19ff3b
AC
189 m68*-isi-* m68k isi isi
190 m68*-sony-* m68k news news
191 m68030-sony-* m68k news1000 -
192 m68*-rom68k-* m68k - (monitor)
193 m68*-*bug-* m68k - (monitor)
194 m68*-monitor-* m68k - (monitor)
195 m68*-est-* m68k - (monitor)
4a1968f4
AC
196 a29k-*-* a29k ultra3 - yes
197 a29k-*-sym1* a29k - ultra3 yes
198 a29k-*-kern* a29k - a29k-kern yes
1b2b2c16
AC
199 powerpcle-*-solaris* powerpc solaris solaris yes
200 powerpcle-*-cygwin* powerpc cygwin cygwin yes
201 powerpc-*-netware* powerpc - ppc-nw yes
202 w65-*-* w65 - w65 yes
24f89b68 203 i[3456]86-*-sunos* i386 sun386 sun386 yes
0d35ddba 204
bb19ff3b
AC
205 (DONE)
206
207 o post proposals to gdb@
208 (DONE)
209
210 o post revised proposals to gdb-announce@
0d35ddba
AC
211 crossed with gdb@ reply-to to gdb@
212 (DONE)
213
bb19ff3b
AC
214 o clobber the tupple and files:
215 configure.host
216 configure.tgt
217 config/CPU/*HOST*
218 config/CPU/*TARGET*
0d35ddba 219 *-tdep.c *-nat.c *-xdep.c
0d35ddba
AC
220
221 o update NEWS
222
552054a8
AC
223--
224
1b2b2c16
AC
225Zap still more of that nonexistant romp target.
226
227--
228
78566ebe
AC
229Fix copyright notices.
230
231Turns out that ``1998-2000'' isn't considered valid :-(
232
233http://sourceware.cygnus.com/ml/gdb-patches/2000-05/msg00467.html
234
1ba607ad
AC
235--
236
a50c34dc
AC
237 GDB 5.1 - Known Problems
238 ========================
eccbb20d
AC
239
240--
241
242z8k
243
244The z8k has suffered bit rot and is known to not build. The problem
245was occuring in the opcodes directory.
246
cfc046cf
AC
247--
248
1a5cef06
AC
249m88k
250
251The m88k has suffered bit rot and is known to not build.
252
253--
254
cfc046cf
AC
255Solaris 8 x86 CURSES_H problem
256http://sources.redhat.com/ml/gdb/2000-07/msg00038.html
257
258The original problem was worked around with:
259
260 2000-06-06 Michael Snyder <msnyder@cygnus.com>
261
262 * configure.in: Enable autoconf to find curses.h on Solaris 2.8.
263 * configure: Regenerate.
264
265When building both GDB and SID using the same source tree the problem
266will still occure. sid/component/configure.in mis-configures
267<curses.h> and leaves wrong information in the config cache.
268
552054a8
AC
269--
270
271 GDB 5.2 - Fixes
272 ===============
273
274--
275
a50c34dc
AC
276Thread support. Right now, as soon as a thread finishes and exits,
277you're hosed. This problem is reported once a week or so.
552054a8
AC
278
279--
280
281 GDB 5.2 - New features
282 ======================
283
284--
285
0db23c95
AC
286GCC 3.0 ABI support (but hopefully sooner...).
287
288--
289
290Objective C/C++ support (but hopefully sooner...).
552054a8
AC
291
292--
293
294 GDB 5.2 - Cleanups
295 ==================
296
297The following cleanups have been identified as part of GDB 5.2.
298
299--
300
dafc8383 301Remove old code that does not use ui_out functions and all the related
0db23c95
AC
302"ifdef"s. This also allows the elimination of -DUI_OUT from
303Makefile.in and configure.in.
dafc8383
FN
304
305--
306
a50c34dc
AC
307Compiler warnings.
308
309Eliminate all warnings for at least one host/target for the flags:
310-Wimplicit -Wreturn-type -Wcomment -Wtrigraphs -Wformat -Wparentheses
311-Wpointer-arith -Wuninitialized
552054a8
AC
312
313--
314
61a0eb5b
AC
315Deprecate, if not delete, the following:
316
317 register[]
318 register_valid[]
319 register_buffer()
320 REGISTER_BYTE()
321 Replaced by, on the target side
322 supply_register()
323 and on core-gdb side:
324 {read,write}_register_gen()
325 Remote.c will need to use something
326 other than REGISTER_BYTE() and
327 REGISTER_RAW_SIZE() when unpacking
328 [gG] packets.
329
330 STORE_PSEUDO_REGISTER
331 FETCH_PSEUDO_REGISTER
332 Now handed by the methods
333 gdbarch_{read,write}_register()
334 which sits between core GDB and
335 the register cache.
336
337 REGISTER_CONVERTIBLE
338 REGISTER_CONVERT_TO_RAW
339 REGISTER_CONVERT_TO_VIRTUAL
340 I think these three are redundant.
341 gdbarch_register_{read,write} can
342 do any conversion it likes.
343
344 REGISTER_VIRTUAL_SIZE
345 MAX_REGISTER_VIRTUAL_SIZE
346 REGISTER_VIRTUAL_TYPE
347 I think these can be replaced by
348 the pair:
349 FRAME_REGISTER_TYPE(frame, regnum)
350 REGISTER_TYPE(regnum)
351
352 DO_REGISTERS_INFO
353 Replace with
354 FRAME_REGISTER_INFO (frame, ...)
355
356 REGISTER_SIM_REGNO()
357 If nothing else rename this so that
358 how it relates to rawreg and the
359 regnum is clear.
360
361 REGISTER_BYTES
362 The size of the cache can be computed
363 on the fly.
364
365--
366
552054a8
AC
367Restructure gdb directory tree so that it avoids any 8.3 and 14
368filename problems.
369
370--
371
372Convert GDB build process to AUTOMAKE.
373
374See also sub-directory configure below.
375
376The current convention is (kind of) to use $(<header>_h) in all
377dependency lists. It isn't done in a consistent way.
378
a50c34dc
AC
379--
380
381 GDB 5.2 - Known Problems
382 ========================
383
4afc966c
AC
384--
385
386 Code Cleanups: General
387 ======================
388
389The following are more general cleanups and fixes. They are not tied
390to any specific release.
bc9e5bbf
AC
391
392--
393
4a1968f4
AC
394Investigate changing --target=a29k-amd-udi to a29k-*-coff* and
395rationalize *.mt files. The got-ya is in remote-eb.c - it has its own
396custom tty manipulation - it should be using the serial object.
397
398--
399
a2061976 400Rename read_register{,_pid}() to read_unsigned_register{,_pid}().
a50c34dc
AC
401
402--
403
404Can't build IRIX -> arm GDB.
405http://sourceware.cygnus.com/ml/gdb-patches/2000-04/msg00356.html
406
407David Whedon writes:
408> Now I'm building for an embedded arm target. If there is a way of turning
409> remote-rdi off, I couldn't find it. It looks like it gets built by default
410> in gdb/configure.tgt(line 58) Anyway, the build dies in
411> gdb/rdi-share/unixcomm.c. SERPORT1 et. al. never get defined because we
412> aren't one of the architectures supported.
413
414--
415
416Problem with weak functions
417http://sourceware.cygnus.com/ml/gdb/2000-05/msg00060.html
418
419Dan Nicolaescu writes:
420> It seems that gdb-4.95.1 does not display correctly the function when
421> stoping in weak functions.
422>
423> It stops in a function that is defined as weak, not in the function
424> that is actually run...
425
426--
427
428Follow through `make check' with --enable-shared.
429
430When the srcware tree is configured with --enable-shared, the `expect'
431program won't run properly. Jim Wilson found out gdb has a local hack
432to set LD_LIBRARY_PATH, but, AFAIK, no other project has been hacked
433similarly.
434
435http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00845.html
436
437--
438
439Delete macro TARGET_BYTE_ORDER_SELECTABLE.
440
441Patches in the database.
442
443--
444
445printcmd.c (print_address_numeric):
446
447NOTE: This assumes that the significant address information is kept in
448the least significant bits of ADDR - the upper bits were either zero
449or sign extended. Should ADDRESS_TO_POINTER() or some
450ADDRESS_TO_PRINTABLE() be used to do the conversion?
451
452--
453
552054a8
AC
454The BFD directory requires bug-fixed AUTOMAKE et.al.
455
456AUTOMAKE 1.4 incorrectly set the TEXINPUTS environment variable. It
457contained the full path to texinfo.tex when it should have only
458contained the directory. The bug has been fixed in the current
459AUTOMAKE sources. Automake snapshots can be found in:
460 ftp://sourceware.cygnus.com/pub/gdb/snapshots
461and ftp://sourceware.cygnus.com/pub/binutils
462
463--
464
465Find something better than DEFAULT_BFD_ARCH, DEFAULT_BFD_VEC to
466determine the default isa/byte-order.
467
468--
469
e26cc349 470Rely on BFD_BIG_ENDIAN and BFD_LITTLE_ENDIAN instead of host dependent
552054a8
AC
471BIG_ENDIAN and LITTLE_ENDIAN.
472
473--
474
d8038014
AC
475Eliminate more compiler warnings.
476
477Of course there also needs to be the usual debate over which warnings
478are valid and how to best go about this.
479
480One method: choose a single option; get agreement that it is
481reasonable; try it out to see if there isn't anything silly about it
482(-Wunused-parameters is an example of that) then incrementally hack
483away.
484
485The other method is to enable all warnings and eliminate them from one
486file at a time.
487
488--
489
4afc966c 490Elimination of ``(catch_errors_ftype *) func''.
bc9e5bbf 491
4afc966c 492Like make_cleanup_func it isn't portable.
6ecce94d
AC
493http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00791.html
494http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00814.html
495
4afc966c
AC
496--
497
e255d535
AC
498Nuke #define CONST_PTR.
499
500--
501
4afc966c
AC
502Nuke USG define.
503
504--
505
506[PATCH/5] src/intl/Makefile.in:distclean additions
507http://sourceware.cygnus.com/ml/gdb-patches/2000-04/msg00363.html
508
509Do not forget to merge the patch back into the trunk.
510
511--
512
513Rationalize the host-endian code (grep for HOST_BYTE_ORDER).
514
515At present defs.h includes <endian.h> (which is linux specific) yet
516almost nothing depends on it. Suggest "gdb_endian.h" which can also
517handle <machine/endian.h> and only include that where it is really
518needed.
519
520--
521
4afc966c
AC
522Replace savestring() with something from libiberty.
523
524An xstrldup()? but that would have different semantics.
525
526--
527
528Rationalize use of floatformat_unknown in GDB sources.
529
530Instead of defaulting to floatformat_unknown, should hosts/targets
531specify the value explicitly?
532
533http://sourceware.cygnus.com/ml/gdb-patches/2000-05/msg00447.html
534
535--
536
537Add a ``name'' member to include/floatformat.h:struct floatformat.
538Print that name in gdbarch.c.
539
540--
541
542Sort out the harris mess in include/floatformat.h (it hardwires two
543different floating point formats).
544
545--
546
547See of the GDB local floatformat_do_doublest() and libiberty's
548floatformat_to_double (which was once GDB's ...) can be merged some
549how.
550
551--
552
4fcf66da 553Eliminate mmalloc(), mstrsave() et.al. from GDB.
4afc966c
AC
554
555Also eliminate it from defs.h.
556
557--
558
559Eliminate PTR. ISO-C allows ``void *''.
560
561--
562
563Eliminate abort ().
564
565GDB should never abort. GDB should either throw ``error ()'' or
566``internal_error ()''. Better still GDB should naturally unwind with
567an error status.
568
569--
570
571GDB probably doesn't build on FreeBSD pre 2.2.x
572http://sourceware.cygnus.com/ml/gdb-patches/2000-05/msg00378.html
573
574Fixes to get FreeBSD working on 2.2.x, 3.x and 4.x caused the code to
575suffer bit rot.
bc9e5bbf
AC
576
577--
578
78566ebe
AC
579Deprecate "fg". Apparently ``fg'' is actually continue.
580
581http://sourceware.cygnus.com/ml/gdb-patches/2000-05/msg00417.html
582
583--
584
585Deprecate current use of ``floatformat_unknown''.
586
587Require all targets to explicitly provide their float format instead
588of defaulting to floatformat unknown. Doing the latter leads to nasty
589bugs.
590
591http://sourceware.cygnus.com/ml/gdb-patches/2000-05/msg00447.html
bc9e5bbf
AC
592
593--
594
78566ebe
AC
595Rationalize floatformat_to_double() vs floatformat_to_doublest().
596
597Looks like GDB migrated floatformat_to_double() to libiberty but then
598turned around and created a ..._to_doublest() the latter containing
599several bug fixes.
600
601http://sourceware.cygnus.com/ml/gdb-patches/2000-05/msg00472.html
602
603--
604
605Move floatformat_ia64_ext to libiberty/include floatformat.[ch].
606
607http://sourceware.cygnus.com/ml/gdb-patches/2000-05/msg00466.html
608
609--
610
b4a20239
AC
611The ``maintenance deprecate set endian big'' command doesn't notice
612that it is deprecating ``set endian'' and not ``set endian big'' (big
613is implemented using an enum). Is anyone going to notice this?
614
615--
616
617When tab expanding something like ``set arch<tab>'' ignore the
618deprecated ``set archdebug'' and expand to ``set architecture''.
619
78566ebe
AC
620--
621
53904c9e
AC
622Eliminate ``arm_register_names[j] = (char *) regnames[j]'' and the
623like from arm-tdep.c.
624
625--
626
627Fix uses of ->function.cfunc = set_function().
628
629The command.c code calls sfunc() when a set command. Rather than
630change it suggest fixing the callback function so that it is more
631useful. See:
632
633http://sourceware.cygnus.com/ml/gdb-patches/2000-06/msg00062.html
634
635See also ``Fix implementation of ``target xxx''.'' below.
636
bf64bfd6
AC
637--
638
639IRIX 3.x support is probably broken.
640
5d35f0ac
AC
641--
642
643Delete sim/SIM_HAVE_BREAKPOINTS and gdb/SIM_HAS_BREAKPOINTS.
644http://sourceware.cygnus.com/ml/gdb-patches/2000-07/msg00042.html
645
646Apart from the d30v, are there any sim/common simulators that make use
647of this?
648
e26cc349 649A brief summary of what happened is that sim/common/sim-break.c was
5d35f0ac
AC
650created as a good idea. It turned out a better idea was to use
651SIM_SIGBREAK and have GDB pass back sim_resume (..., SIGBREAK).
652
d471ea57
AC
653--
654
655Move remote_remove_hw_breakpoint, remote_insert_hw_breakpoint,
656remote_remove_watchpoint, remote_insert_watchpoint into target vector.
657
896f1867
AC
658--
659
660Eliminate ``extern'' from C files.
661
662--
663
664Replace ``STREQ()'' et.al. with ``strcmp() == 0'' et.al.
665
666Extreme care is recommeded - perhaps only modify tests that are
667exercised by the testsuite (as determined using some type of code
668coverage analysis).
669
2126d5fb
AC
670--
671
672Replace the file gdb/CONTRIBUTE with a file that is generated from the
673gdb/doc/*.texinfo directory.
674
53904c9e 675--
78566ebe 676
4afc966c
AC
677 New Features and Fixes
678 ======================
bc9e5bbf 679
4afc966c
AC
680These are harder than cleanups but easier than work involving
681fundamental architectural change.
bc9e5bbf
AC
682
683--
684
0db23c95 685Hardware watchpoint problems on x86 OSes, including Linux:
0a9c3cb6
AC
686
6871. Delete/disable hardware watchpoints should free hardware debug
688registers.
6892. Watch for different values on a viariable with one hardware debug
690register.
691
692According to Eli Zaretskii <eliz@delorie.com>:
693
694These are not GDB/ia32 issues per se: the above features are all
695implemented in the DJGPP port of GDB and work in v5.0. Every
696x86-based target should be able to lift the relevant parts of
697go32-nat.c and use them almost verbatim. You get debug register
698sharing through reference counts, and the ability to watch large
699regions (up to 16 bytes) using multiple registers. (The required
700infrastructure in high-level GDB application code, mostly in
701breakpoint.c, is also working since v5.0.)
702
703--
704
4afc966c
AC
705Add built-by, build-date, tm, xm, nm and anything else into gdb binary
706so that you can see how the GDB was created.
bc9e5bbf 707
bc9e5bbf
AC
708--
709
4afc966c
AC
710Add an "info bfd" command that displays supported object formats,
711similarly to objdump -i.
5683e87a 712
4afc966c 713Is there a command already?
5683e87a
AC
714
715--
716
4afc966c 717Fix ``I'm sorry, Dave, I can't do that.'' from symfile.c.
bc9e5bbf 718
4afc966c 719This requires internationalization.
bc9e5bbf 720
4afc966c 721--
bc9e5bbf 722
2e4e9e68
AC
723Add support for:
724
725(gdb) p fwprintf(stdout,L"%S\n", f)
726No symbol "L" in current context.
727
728--
729
4afc966c 730Cleanup configury support for optional sub-directories.
7ae38352 731
4afc966c
AC
732Check how GCC handles multiple front ends for an example of how things
733could work. A tentative first step is to rationalize things so that
734all sub directories are handled in a fashion similar to gdb/mi.
735
736See also automake above.
7ae38352
AC
737
738--
739
4afc966c
AC
740Add a transcript mechanism to GDB.
741
742Such a mechanism might log all gdb input and output to a file in a
743form that would allow it to be replayed. It could involve ``gdb
744--transcript=FILE'' or it could involve ``(gdb) transcript file''.
67edb2c6
AC
745
746--
747
4afc966c 748Can the xdep files be replaced by autoconf?
bc9e5bbf 749
4afc966c 750--
bc9e5bbf 751
4afc966c 752Document trace machinery
bc9e5bbf 753
4afc966c
AC
754--
755
78566ebe
AC
756Document ui-out and ui-file.
757
758http://sourceware.cygnus.com/ml/gdb/2000-04/msg00121.html
759
760--
761
762Update texinfo.tex to latest?
763
78566ebe
AC
764--
765
766Incorporate agentexpr.texi into gdb.texinfo
767
768agentexpr.texi mostly describes the details of the byte code used for
769tracepoints, not the internals of the support for this in GDB. So it
770looks like gdb.texinfo is a better place for this information.
771
772http://sourceware.cygnus.com/ml/gdb-patches/2000-04/msg00566.html
773
774--
775
4afc966c 776Document overlay machinery.
bc9e5bbf 777
7ae38352
AC
778--
779
4afc966c 780``(gdb) catch signal SIGNAL''
7ae38352 781
e26cc349 782Overlaps with ``handle SIGNAL'' but the implied behavior is different.
4afc966c
AC
783You can attach commands to a catch but not a handle. A handle has a
784limited number of hardwired actions.
7ae38352
AC
785
786--
787
1c5b31ef
AC
788Fix TUI
789
790 o readline/*.h bitrot
791
792 The TUI isn't up-to-date with
793 respect to the readline currently
794 bundled with GDB. Importing a
795 new readline is on the 5.1 wish
796 list so this can only get worse.
797
798 Grep for things like term_cursor_move.
799
800 (To be honest, I don't see anyone
801 importing a new readline before 5.1 is
802 out)
803
804 o tui.c:va_catch_errors() bitrot
805
806 This nasty piece of work used knowledge
807 of the internals of GDBs error functions :-(
808 Ever since those internals were cleaned
809 up this code has been broken. :-(
810
811 o tuiWin.c:c_makeVisibleWithNewHeight() broken
812 tuiLayout.c:_extractDisplayStartAddr() broken
813
814 Both these function call find_line_pc()
815 incorrectly (wrong args, wrong return value).
816
817 I suspect this bug has always been there!
818 It had been hidden because those files
819 didn't include the necessary header files
820 from gdb proper :-(
821
822 o tuiRegs() host dependant
823
824 Not suprisingly, this isn't a very portable
825 section of code. However, I'm sure people
826 could live with no regs in the short to
827 medium term.
828
829 o defs.h: #include "tui.h" et.al.
830
831 I'm not sure where this came from.
832 It was a really bad idea.
833
834 To get things to compile I did a nasty
835 hack (Just declare what was needed and
836 replace any expressions like xx->y.z()
837 in GDB proper with function calls). I
838 could commit it slightly cleaned up if
839 you like.
840
841 Medium Term. the #ifdef TUI and TuiDo()
842 should be changed to hooks (like GDBTK).
843 The gdb-events.[hc] is there for that
844 purpose (1)
845
846 o tui.c:_tuiReset() host dependant
847
848 tui.c contains a lump of termio[s]
849 I suspect an equivalent block of
850 code can be lifted from readline.
851 An equivalent readline function may
852 even be available.
853
854 o curses.h vs ncurses.h.
855
856 Simple portability problem.
857
858 o subsetCompare()
859
860 This function is a mystery - where is it?
861
862 o tui-file.[hc] cleanup
863
864 This can be significantly simplified.
865
866 o The code should be pacified. (-Werror -W...)
867
868 There are plenty of #includes,
869 duplicate #includes, missing function decls
870 and the like.
871
872 Some of the problems I found were through
873 fixing a few of the warnings.
874
875 o The code should be GNUtified.
876
877 It would be very nice to have this code
878 look like the rest of GDB. That way people
879 would be more accepting of it as a true
880 gdb component.
881
882 Until it is GNUtified it is going to stick
883 out like a sore thumb to the programmer.
884
885 o The code should be clearly copyrighted
886
887 (FSF, with due credit to HP)
7ae38352 888
bc9e5bbf
AC
889--
890
4afc966c
AC
891Add support for ``gdb --- PROGRAM ARGS ...''.
892Add support for ``gdb -cmd=...''
9debab2f 893
4afc966c
AC
894Along with many variations. Check:
895
896????? for a full discussion.
897
898for a discussion.
9debab2f
AC
899
900--
901
4afc966c 902Implement ``(gdb) !ls''.
e55e8cee 903
4afc966c
AC
904Which is very different from ``(gdb) ! ls''. Implementing the latter
905is trivial.
906
907http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00034.html
e55e8cee
AC
908
909--
910
b4a20239
AC
911Change the (char *list[]) to (const char (*)[]) so that dynamic lists can
912be passed.
913
914--
915
916When tab expanding something like ``set arch<tab>'' ignore the
917deprecated ``set archdebug'' and expand to ``set architecture''.
918
919--
920
4afc966c
AC
921Replace the code that uses the host FPU with an emulator of the target
922FPU.
7ae38352 923
4930751a
C
924--
925
926The "ocd reset" command needs to flush the dcache, which requires breaking
927the abstraction layer between the target independent and target code. One
928way to address this is provide a generic "reset" command and target vector.
929
930http://sources.redhat.com/ml/gdb-patches/2000-10/msg00011.html
931
4afc966c
AC
932--
933
934 Thread Support
935 ==============
7ae38352
AC
936
937--
938
4afc966c
AC
939Generic: lin-thread cannot handle thread exit (Mark Kettenis, Michael
940Snyder) http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00525.html
7ae38352 941
4afc966c
AC
942The thread_db assisted debugging code doesn't handle exiting threads
943properly, at least in combination with glibc 2.1.3 (the framework is
944there, just not the actual code). There are at least two problems
945that prevent this from working.
946
947As an additional reference point, the pre thread_db code did not work
948either.
7ae38352
AC
949
950--
951
4afc966c
AC
952GNU/Linux/x86 and random thread signals (and Solaris/SPARC but not
953Solaris/x86).
954http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00336.html
7ae38352 955
4afc966c
AC
956Christopher Blizzard writes:
957
958So, I've done some more digging into this and it looks like Jim
959Kingdon has reported this problem in the past:
960
961http://sourceware.cygnus.com/ml/bug-gdb/1999-10/msg00058.html
962
963I can reproduce this problem both with and without Tom's patch. Has
964anyone seen this before? Maybe have a solution for it hanging around?
965:)
966
967There's a test case for this documented at:
968
969when debugging threaded applications you get extra SIGTRAPs
970http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=9565
971
972[There should be a GDB testcase - cagney]
7ae38352
AC
973
974--
975
4afc966c
AC
976GDB5 TOT on unixware 7
977http://sourceware.cygnus.com/ml/gdb/2000-04/msg00119.html
7ae38352 978
4afc966c
AC
979Robert Lipe writes:
980> I just spun the top of tree of the GDB5 branch on UnixWare 7. As a
981> practical matter, the current thread support is somewhat more annoying
982> than when GDB was thread-unaware.
7ae38352 983
7ae38352
AC
984--
985
4afc966c
AC
986 Language Support
987 ================
7ae38352 988
4afc966c 989New languages come onto the scene all the time.
7ae38352
AC
990
991--
992
4afc966c
AC
993Re: Various C++ things
994
26099b4a
AC
995value_headof/value_from_vtable_info are worthless, and should be
996removed. The one place in printcmd.c that uses it should use the RTTI
997functions.
4afc966c 998
26099b4a
AC
999RTTI for g++ should be using the typeinfo functions rather than the
1000vtables. The typeinfo functions are always at offset 4 from the
1001beginning of the vtable, and are always right. The vtables will have
1002weird names like E::VB sometimes. The typeinfo function will always
1003be "E type_info function", or somesuch.
4afc966c 1004
26099b4a
AC
1005value_virtual_fn_field needs to be fixed so there are no failures for
1006virtual functions for C++ using g++.
4afc966c 1007
26099b4a
AC
1008Testsuite cases are the major priority right now for C++ support,
1009since i have to make a lot of changes that could potentially break
1010each other.
7ae38352
AC
1011
1012--
1013
4afc966c 1014Add support for Modula3
7ae38352 1015
4afc966c 1016Get DEC/Compaq to contribute their Modula-3 support.
7ae38352
AC
1017
1018--
1019
4afc966c
AC
1020 Remote Protocol Support
1021 =======================
7ae38352
AC
1022
1023--
1024
a2061976
AC
1025Revised UDP support (was: Re: [Fwd: [patch] UDP transport support])
1026http://sourceware.cygnus.com/ml/gdb-patches/2000-04/msg00000.html
1027
1028(Broken) support for GDB's remote protocol across UDP is to be
1029included in the follow-on release.
1030
1031It should be noted that UDP can only work when the [Gg] packet fits in
1032a single UDP packet.
1033
1034There is also much debate over the merit of this.
1035
1036--
1037
1038Migrate qfThreadInfo packet -> qThreadInfo. (Andrew Cagney)
1039
1040Add support for packet enable/disable commands with these thread
1041packets. General cleanup.
1042
1043[PATCH] Document the ThreadInfo remote protocol queries
1044http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00832.html
1045
1046[PATCH] "info threads" queries for remote.c
1047http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00831.html
1048
1049--
1050
7ae38352
AC
1051Remote protocol doco feedback.
1052
1053Too much feedback to mention needs to be merged in (901660). Search
1054for the word ``remote''.
1055
4afc966c
AC
1056
1057http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00023.html
1058http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00056.html
1059http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00382.html
1060
7ae38352
AC
1061--
1062
4afc966c 1063GDB doesn't recover gracefully from remote protocol errors.
7ae38352 1064
4afc966c
AC
1065GDB wasn't checking for NAKs from the remote target. Instead a NAK is
1066ignored and a timeout is required before GDB retries. A pre-cursor to
1067fixing this this is making GDB's remote protocol packet more robust.
1068
1069While downloading to a remote protocol target, gdb ignores packet
d471ea57 1070errors in so far as it will continue to download with chunk N+1 even
4afc966c
AC
1071if chunk N was not correctly sent. This causes gdb.base/remote.exp to
1072take a painfully long time to run. As a PS that test needs to be
1073fixed so that it builds on 16 bit machines.
7ae38352
AC
1074
1075--
1076
a2061976
AC
1077Fix the ``!'' packet.
1078
1079JT reported that the existing targets do, in fact return ``OK'' so it
1080is possible to merge remote and extended-remote targets.
1081
1082--
1083
1084Drop ``<address>'' from the [SsCc] packets.
1085
1086I don't think that GDB generates them so having it in the protocol is
1087silly.
1088
1089--
1090
1091Fix doco on the ``q'' packet.
1092
1093It has evolved into a generic RPC. The notes should reflect this and,
1094perhaps, the ``Q'' packet can be deprecated.
1095
1096The doco should mention that ``OK'' is a valid packet response.
1097
1098The doco should explain why ``OK'' needs to be a valid packet
1099response.
1100
1101--
1102
4afc966c 1103Add the cycle step command.
7ae38352 1104
4afc966c 1105http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00237.html
7ae38352 1106
26099b4a
AC
1107--
1108
1109Resolve how to scale things to support very large packets.
1110
1111--
1112
1113Resolve how to handle a target that changes things like its endianess
1114on the fly - should it be returned in the ``T'' packet?
1115
1116Underlying problem is that the register file is target endian. If the
1117target endianess changes gdb doesn't know.
1118
7ae38352
AC
1119--
1120
4afc966c
AC
1121 Symbol Support
1122 ==============
7ae38352 1123
4afc966c
AC
1124If / when GDB starts to support the debugging of multi-processor
1125(rather than multi-thread) applications the symtab code will need to
e26cc349 1126be updated a little so that several independent symbol tables are
4afc966c
AC
1127active at a given time.
1128
1129The other interesting change is a clarification of the exact meaning
1130of CORE_ADDR and that has had consequences for a few targets (that
1131were abusing that data type).
7ae38352 1132
d8038014
AC
1133--
1134
4afc966c 1135Investiagate ways of reducing memory.
d8038014
AC
1136
1137--
1138
4afc966c 1139Investigate ways of improving load time.
d8038014 1140
4afc966c
AC
1141--
1142
1143Get the d10v to use POINTER_TO_ADDRESS and ADDRESS_TO_POINTER.
1144
1145Consequence of recent symtab clarification. No marks for figuring out
1146who maintains the d10v.
d8038014 1147
0aaf65d7
AC
1148--
1149
4afc966c
AC
1150Get the MIPS to correctly sign extend all address <-> pointer
1151conversions.
0aaf65d7 1152
4afc966c
AC
1153Consequence of recent symtab clarification. No marks for figuring out
1154who maintains the MIPS.
0aaf65d7 1155
5d35f0ac
AC
1156--
1157
1158GDB truncates 64 bit enums.
1159
1160http://sourceware.cygnus.com/ml/gdb-patches/2000-06/msg00290.html
1161
26099b4a
AC
1162--
1163
1164 Testsuite Support
1165 =================
1166
1167There are never to many testcases.
1168
1169--
1170
1171Better thread testsuite.
1172
1173--
1174
1175Better C++ testsuite.
1176
1177--
1178
1179Look at adding a GDB specific testsuite directory so that white box
1180tests of key internals can be added (eg ui_file).
1181
1182--
1183
1184Separate out tests that involve the floating point (FP).
1185
1186(Something for people brining up new targets). FP and non-fp tests
1187are combined. I think there should be set of basic tests that
1188exercise pure integer support and then a more expanded set that
1189exercise FP and FP/integer interactions.
1190
1191As an example, the MIPS, for n32 as problems with passing FP's and
1192structs. Since most inferior call tests include FP it is difficult to
1193determine of the integer tests are ok.
1194
7ae38352
AC
1195--
1196
4afc966c
AC
1197 Architectural Changes: General
1198 ==============================
7ae38352
AC
1199
1200These are harder than simple cleanups / fixes and, consequently
1201involve more work. Typically an Architectural Change will be broken
1202down into a more digestible set of cleanups and fixes.
1203
1204--
1205
4afc966c
AC
1206Cleanup software single step.
1207
1208At present many targets implement software single step by directly
1209blatting memory (see rs6000-tdep.c). Those targets should register
1210the applicable breakpoints using the breakpoint framework. Perhaphs a
1211new internal breakpoint class ``step'' is needed.
1212
1213--
1214
7ae38352
AC
1215Replace READ_FP() with FRAME_HANDLE().
1216
1217READ_FP() is a hangover from the days of the vax when the ABI really
1218did have a frame pointer register. Modern architectures typically
1219construct a virtual frame-handle from the stack pointer and various
1220other bits of string.
1221
e26cc349 1222Unfortunately GDB still treats this synthetic FP register as though it
7ae38352
AC
1223is real. That in turn really confuses users (arm and ``print $fp'' VS
1224``info registers fp''). The synthetic FP should be separated out of
1225the true register set presented to the user.
1226
1227--
1228
2a00c9ce
AC
1229Register Cache Cleanup (below from Andrew Cagney)
1230
1231I would depict the current register architecture as something like:
1232
1233 High GDB --> Low GDB
1234 | |
1235 \|/ \|/
1236 --- REG NR -----
1237 |
1238 register + REGISTER_BYTE(reg_nr)
1239 |
1240 \|/
1241 -------------------------
1242 | extern register[] |
1243 -------------------------
1244
1245where neither the high (valops.c et.al.) or low gdb (*-tdep.c) are
1246really clear on what mechanisms they should be using to manipulate that
1247buffer. Further, much code assumes, dangerously, that registers are
1248contigious. Having got mips-tdep.c to support multiple ABIs, believe
1249me, that is a bad assumption. Finally, that register cache layout is
1250determined by the current remote/local target and _not_ the less
1251specific target ISA. In fact, in many cases it is determined by the
1252somewhat arbitrary layout of the [gG] packets!
1253
1254
1255How I would like the register file to work is more like:
1256
1257
1258 High GDB
1259 |
1260 \|/
1261 pseudo reg-nr
1262 |
1263 map pseudo <->
1264 random cache
1265 bytes
1266 |
1267 \|/
1268 ------------
1269 | register |
1270 | cache |
1271 ------------
1272 /|\
1273 |
1274 map random cache
1275 bytes to target
e26cc349 1276 dependent i-face
2a00c9ce
AC
1277 /|\
1278 |
e26cc349 1279 target dependent
2a00c9ce
AC
1280 such as [gG] packet
1281 or ptrace buffer
1282
1283The main objectives being:
1284
1285 o a clear separation between the low
1286 level target and the high level GDB
1287
1288 o a mechanism that solves the general
1289 problem of register aliases, overlaps
1290 etc instead of treating them as optional
1291 extras that can be wedged in as an after
1292 thought (that is a reasonable description
1293 of the current code).
1294
1295 Identify then solve the hard case and the
1296 rest just falls out. GDB solved the easy
1297 case and then tried to ignore the real
1298 world :-)
1299
1300 o a removal of the assumption that the
1301 mapping between the register cache
1302 and virtual registers is largely static.
1303 If you flip the USR/SSR stack register
1304 select bit in the status-register then
1305 the corresponding stack registers should
1306 reflect the change.
1307
1308 o a mechanism that clearly separates the
1309 gdb internal register cache from any
e26cc349 1310 target (not architecture) dependent
2a00c9ce
AC
1311 specifics such as [gG] packets.
1312
1313Of course, like anything, it sounds good in theory. In reality, it
1314would have to contend with many<->many relationships at both the
1315virt<->cache and cache<->target level. For instance:
1316
1317 virt<->cache
1318 Modifying an mmx register may involve
1319 scattering values across both FP and
1320 mmpx specific parts of a buffer
1321
1322 cache<->target
1323 When writing back a SP it may need to
1324 both be written to both SP and USP.
1325
1326
1327Hmm,
1328
1329Rather than let this like the last time it was discussed, just slip, I'm
1330first going to add this e-mail (+ references) to TODO. I'd then like to
1331sketch out a broad strategy I think could get us there.
1332
1333
1334First thing I'd suggest is separating out the ``extern registers[]''
1335code so that we can at least identify what is using it. At present
1336things are scattered across many files. That way we can at least
1337pretend that there is a cache instead of a global array :-)
1338
1339I'd then suggest someone putting up a proposal for the pseudo-reg /
1340high-level side interface so that code can be adopted to it. For old
1341code, initially a blanket rename of write_register_bytes() to
1342deprecated_write_register_bytes() would help.
1343
1344Following that would, finaly be the corresponding changes to the target.
bc9e5bbf
AC
1345
1346--
1347
67edb2c6
AC
1348Check that GDB can handle all BFD architectures (Andrew Cagney)
1349
1350There should be a test that checks that BFD/GDB are in sync with
1351regard to architecture changes. Something like a test that first
1352queries GDB for all supported architectures and then feeds each back
1353to GDB.. Anyone interested in learning how to write tests? :-)
1354
1355--
1356
4afc966c
AC
1357 Architectural Change: Multi-arch et al.
1358 =======================================
2a00c9ce 1359
4afc966c
AC
1360The long term objective is to remove all assumptions that there is a
1361single target with a single address space with a single instruction
1362set architecture and single application binary interface.
2a00c9ce 1363
4afc966c
AC
1364This is an ongoing effort. The first milestone is to enable
1365``multi-arch'' where by all architectural decisions are made at
1366runtime.
7ae38352 1367
4afc966c
AC
1368It should be noted that ``gdbarch'' is really ``gdbabi'' and
1369``gdbisa''. Once things are multi-arched breaking that down correctly
1370will become much easier.
7ae38352
AC
1371
1372--
1373
4afc966c 1374GDBARCH cleanup (Andrew Cagney)
7ae38352 1375
4afc966c
AC
1376The non-generated parts of gdbarch.{sh,h,c} should be separated out
1377into arch-utils.[hc].
1378
1379Document that gdbarch_init_ftype could easily fail because it didn't
1380identify an architecture.
ed952ac5
AC
1381
1382--
1383
4afc966c 1384Fix BELIEVE_PPC_PROMOTION. Change it to BELIEVE_PPC_PROMOTION_P?
ed952ac5 1385
4afc966c
AC
1386At present there is still #ifdef BELIEVE_PPC_PROMOTION code in the
1387symtab file.
ed952ac5 1388
4afc966c
AC
1389--
1390
8e6a3c35
AC
1391Fix target_signal_from_host() etc.
1392
1393The name is wrong for starters. ``target_signal'' should probably be
1394``gdb_signal''. ``from_host'' should be ``from_target_signal''.
e26cc349 1395After that it needs to be multi-arched and made independent of any
8e6a3c35
AC
1396host signal numbering.
1397
1398--
1399
4afc966c
AC
1400Update ALPHA so that it uses ``struct frame_extra_info'' instead of
1401EXTRA_FRAME_INFO.
1402
1403This is a barrier to replacing mips_extra_func_info with something
1404that works with multi-arch.
7ae38352
AC
1405
1406--
1407
4afc966c
AC
1408Multi-arch mips_extra_func_info.
1409
1410This first needs the alpha to be updated so that it uses ``struct
1411frame_extra_info''.
7ae38352
AC
1412
1413--
1414
4afc966c 1415Rationalize TARGET_SINGLE_FORMAT and TARGET_SINGLE_BIT et al.
7ae38352 1416
4afc966c 1417Surely one of them is redundant.
7ae38352
AC
1418
1419--
1420
4afc966c 1421Convert ALL architectures to MULTI-ARCH.
7ae38352
AC
1422
1423--
1424
1425Select the initial multi-arch ISA / ABI based on --target or similar.
1426
1427At present the default is based on what ever is first in the BFD
1428archures table. It should be determined based on the ``--target=...''
1429name.
1430
1431--
1432
bf64bfd6
AC
1433Make MIPS pure multi-arch.
1434
1435It is only at the multi-arch enabled stage.
1436
1437--
1438
7ae38352
AC
1439Truly multi-arch.
1440
1441Enable the code to recognize --enable-targets=.... like BINUTILS does.
1442
4afc966c
AC
1443Can the tm.h and nm.h files be eliminated by multi-arch.
1444
7ae38352
AC
1445--
1446
4afc966c
AC
1447 Architectural Change: MI, LIBGDB and scripting languages
1448 ========================================================
7ae38352 1449
4afc966c
AC
1450See also architectural changes related to the event loop. LIBGDB
1451can't be finished until there is a generic event loop being used by
1452all targets.
1453
1454The long term objective is it to be possible to integrate GDB into
1455scripting languages.
7ae38352
AC
1456
1457--
1458
4afc966c 1459Implement generic ``(gdb) commmand > file''
7ae38352 1460
4afc966c
AC
1461Once everything is going through ui_file it should be come fairly
1462easy.
1463
1464http://sourceware.cygnus.com/ml/gdb/2000-04/msg00104.html
1465
1466--
1467
1468Replace gdb_stdtarg with gdb_targout (and possibly gdb_targerr).
1469
1470gdb_stdtarg is easily confused with gdb_stdarg.
1471
1472--
1473
1474Extra ui_file methods - dump.
1475
26099b4a 1476Very useful for whitebox testing.
4afc966c
AC
1477
1478--
1479
1480Eliminate error_begin().
1481
1482With ui_file, there is no need for the statefull error_begin ()
1483function.
1484
1485--
1486
1487Send normal output to gdb_stdout.
1488Send error messages to gdb_stderror.
1489Send debug and log output log gdb_stdlog.
1490
1491GDB still contains many cases where (f)printf or printf_filtered () is
1492used when it should be sending the messages to gdb_stderror or
1493gdb_stdlog. The thought of #defining printf to something has crossed
1494peoples minds ;-)
7ae38352
AC
1495
1496--
1497
1498Re-do GDB's output pager.
1499
1500GDB's output pager still relies on people correctly using *_filtered
1501for gdb_stdout and *_unfiltered for gdb_stdlog / gdb_stderr.
1502Hopefully, with all normal output going to gdb_stdout, the pager can
1503just look at the ui_file that the output is on and then use that to
1504decide what to do about paging. Sounds good in theory.
1505
1506--
1507
4afc966c
AC
1508Check/cleanup MI documentation.
1509
1510The list of commands specified in the documentation needs to be
1511checked against the mi-cmds.c table in a mechanical way (so that they
1512two can be kept up-to-date).
1513
1514--
1515
1516Convert MI into libgdb
1517
1518MI provides a text interface into what should be many of the libgdb
1519functions. The implementation of those functions should be separated
1520into the MI interface and the functions proper. Those functions being
1521moved to gdb/lib say.
1522
1523--
1524
1525Create libgdb.h
1526
1527The first part can already be found in defs.h.
1528
1529--
1530
1531MI's input does not use buffering.
1532
1533At present the MI interface reads raw characters of from an unbuffered
1534FD. This is to avoid several nasty buffer/race conditions. That code
1535should be changed so that it registers its self with the event loop
1536(on the input FD) and then push commands up to MI as they arrive.
1537
1538The serial code already does this.
1539
1540--
1541
e26cc349 1542Make MI interface accessible from existing CLI.
4afc966c
AC
1543
1544--
1545
1546Add a breakpoint-edit command to MI.
1547
1548It would be similar to MI's breakpoint create but would apply to an
1549existing breakpoint. It saves the need to delete/create breakpoints
1550when ever they are changed.
1551
1552--
1553
1554Add directory path to MI breakpoint.
1555
1556That way the GUI's task of finding the file within which the
1557breakpoint was set is simplified.
1558
1559--
1560
1561Add a mechanism to reject certain expression classes to MI
7ae38352
AC
1562
1563There are situtations where you don't want GDB's expression
1564parser/evaluator to perform inferior function calls or variable
4afc966c
AC
1565assignments. A way of restricting the expression parser so that such
1566operations are not accepted would be very helpful.
7ae38352
AC
1567
1568--
1569
1570Remove sideffects from libgdb breakpoint create function.
1571
1572The user can use the CLI to create a breakpoint with partial
1573information - no file (gdb would use the file from the last
1574breakpoint).
1575
1576The libgdb interface currently affects that environment which can lead
1577to confusion when a user is setting breakpoints via both the MI and
1578the CLI.
1579
1580This is also a good example of how getting the CLI ``right'' will be
1581hard.
1582
1583--
1584
4afc966c 1585Move gdb_lasterr to ui_out?
7ae38352 1586
4afc966c
AC
1587The way GDB throws errors and records them needs a re-think. ui_out
1588handles the correct output well. It doesn't resolve what to do with
1589output / error-messages when things go wrong.
7ae38352 1590
97c3646f
AC
1591--
1592
1593do_setshow_command contains a 1024 byte buffer.
1594
1595The function assumes that there will never be any more than 1024 bytes
1596of enum. It should use mem_file.
1597
1598--
1599
1600Should struct cmd_list_element . completer take the command as an
1601argument?
1602
1603--
1604
1605Should the bulk of top.c:line_completion_function() be moved to
1606command.[hc]? complete_on_cmdlist() and complete_on_enums() could
1607then be made private.
1608
1609--
1610
1611top.c (execute_command): Should a command being valid when the target
1612is running be made an attribute (predicate) to the command rather than
1613an explicit set of tests.
1614
1615--
1616
1617top.c (execute_command): Should the bulk of this function be moved
1618into command.[hc] so that top.c doesn't grub around in the command
1619internals?
1620
4afc966c
AC
1621--
1622
1623 Architectural Change: Async
1624 ===========================
1625
1626While GDB uses an event loop when prompting the user for input. That
1627event loop is not exploited by targets when they allow the target
1628program to continue. Typically targets still block in (target_wait())
1629until the program again halts.
1630
1631The closest a target comes to supporting full asynchronous mode are
1632the remote targets ``async'' and ``extended-async''.
7ae38352
AC
1633
1634--
1635
4afc966c 1636Asynchronous expression evaluator
7ae38352 1637
4afc966c 1638Inferior function calls hang GDB.
7ae38352
AC
1639
1640--
1641
1642Fix implementation of ``target xxx''.
1643
1644At present when the user specifies ``target xxxx'', the CLI maps that
1645directly onto a target open method. It is then assumed that the
1646target open method should do all sorts of complicated things as this
1647is the only chance it has. Check how the various remote targets
1648duplicate the target operations. Check also how the various targets
1649behave differently for purely arbitrary reasons.
1650
1651What should happen is that ``target xxxx'' should call a generic
1652``target'' function and that should then co-ordinate the opening of
1653``xxxx''. This becomes especially important when you're trying to
1654open an asynchronous target that may need to perform background tasks
1655as part of the ``attach'' phase.
1656
e26cc349 1657Unfortunately, due to limitations in the old/creaking command.h
7ae38352
AC
1658interface, that isn't possible. The function being called isn't told
1659of the ``xxx'' or any other context information.
1660
1661Consequently a precursor to fixing ``target xxxx'' is to clean up the
1662CLI code so that it passes to the callback function (attatched to a
1663command) useful information such as the actual command and a context
1664for that command. Other changes such as making ``struct command''
1665opaque may also help.
1666
53904c9e
AC
1667See also:
1668http://sourceware.cygnus.com/ml/gdb-patches/2000-06/msg00062.html
1669
7ae38352
AC
1670--
1671
4afc966c
AC
1672Make "target xxx" command interruptible.
1673
1674As things become async this becomes possible. A target would start
1675the connect and then return control to the event loop. A cntrl-c
1676would notify the target that the operation is to be abandoned and the
1677target code could respond.
7ae38352
AC
1678
1679--
1680
4afc966c
AC
1681Add a "suspend" subcommand of the "continue" command to suspend gdb
1682while continuing execution of the subprocess. Useful when you are
1683debugging servers and you want to dodge out and initiate a connection
1684to a server running under gdb.
1685
1686[hey async!!]
7ae38352 1687
2a00c9ce
AC
1688--
1689
26099b4a
AC
1690 TODO FAQ
1691 ========
1692
1693Frequently requested but not approved requests.
1694
1695--
1696
1697Eliminate unused argument warnings using ATTRIBUTE_UNUSED.
1698
1699The benefits on this one are thought to be marginal - GDBs design
1700means that unused parameters are very common. GCC 3.0 will also
1701include the option -Wno-unused-parameter which means that ``-Wall
1702-Wno-unused-parameters -Werror'' can be specified.
1703
1704--
1705
1706
1707
2a00c9ce
AC
1708 Legacy Wish List
1709 ================
1710
1711This list is not up to date, and opinions vary about the importance or
1712even desirability of some of the items. If you do fix something, it
1713always pays to check the below.
1714
1715--
c906108c 1716
b83266a0
SS
1717@c This does not work (yet if ever). FIXME.
1718@c @item --parse=@var{lang} @dots{}
1719@c Configure the @value{GDBN} expression parser to parse the listed languages.
1720@c @samp{all} configures @value{GDBN} for all supported languages. To get a
1721@c list of all supported languages, omit the argument. Without this
1722@c option, @value{GDBN} is configured to parse all supported languages.
1723
7ae38352 1724--
c906108c
SS
1725
1726START_INFERIOR_TRAPS_EXPECTED need never be defined to 2, since that
1727is its default value. Clean this up.
1728
7ae38352
AC
1729--
1730
c906108c
SS
1731It should be possible to use symbols from shared libraries before we know
1732exactly where the libraries will be loaded. E.g. "b perror" before running
1733the program. This could maybe be done as an extension of the "breakpoint
1734re-evaluation" after new symbols are loaded.
1735
7ae38352
AC
1736--
1737
c906108c
SS
1738Make single_step() insert and remove breakpoints in one operation.
1739
26099b4a
AC
1740[If this is talking about having single_step() insert the breakpoints,
1741run the target then pull the breakpoints then it is wrong. The
1742function has to return as control has to eventually be passed back to
1743the main event loop.]
1744
7ae38352
AC
1745--
1746
c906108c
SS
1747Speed up single stepping by avoiding extraneous ptrace calls.
1748
7ae38352
AC
1749--
1750
c906108c
SS
1751Speed up single stepping by not inserting and removing breakpoints
1752each time the inferior starts and stops.
1753
1754Breakpoints should not be inserted and deleted all the time. Only the
1755one(s) there should be removed when we have to step over one. Support
1756breakpoints that don't have to be removed to step over them.
1757
7ae38352 1758[this has resulted in numerous debates. The issue isn't clear cut]
c906108c 1759
7ae38352 1760--
c906108c
SS
1761
1762Provide "voodoo" debugging of core files. This creates a zombie
1763process as a child of the debugger, and loads it up with the data,
1764stack, and regs of the core file. This allows you to call functions
1765in the executable, to manipulate the data in the core file.
1766
7ae38352 1767[you wish]
c906108c 1768
7ae38352 1769--
c906108c 1770
7ae38352 1771GDB reopens the source file on every line, as you "next" through it.
c906108c 1772
7ae38352 1773[still true? I've a memory of this being fixed]
c906108c 1774
7ae38352 1775--
c906108c
SS
1776
1777Perhaps "i source" should take an argument like that of "list".
1778
7ae38352 1779--
c906108c
SS
1780
1781Remove "at 0xnnnn" from the "b foo" response, if `print address off' and if
1782it matches the source line indicated.
1783
7ae38352 1784--
c906108c 1785
7ae38352 1786The prompt at end of screen should accept space as well as CR.
c906108c 1787
7ae38352 1788--
c906108c
SS
1789
1790Backtrace should point out what the currently selected frame is, in
1791its display, perhaps showing "@3 foo (bar, ...)" or ">3 foo (bar,
1792...)" rather than "#3 foo (bar, ...)".
1793
7ae38352
AC
1794--
1795
c906108c
SS
1796"i program" should work for core files, and display more info, like what
1797actually caused it to die.
1798
7ae38352
AC
1799--
1800
c906108c
SS
1801"x/10i" should shorten the long name, if any, on subsequent lines.
1802
7ae38352 1803--
c906108c
SS
1804
1805"next" over a function that longjumps, never stops until next time you happen
1806to get to that spot by accident. E.g. "n" over execute_command which has
1807an error.
1808
7ae38352
AC
1809--
1810
c906108c
SS
1811"set zeroprint off", don't bother printing members of structs which
1812are entirely zero. Useful for those big structs with few useful
1813members.
1814
7ae38352
AC
1815--
1816
c906108c
SS
1817GDB does four ioctl's for every command, probably switching terminal modes
1818to/from inferior or for readline or something.
1819
7ae38352
AC
1820--
1821
c906108c
SS
1822terminal_ours versus terminal_inferior: cache state. Switch should be a noop
1823if the state is the same, too.
1824
7ae38352 1825--
c906108c
SS
1826
1827"i frame" shows wrong "arglist at" location, doesn't show where the args
1828should be found, only their actual values.
1829
7ae38352
AC
1830--
1831
c906108c
SS
1832There should be a way for "set" commands to validate the new setting
1833before it takes effect.
1834
7ae38352 1835--
c906108c
SS
1836
1837"ena d" is ambiguous, why? "ena delete" seems to think it is a command!
1838
7ae38352 1839--
c906108c
SS
1840
1841i line VAR produces "Line number not known for symbol ``var''.". I
1842thought we were stashing that info now!
1843
7ae38352
AC
1844--
1845
c906108c
SS
1846We should be able to write to random files at hex offsets like adb.
1847
7ae38352
AC
1848--
1849
7ae38352
AC
1850[elena - delete this]
1851
c906108c
SS
1852Handle add_file with separate text, data, and bss addresses. Maybe
1853handle separate addresses for each segment in the object file?
1854
7ae38352
AC
1855--
1856
1857[Jimb/Elena delete this one]
1858
c906108c
SS
1859Handle free_named_symtab to cope with multiply-loaded object files
1860in a dynamic linking environment. Should remember the last copy loaded,
1861but not get too snowed if it finds references to the older copy.
1862
7ae38352
AC
1863--
1864
1865[elena delete this also]
c906108c
SS
1866
1867Remove all references to:
1868 text_offset
1869 data_offset
1870 text_data_start
1871 text_end
1872 exec_data_offset
1873 ...
1874now that we have BFD. All remaining are in machine dependent files.
1875
7ae38352 1876--
c906108c
SS
1877
1878Re-organize help categories into things that tend to fit on a screen
1879and hang together.
1880
7ae38352 1881--
c906108c
SS
1882
1883Add in commands like ADB's for searching for patterns, etc. We should
1884be able to examine and patch raw unsymboled binaries as well in gdb as
1885we can in adb. (E.g. increase the timeout in /bin/login without source).
1886
7ae38352
AC
1887[actually, add ADB interface :-]
1888
1889--
c906108c
SS
1890
1891When doing "step" or "next", if a few lines of source are skipped between
1892the previous line and the current one, print those lines, not just the
1893last line of a multiline statement.
1894
7ae38352 1895--
c906108c
SS
1896
1897Handling of "&" address-of operator needs some serious overhaul
1898for ANSI C and consistency on arrays and functions.
1899 For "float point[15];":
1900ptype &point[4] ==> Attempt to take address of non-lvalue.
1901 For "char *malloc();":
1902ptype malloc ==> "char *()"; should be same as
1903ptype &malloc ==> "char *(*)()"
1904call printf ("%x\n", malloc) ==> weird value, should be same as
1905call printf ("%x\n", &malloc) ==> correct value
1906
7ae38352
AC
1907--
1908
c906108c
SS
1909Fix dbxread.c symbol reading in the presence of interrupts. It
1910currently leaves a cleanup to blow away the entire symbol table when a
1911QUIT occurs. (What's wrong with that? -kingdon, 28 Oct 1993).
1912
7ae38352
AC
1913[I suspect that the grype was that, on a slow system, you might want
1914to cntrl-c and get just half the symbols and then load the rest later
1915- scary to be honest]
1916
1917--
1918
c906108c
SS
1919Mipsread.c reads include files depth-first, because the dependencies
1920in the psymtabs are way too inclusive (it seems to me). Figure out what
1921really depends on what, to avoid recursing 20 or 30 times while reading
1922real symtabs.
1923
7ae38352
AC
1924--
1925
c906108c
SS
1926value_add() should be subtracting the lower bound of arrays, if known,
1927and possibly checking against the upper bound for error reporting.
1928
7ae38352 1929--
c906108c
SS
1930
1931When listing source lines, check for a preceding \n, to verify that
1932the file hasn't changed out from under us.
1933
7ae38352
AC
1934[fixed by some other means I think. That hack wouldn't actually work
1935reliably - the file might move such that another \n appears. ]
c906108c 1936
7ae38352 1937--
c906108c
SS
1938
1939Get all the remote systems (where the protocol allows it) to be able to
1940stop the remote system when the GDB user types ^C (like remote.c
1941does). For ebmon, use ^Ak.
1942
7ae38352
AC
1943--
1944
c906108c
SS
1945Possible feature: A version of the "disassemble" command which shows
1946both source and assembly code ("set symbol-filename on" is a partial
1947solution).
1948
7ae38352
AC
1949[has this been done? It was certainly done for MI and GDBtk]
1950
1951--
1952
c906108c
SS
1953investigate "x/s 0" (right now stops early) (I think maybe GDB is
1954using a 0 address for bad purposes internally).
1955
7ae38352
AC
1956--
1957
c906108c
SS
1958Make "info path" and path_command work again (but independent of the
1959environment either of gdb or that we'll pass to the inferior).
1960
7ae38352
AC
1961--
1962
c906108c
SS
1963Make GDB understand the GCC feature for putting octal constants in
1964enums. Make it so overflow on an enum constant does not error_type
1965the whole type. Allow arbitrarily large enums with type attributes.
1966Put all this stuff in the testsuite.
1967
7ae38352
AC
1968--
1969
c906108c
SS
1970Make TYPE_CODE_ERROR with a non-zero TYPE_LENGTH more useful (print
1971the value in hex; process type attributes). Add this to the
1972testsuite. This way future compilers can add new types and old
1973versions of GDB can do something halfway reasonable.
1974
7ae38352 1975--
c906108c
SS
1976
1977Fix mdebugread.c:parse_type to do fundamental types right (see
1978rs6000_builtin_type in stabsread.c for what "right" is--the point is
1979that the debug format fixes the sizes of these things and it shouldn't
1980depend on stuff like TARGET_PTR_BIT and so on. For mdebug, there seem
1981to be separate bt* codes for 64 bit and 32 bit things, and GDB should
1982be aware of that). Also use a switch statement for clarity and speed.
1983
7ae38352
AC
1984--
1985
c906108c
SS
1986Investigate adding symbols in target_load--some targets do, some
1987don't.
1988
7ae38352
AC
1989--
1990
c906108c
SS
1991Put dirname in psymtabs and change lookup*symtab to use dirname (so
1992/foo/bar.c works whether compiled by cc /foo/bar.c, or cd /foo; cc
1993bar.c).
1994
7ae38352
AC
1995--
1996
c906108c
SS
1997Merge xcoffread.c and coffread.c. Use breakpoint_re_set instead of
1998fixup_breakpoints.
1999
7ae38352 2000--
c906108c
SS
2001
2002Make a watchpoint which contains a function call an error (it is
2003broken now, making it work is probably not worth the effort).
2004
7ae38352 2005--
c906108c
SS
2006
2007New test case based on weird.exp but in which type numbers are not
2008renumbered (thus multiply defining a type). This currently causes an
2009infinite loop on "p v_comb".
2010
7ae38352 2011--
c906108c 2012
7ae38352 2013[Hey! Hint Hint Delete Delete!!!]
c906108c
SS
2014
2015Fix 386 floating point so that floating point registers are real
2016registers (but code can deal at run-time if they are missing, like
2017mips and 68k). This would clean up "info float" and related stuff.
2018
7ae38352 2019--
c906108c
SS
2020
2021gcc -g -c enummask.c then gdb enummask.o, then "p v". GDB complains
2022about not being able to access memory location 0.
2023
2024-------------------- enummask.c
2025enum mask
2026{
2027 ANIMAL = 0,
2028 VEGETABLE = 1,
2029 MINERAL = 2,
2030 BASIC_CATEGORY = 3,
2031
2032 WHITE = 0,
2033 BLUE = 4,
2034 GREEN = 8,
2035 BLACK = 0xc,
2036 COLOR = 0xc,
2037
2038 ALIVE = 0x10,
2039
2040 LARGE = 0x20
2041} v;
2042
7ae38352
AC
2043--
2044
c906108c
SS
2045If try to modify value in file with "set write off" should give
2046appropriate error not "cannot access memory at address 0x65e0".
2047
7ae38352 2048--
c906108c 2049
c906108c
SS
2050Allow core file without exec file on RS/6000.
2051
7ae38352
AC
2052--
2053
c906108c
SS
2054Make sure "shell" with no arguments works right on DOS.
2055
7ae38352
AC
2056--
2057
c906108c
SS
2058Make gdb.ini (as well as .gdbinit) be checked on all platforms, so
2059the same directory can be NFS-mounted on unix or DOS, and work the
2060same way.
2061
7ae38352
AC
2062--
2063
2064[Is this another delete???]
c906108c
SS
2065
2066Get SECT_OFF_TEXT stuff out of objfile_relocate (might be needed to
2067get RS/6000 to work right, might not be immediately relevant).
2068
7ae38352 2069--
c906108c
SS
2070
2071Work out some kind of way to allow running the inferior to be done as
2072a sub-execution of, eg. breakpoint command lists. Currently running
2073the inferior interupts any command list execution. This would require
2074some rewriting of wait_for_inferior & friends, and hence should
2075probably be done in concert with the above.
2076
7ae38352
AC
2077--
2078
c906108c
SS
2079Add function arguments to gdb user defined functions.
2080
7ae38352
AC
2081--
2082
c906108c
SS
2083Add convenience variables that refer to exec file, symbol file,
2084selected frame source file, selected frame function, selected frame
2085line number, etc.
2086
7ae38352
AC
2087--
2088
c906108c
SS
2089Modify the handling of symbols grouped through BINCL/EINCL stabs to
2090allocate a partial symtab for each BINCL/EINCL grouping. This will
2091seriously decrease the size of inter-psymtab dependencies and hence
2092lessen the amount that needs to be read in when a new source file is
2093accessed.
2094
7ae38352 2095--
c906108c 2096
c906108c
SS
2097Add a command for searching memory, a la adb. It specifies size,
2098mask, value, start address. ADB searches until it finds it or hits
2099an error (or is interrupted).
2100
7ae38352
AC
2101--
2102
b83266a0
SS
2103Remove the range and type checking code and documentation, if not
2104going to implement.
2105
c906108c
SS
2106# Local Variables:
2107# mode: text
2108# End:
This page took 0.274461 seconds and 4 git commands to generate.