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