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