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