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