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