* i387-tdep.c (print_i387_value): Cast &value to (char *) in
[deliverable/binutils-gdb.git] / gdb / TODO
CommitLineData
c906108c 1If you find inaccuracies in this list, please send mail to
2a00c9ce
AC
2gdb-patches@sourceware.cygnus.com. If you would like to work on any
3of these, you should consider sending mail to the same address, to
4find out whether anyone else is working on it.
c906108c 5
138f88c0 6
2a00c9ce
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
bc9e5bbf 14(The names in paren indicate people that posted the original problem.)
138f88c0
AC
15
16--
17
bc9e5bbf 18GDB doesn't build under IRIX6.4
c906108c 19
bc9e5bbf
AC
20Benjamin Gamsa wrote:
21
22Has anyone successfully built the latest (from cvs) gdb on IRIX6.4 or
23later? The first problem I hit is that proc-api.c includes
24sys/user.h, which no longer exists under IRIX6.4. If I comment out
25that include, the next problem I hit is that PIOCGETPR and PIOCGETU
26are no longer defined in IRIX6.4 (presumably related to the
27disappearance of user.h).
138f88c0
AC
28
29--
30
4fd99b5a
AC
31The BFD directory requires bug-fixed AUTOMAKE et.al.
32
33AUTOMAKE 1.4 incorrectly set the TEXINPUTS environment variable. It
34contained the full path to texinfo.tex when it should have only
35contained the directory. The bug has been fixed in the current
36AUTOMAKE sources. Automake snapshots can be found in:
37 ftp://sourceware.cygnus.com/pub/gdb/snapshots
38and ftp://sourceware.cygnus.com/pub/binutils
39
40--
41
bc9e5bbf
AC
42gdb-cvs fails to build on freebsd-elf
43http://sourceware.cygnus.com/ml/gdb/2000-04/msg00004.html
138f88c0 44
bc9e5bbf
AC
45Either the FreeBSD group need to contribute their local GDB changes
46back to the master sources or someone needs to provides a new
47(clean-room) implementation. Since the former involves a fairly
48complicated assignment the latter may be easier. [cagney]
138f88c0
AC
49
50--
51
bc9e5bbf
AC
52Generic: lin-thread cannot handle thread exit (Mark Kettenis, Michael
53Snyder) http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00525.html
138f88c0
AC
54
55The thread_db assisted debugging code doesn't handle exiting threads
56properly, at least in combination with glibc 2.1.3 (the framework is
57there, just not the actual code). There are at least two problems
58that prevent this from working.
59
bc9e5bbf 60As an additional reference point, the pre thread_db code did not work
138f88c0
AC
61either.
62
63--
64
65Java (Anthony Green, David Taylor)
66
bc9e5bbf
AC
67Anthony Green has a number of Java patches that did not make it into
68the 5.0 release.
138f88c0
AC
69
70Patch: java tests
71http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00512.html
72
73Patch: java booleans
74http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00515.html
75
76Patch: handle N_MAIN stab
77http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00527.html
78
138f88c0
AC
79--
80
81Pascal (Pierre Muller, David Taylor)
82
bc9e5bbf
AC
83Pierre Muller has contributed patches for adding Pascal Language
84support to GDB.
67edb2c6
AC
85
862 pascal language patches inserted in database
87http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00521.html
88
bc9e5bbf
AC
89Indent -gnu ?
90http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00496.html
138f88c0
AC
91
92--
93
94GNU/Linux/x86 and random thread signals (and Solaris/SPARC but not
bc9e5bbf
AC
95Solaris/x86).
96http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00336.html
138f88c0
AC
97
98Christopher Blizzard writes:
99
100So, I've done some more digging into this and it looks like Jim
101Kingdon has reported this problem in the past:
102
103http://sourceware.cygnus.com/ml/bug-gdb/1999-10/msg00058.html
104
105I can reproduce this problem both with and without Tom's patch. Has
106anyone seen this before? Maybe have a solution for it hanging around?
107:)
108
109There's a test case for this documented at:
110
111when debugging threaded applications you get extra SIGTRAPs
112http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=9565
113
114[There should be a GDB testcase - cagney]
115
116--
117
bc9e5bbf 118Possible regressions with some devel GCCs.
138f88c0
AC
119http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00475.html
120
bc9e5bbf
AC
121gcc-2.95.2 outputs a line note *before* the prologue (and one for the
122closing brace after the epilogue, instead of before it, as it used to
123be). By disabling the RTL-style prologue generating mechanism
124(undocumented GCC option -mno-schedule-prologue), you get back the
125traditional behaviour.
126http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00510.html
138f88c0 127
bc9e5bbf 128This should now be fixed.
138f88c0
AC
129
130--
131
bc9e5bbf
AC
132RFD: infrun.c: No bpstat_stop_status call after proceed over break?
133(Peter Schauer)
138f88c0
AC
134http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00665.html
135
bc9e5bbf
AC
136GDB misses watchpoint triggers after proceeding over a breakpoint on
137x86 targets.
138
138f88c0
AC
139--
140
67edb2c6
AC
141x86 linux GDB and SIGALRM (???)
142http://sourceware.cygnus.com/ml/gdb/2000-q1/msg00803.html
143
bc9e5bbf
AC
144I know there are problems with single stepping through signal
145handlers. These problems were present in 4.18. They were just masked
146because 4.18 failed to recognize signal handlers. Fixing it is not
147easy, and will require changes to handle_inferior_event(), that I
148prefer not to make before the 5.0 release.
67edb2c6 149
bc9e5bbf 150Mark
67edb2c6
AC
151
152--
153
9d6d78f2
AC
154Revised UDP support (was: Re: [Fwd: [patch] UDP transport support])
155http://sourceware.cygnus.com/ml/gdb-patches/2000-04/msg00000.html
156
bc9e5bbf
AC
157(Broken) support for GDB's remote protocol across UDP is to be
158included in the follow-on release.
138f88c0 159
b2f4b24d
AC
160--
161
162Can't build IRIX -> arm GDB.
163http://sourceware.cygnus.com/ml/gdb-patches/2000-04/msg00356.html
164
165David Whedon writes:
166> Now I'm building for an embedded arm target. If there is a way of turning
167> remote-rdi off, I couldn't find it. It looks like it gets built by default
168> in gdb/configure.tgt(line 58) Anyway, the build dies in
169> gdb/rdi-share/unixcomm.c. SERPORT1 et. al. never get defined because we
170> aren't one of the architectures supported.
171
6bc37a96
AC
172--
173
174Problem with weak functions
175http://sourceware.cygnus.com/ml/gdb/2000-05/msg00060.html
176
177Dan Nicolaescu writes:
178> It seems that gdb-4.95.1 does not display correctly the function when
179> stoping in weak functions.
180>
181> It stops in a function that is defined as weak, not in the function
182> that is actualy run...
b2f4b24d 183
3fffcb5e
AC
184--
185
186GDB5 TOT on unixware 7
187http://sourceware.cygnus.com/ml/gdb/2000-04/msg00119.html
188
189Robert Lipe writes:
190> I just spun the top of tree of the GDB5 branch on UnixWare 7. As a
191> practical matter, the current thread support is somewhat more annoying
192> than when GDB was thread-unaware.
193
138f88c0
AC
194--
195
7ae38352 196 Code Cleanups
2a00c9ce 197 =============
bc9e5bbf 198
7ae38352
AC
199The following are small cleanups that will hopefully be completed by
200the follow on to 5.0.
bc9e5bbf
AC
201
202--
203
204ATTRIBUTE_UNUSED
205
206The need for this as almost been eliminated. The next version of GCC
207(assuming cagney gets the relevant patch committed) will be able to
208supress unused parameter warnings.
209
210--
211
d8038014
AC
212Eliminate more compiler warnings.
213
214Of course there also needs to be the usual debate over which warnings
215are valid and how to best go about this.
216
217One method: choose a single option; get agreement that it is
218reasonable; try it out to see if there isn't anything silly about it
219(-Wunused-parameters is an example of that) then incrementally hack
220away.
221
222The other method is to enable all warnings and eliminate them from one
223file at a time.
224
225--
226
bc9e5bbf
AC
227Delete macro TARGET_BYTE_ORDER_SELECTABLE.
228
229Patches in the database.
230
231--
232
233Updated readline
234
235Readline 4.? is out. A merge wouldn't hurt.
236
237--
238
239Purge PARAMS
240
241Eliminate all uses of PARAMS in GDB's source code.
242
243--
244
245Elimination of make_cleanup_func. (Andrew Cagney)
246
247make_cleanup_func elimination
248http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00791.html
249http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00814.html
250
251--
252
bc9e5bbf
AC
253Re: Various C++ things
254
255value_headof/value_from_vtable_info are worthless, and should be removed.
256The one place in printcmd.c that uses it should use the RTTI functions.
257
258RTTI for g++ should be using the typeinfo functions rather than the vtables.
259The typeinfo functions are always at offset 4 from the beginning of the vtable,
260and are always right. The vtables will have weird names like E::VB sometimes.
261The typeinfo function will always be "E type_info function", or somesuch.
262
263value_virtual_fn_field needs to be fixed so there are no failures for virtual
264functions for C++ using g++.
265
266Testsuite cases are the major priority right now for C++ support, since i have
267to make a lot of changes that could potentially break each other.
138f88c0 268
67edb2c6
AC
269--
270
7ae38352
AC
271Fix ``set architecture <tab>''
272
273This command should expand to a list of all supported architectures.
274At present ``info architecture'' needs to be used. That is simply
275wrong. It involves the use of add_set_enum_cmd().
276
277--
278
67edb2c6
AC
279GDBARCH cleanup (Andrew Cagney)
280
281The non-generated parts of gdbarch.{sh,h,c} should be separated out
bc9e5bbf 282into arch-utils.[hc].
67edb2c6 283
67edb2c6
AC
284Document that gdbarch_init_ftype could easily fail because it didn't
285identify an architecture.
286
287--
288
bc9e5bbf
AC
289Migrate qfThreadInfo packet -> qThreadInfo. (Andrew Cagney)
290
291Add support for packet enable/disable commands with these thread
292packets. General cleanup.
293
294[PATCH] Document the ThreadInfo remote protocol queries
295http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00832.html
296
297[PATCH] "info threads" queries for remote.c
298http://sourceware.cygnus.com/ml/gdb-patches/2000-q1/msg00831.html
299
7ae38352
AC
300--
301
302 General Cleanups / Fixes
303 ========================
304
305The following are more general cleanups and fixes. They are not tied
306to any specific release.
307
308--
309
310Nuke USG define.
311
bc9e5bbf
AC
312--
313
747d1ccb
AC
314Eliminate gdb/tui/Makefile.in.
315Cleanup configury support for optional sub-directories.
316
317Check how GCC handles multiple front ends for an example of how things
318could work. A tentative first step is to rationalize things so that
319all sub directories are handled in a fashion similar to gdb/mi.
320
321--
322
9debab2f
AC
323[PATCH/5] src/intl/Makefile.in:distclean additions
324http://sourceware.cygnus.com/ml/gdb-patches/2000-04/msg00363.html
325
326Do not forget to merge the patch back into the trunk.
327
328--
329
7ae38352
AC
330Update ALPHA so that it uses ``struct frame_extra_info'' instead of
331EXTRA_FRAME_INFO.
e55e8cee 332
7ae38352
AC
333This is a barrier to replacing mips_extra_func_info with something
334that works with multi-arch.
e55e8cee
AC
335
336--
337
7ae38352
AC
338Multi-arch mips_extra_func_info.
339
340This first needs the alpha to be updated so that it uses ``struct
341frame_extra_info''.
342
343--
344
345Send normal output to gdb_stdout.
346Send error messages to gdb_stderror.
347Send debug and log output log gdb_stdlog.
348
349GDB still contains many cases where (f)printf or printf_filtered () is
350used when it should be sending the messages to gdb_stderror or
351gdb_stdlog.
352
353--
354
355Rationalize the host-endian code (grep for HOST_BYTE_ORDER).
356
357At preent defs.h includes <endian.h> (which is linux specific) yet
358almost nothing depends on it. Suggest "gdb_endian.h" which can also
359handle <machine/endian.h> and only include that where it is really
360needed.
361
362--
363
364Replace asprintf() calls with xasprintf() calls.
365
366As with things like strdup() most calls to asprintf() don't check the
367return value.
368
369--
370
371Rationaize savestring(), msavestring() and mstrsave().
372
373In general libiberty's xstrdup () can be used.
374
375--
376
377Eliminate mmalloc() from GDB.
378
379Also eliminate it from defs.h.
380
381--
382
383Check/cleanup MI documentation.
384
385The list of commands specified in the documentation needs to be
386checked against the mi-cmds.c table in a mechanical way (so that they
387two can be kept up-to-date).
388
389--
390
391Eliminate error_begin().
392
393With ui_file, there is no need for the statefull error_begin ()
394function.
395
396--
397
398Add built-by, build-date, tm, xm, nm and anything else into gdb binary
399so that you can see how the GDB was created.
400
401Some of these (*m.h) would be added to the generated config.h. That
402in turn would fix a long standing bug where by the build process many
403not notice a changed tm.h file. Since everything depends on config.h,
404a change to *m.h forces a change to config.h and, consequently forces
405a rebuild.
406
407--
408
409Replace gdb_stdtarg with gdb_targout (and possibly gdb_targerr).
410
411gdb_stdtarg is easily confused with gdb_stdarg.
412
413--
414
415Remote protocol doco feedback.
416
417Too much feedback to mention needs to be merged in (901660). Search
418for the word ``remote''.
419
420--
421
422set/show remote X-packet ...
423
424``(gdb) help set remote X-packet'' doesn't list the applicable
425responses. The help message needs to be expanded.
426
427--
428
429Extra ui_file methods - dump.
430
431These are for debugging / testing. An aside is to set up a whitebox
432testsuite for key internals such as ui_file.
433
434--
435
436Add an "info bfd" command that displays supported object formats,
437similarly to objdump -i.
438
439Is there a command already?
440
d8038014
AC
441--
442
443Eliminate PTR. ISO-C allows ``void *''.
444
445--
446
447Eliminate abort ().
448
449GDB should never abort. GDB should either throw ``error ()'' or
450``internal_error ()''. Better still GDB should naturally unwind with
451an error status.
452
7ae38352
AC
453--
454
455 Architectural Changes
456 =====================
457
458These are harder than simple cleanups / fixes and, consequently
459involve more work. Typically an Architectural Change will be broken
460down into a more digestible set of cleanups and fixes.
461
462--
463
464Replace READ_FP() with FRAME_HANDLE().
465
466READ_FP() is a hangover from the days of the vax when the ABI really
467did have a frame pointer register. Modern architectures typically
468construct a virtual frame-handle from the stack pointer and various
469other bits of string.
470
471Unfortunatly GDB still treats this synthetic FP register as though it
472is real. That in turn really confuses users (arm and ``print $fp'' VS
473``info registers fp''). The synthetic FP should be separated out of
474the true register set presented to the user.
475
476--
477
478MI's input does not use buffering.
479
480At present the MI interface reads raw characters of from an unbuffered
481FD. This is to avoid several nasty buffer/race conditions. That code
482should be changed so that it registers its self with the event loop
483(on the input FD) and then push commands up to MI as they arrive.
484
485The serial code already does this.
2a00c9ce
AC
486
487--
488
489Register Cache Cleanup (below from Andrew Cagney)
490
491I would depict the current register architecture as something like:
492
493 High GDB --> Low GDB
494 | |
495 \|/ \|/
496 --- REG NR -----
497 |
498 register + REGISTER_BYTE(reg_nr)
499 |
500 \|/
501 -------------------------
502 | extern register[] |
503 -------------------------
504
505where neither the high (valops.c et.al.) or low gdb (*-tdep.c) are
506really clear on what mechanisms they should be using to manipulate that
507buffer. Further, much code assumes, dangerously, that registers are
508contigious. Having got mips-tdep.c to support multiple ABIs, believe
509me, that is a bad assumption. Finally, that register cache layout is
510determined by the current remote/local target and _not_ the less
511specific target ISA. In fact, in many cases it is determined by the
512somewhat arbitrary layout of the [gG] packets!
513
514
515How I would like the register file to work is more like:
516
517
518 High GDB
519 |
520 \|/
521 pseudo reg-nr
522 |
523 map pseudo <->
524 random cache
525 bytes
526 |
527 \|/
528 ------------
529 | register |
530 | cache |
531 ------------
532 /|\
533 |
534 map random cache
535 bytes to target
536 dependant i-face
537 /|\
538 |
539 target dependant
540 such as [gG] packet
541 or ptrace buffer
542
543The main objectives being:
544
545 o a clear separation between the low
546 level target and the high level GDB
547
548 o a mechanism that solves the general
549 problem of register aliases, overlaps
550 etc instead of treating them as optional
551 extras that can be wedged in as an after
552 thought (that is a reasonable description
553 of the current code).
554
555 Identify then solve the hard case and the
556 rest just falls out. GDB solved the easy
557 case and then tried to ignore the real
558 world :-)
559
560 o a removal of the assumption that the
561 mapping between the register cache
562 and virtual registers is largely static.
563 If you flip the USR/SSR stack register
564 select bit in the status-register then
565 the corresponding stack registers should
566 reflect the change.
567
568 o a mechanism that clearly separates the
569 gdb internal register cache from any
570 target (not architecture) dependant
571 specifics such as [gG] packets.
572
573Of course, like anything, it sounds good in theory. In reality, it
574would have to contend with many<->many relationships at both the
575virt<->cache and cache<->target level. For instance:
576
577 virt<->cache
578 Modifying an mmx register may involve
579 scattering values across both FP and
580 mmpx specific parts of a buffer
581
582 cache<->target
583 When writing back a SP it may need to
584 both be written to both SP and USP.
585
586
587Hmm,
588
589Rather than let this like the last time it was discussed, just slip, I'm
590first going to add this e-mail (+ references) to TODO. I'd then like to
591sketch out a broad strategy I think could get us there.
592
593
594First thing I'd suggest is separating out the ``extern registers[]''
595code so that we can at least identify what is using it. At present
596things are scattered across many files. That way we can at least
597pretend that there is a cache instead of a global array :-)
598
599I'd then suggest someone putting up a proposal for the pseudo-reg /
600high-level side interface so that code can be adopted to it. For old
601code, initially a blanket rename of write_register_bytes() to
602deprecated_write_register_bytes() would help.
603
604Following that would, finaly be the corresponding changes to the target.
bc9e5bbf
AC
605
606--
607
d8038014
AC
608Fix ``I'm sorry, Dave, I can't do that.'' from symfile.c.
609
610This requires internationalization.
611
612--
613
67edb2c6
AC
614Check that GDB can handle all BFD architectures (Andrew Cagney)
615
616There should be a test that checks that BFD/GDB are in sync with
617regard to architecture changes. Something like a test that first
618queries GDB for all supported architectures and then feeds each back
619to GDB.. Anyone interested in learning how to write tests? :-)
620
621--
622
2a00c9ce
AC
623Add support for Modula3
624
625Get DEC/Compaq to contribute their Modula-3 support.
626
7ae38352
AC
627--
628
629Convert ALL architectures to MULTI-ARCH.
630
631--
632
633Convert GDB build process to AUTOMAKE.
634
635--
636
637Restructure gdb directory tree so that it avoids any 8.3 and 14
638filename problems.
639
640--
641
642Can the xdep files be replaced by autoconf?
643Can the tm.h and nm.h files be eliminated by multi-arch.
644
645--
646
647Add a transcript mechanism to GDB.
648
649Such a mechanism might log all gdb input and output to a file in a
650form that would allow it to be replayed. It could involve ``gdb
651--transcript=FILE'' or it could involve ``(gdb) transcript file''.
652
653--
654
655Make MI interface accessable from existing CLI.
656
657--
658
659Select the initial multi-arch ISA / ABI based on --target or similar.
660
661At present the default is based on what ever is first in the BFD
662archures table. It should be determined based on the ``--target=...''
663name.
664
665--
666
667Truly multi-arch.
668
669Enable the code to recognize --enable-targets=.... like BINUTILS does.
670
671--
672
673Add a breakpoint-edit command to MI.
674
675It would be similar to MI's breakpoint create but would apply to an
676existing breakpoint. It saves the need to delete/create breakpoints
677when ever they are changed.
678
679--
680
681Add directory path to MI breakpoint.
682
683That way the GUI's task of finding the file within which the
684breakpoint was set is simplified.
685
686--
687
688Re-do GDB's output pager.
689
690GDB's output pager still relies on people correctly using *_filtered
691for gdb_stdout and *_unfiltered for gdb_stdlog / gdb_stderr.
692Hopefully, with all normal output going to gdb_stdout, the pager can
693just look at the ui_file that the output is on and then use that to
694decide what to do about paging. Sounds good in theory.
695
696--
697
698Add mechanism to reject expression classes to MI
699
700There are situtations where you don't want GDB's expression
701parser/evaluator to perform inferior function calls or variable
702assignments.
703
704--
705
706Remove sideffects from libgdb breakpoint create function.
707
708The user can use the CLI to create a breakpoint with partial
709information - no file (gdb would use the file from the last
710breakpoint).
711
712The libgdb interface currently affects that environment which can lead
713to confusion when a user is setting breakpoints via both the MI and
714the CLI.
715
716This is also a good example of how getting the CLI ``right'' will be
717hard.
718
719--
720
721GDB doesn't recover gracefully from remote protocol errors.
722
723GDB wasn't checking for NAKs from the remote target. Instead a NAK is
724ignored and a timeout is required before GDB retries. A pre-cursor to
725fixing this this is making GDB's remote protocol packet more robust.
726
727While downloading to a remote protocol target, gdb ignores packet
728errors in so far as it will continue to edownload with chunk N+1 even
729if chunk N was not correctly sent. This causes gdb.base/remote.exp to
730take a painfully long time to run. As a PS that test needs to be
731fixed so that it builds on 16 bit machines.
732
733--
734
735Move gdb_lasterr to ui_out?
736
737The way GDB throws errors and records them needs a re-think. ui_out
738handles the correct output well. It doesn't resolve what to do with
739output / error-messages when things go wrong.
740
741--
742
743Fix implementation of ``target xxx''.
744
745At present when the user specifies ``target xxxx'', the CLI maps that
746directly onto a target open method. It is then assumed that the
747target open method should do all sorts of complicated things as this
748is the only chance it has. Check how the various remote targets
749duplicate the target operations. Check also how the various targets
750behave differently for purely arbitrary reasons.
751
752What should happen is that ``target xxxx'' should call a generic
753``target'' function and that should then co-ordinate the opening of
754``xxxx''. This becomes especially important when you're trying to
755open an asynchronous target that may need to perform background tasks
756as part of the ``attach'' phase.
757
758Unfortunatly, due to limitations in the old/creaking command.h
759interface, that isn't possible. The function being called isn't told
760of the ``xxx'' or any other context information.
761
762Consequently a precursor to fixing ``target xxxx'' is to clean up the
763CLI code so that it passes to the callback function (attatched to a
764command) useful information such as the actual command and a context
765for that command. Other changes such as making ``struct command''
766opaque may also help.
767
768--
769
770Document trace machinery
771
772--
773
774Document overlay machinery.
775
2a00c9ce
AC
776--
777
778 Legacy Wish List
779 ================
780
781This list is not up to date, and opinions vary about the importance or
782even desirability of some of the items. If you do fix something, it
783always pays to check the below.
784
785--
c906108c 786
b83266a0
SS
787@c This does not work (yet if ever). FIXME.
788@c @item --parse=@var{lang} @dots{}
789@c Configure the @value{GDBN} expression parser to parse the listed languages.
790@c @samp{all} configures @value{GDBN} for all supported languages. To get a
791@c list of all supported languages, omit the argument. Without this
792@c option, @value{GDBN} is configured to parse all supported languages.
793
7ae38352 794--
c906108c
SS
795
796START_INFERIOR_TRAPS_EXPECTED need never be defined to 2, since that
797is its default value. Clean this up.
798
7ae38352
AC
799--
800
c906108c
SS
801It should be possible to use symbols from shared libraries before we know
802exactly where the libraries will be loaded. E.g. "b perror" before running
803the program. This could maybe be done as an extension of the "breakpoint
804re-evaluation" after new symbols are loaded.
805
7ae38352
AC
806--
807
c906108c
SS
808Make single_step() insert and remove breakpoints in one operation.
809
7ae38352
AC
810--
811
c906108c
SS
812Speed up single stepping by avoiding extraneous ptrace calls.
813
7ae38352
AC
814--
815
c906108c
SS
816Speed up single stepping by not inserting and removing breakpoints
817each time the inferior starts and stops.
818
819Breakpoints should not be inserted and deleted all the time. Only the
820one(s) there should be removed when we have to step over one. Support
821breakpoints that don't have to be removed to step over them.
822
7ae38352 823[this has resulted in numerous debates. The issue isn't clear cut]
c906108c 824
7ae38352 825--
c906108c
SS
826
827Provide "voodoo" debugging of core files. This creates a zombie
828process as a child of the debugger, and loads it up with the data,
829stack, and regs of the core file. This allows you to call functions
830in the executable, to manipulate the data in the core file.
831
7ae38352 832[you wish]
c906108c 833
7ae38352 834--
c906108c 835
7ae38352 836GDB reopens the source file on every line, as you "next" through it.
c906108c 837
7ae38352 838[still true? I've a memory of this being fixed]
c906108c 839
7ae38352 840--
c906108c
SS
841
842Perhaps "i source" should take an argument like that of "list".
843
7ae38352 844--
c906108c
SS
845
846Remove "at 0xnnnn" from the "b foo" response, if `print address off' and if
847it matches the source line indicated.
848
7ae38352 849--
c906108c 850
7ae38352 851The prompt at end of screen should accept space as well as CR.
c906108c 852
7ae38352 853--
c906108c
SS
854
855Backtrace should point out what the currently selected frame is, in
856its display, perhaps showing "@3 foo (bar, ...)" or ">3 foo (bar,
857...)" rather than "#3 foo (bar, ...)".
858
7ae38352
AC
859--
860
c906108c
SS
861"i program" should work for core files, and display more info, like what
862actually caused it to die.
863
7ae38352
AC
864--
865
c906108c
SS
866"x/10i" should shorten the long name, if any, on subsequent lines.
867
7ae38352 868--
c906108c
SS
869
870"next" over a function that longjumps, never stops until next time you happen
871to get to that spot by accident. E.g. "n" over execute_command which has
872an error.
873
7ae38352
AC
874--
875
c906108c
SS
876"set zeroprint off", don't bother printing members of structs which
877are entirely zero. Useful for those big structs with few useful
878members.
879
7ae38352
AC
880--
881
c906108c
SS
882GDB does four ioctl's for every command, probably switching terminal modes
883to/from inferior or for readline or something.
884
7ae38352
AC
885--
886
c906108c
SS
887terminal_ours versus terminal_inferior: cache state. Switch should be a noop
888if the state is the same, too.
889
7ae38352 890--
c906108c
SS
891
892"i frame" shows wrong "arglist at" location, doesn't show where the args
893should be found, only their actual values.
894
7ae38352
AC
895--
896
c906108c
SS
897There should be a way for "set" commands to validate the new setting
898before it takes effect.
899
7ae38352 900--
c906108c
SS
901
902"ena d" is ambiguous, why? "ena delete" seems to think it is a command!
903
7ae38352 904--
c906108c
SS
905
906i line VAR produces "Line number not known for symbol ``var''.". I
907thought we were stashing that info now!
908
7ae38352
AC
909--
910
c906108c
SS
911We should be able to write to random files at hex offsets like adb.
912
7ae38352
AC
913--
914
c906108c
SS
915Make "target xxx" command interruptible.
916
7ae38352
AC
917--
918
919[elena - delete this]
920
c906108c
SS
921Handle add_file with separate text, data, and bss addresses. Maybe
922handle separate addresses for each segment in the object file?
923
7ae38352
AC
924--
925
926[Jimb/Elena delete this one]
927
c906108c
SS
928Handle free_named_symtab to cope with multiply-loaded object files
929in a dynamic linking environment. Should remember the last copy loaded,
930but not get too snowed if it finds references to the older copy.
931
7ae38352
AC
932--
933
934[elena delete this also]
c906108c
SS
935
936Remove all references to:
937 text_offset
938 data_offset
939 text_data_start
940 text_end
941 exec_data_offset
942 ...
943now that we have BFD. All remaining are in machine dependent files.
944
7ae38352 945--
c906108c
SS
946
947Re-organize help categories into things that tend to fit on a screen
948and hang together.
949
7ae38352 950--
c906108c
SS
951
952Add in commands like ADB's for searching for patterns, etc. We should
953be able to examine and patch raw unsymboled binaries as well in gdb as
954we can in adb. (E.g. increase the timeout in /bin/login without source).
955
7ae38352
AC
956[actually, add ADB interface :-]
957
958--
c906108c
SS
959
960When doing "step" or "next", if a few lines of source are skipped between
961the previous line and the current one, print those lines, not just the
962last line of a multiline statement.
963
7ae38352 964--
c906108c
SS
965
966Handling of "&" address-of operator needs some serious overhaul
967for ANSI C and consistency on arrays and functions.
968 For "float point[15];":
969ptype &point[4] ==> Attempt to take address of non-lvalue.
970 For "char *malloc();":
971ptype malloc ==> "char *()"; should be same as
972ptype &malloc ==> "char *(*)()"
973call printf ("%x\n", malloc) ==> weird value, should be same as
974call printf ("%x\n", &malloc) ==> correct value
975
7ae38352
AC
976--
977
c906108c
SS
978Fix dbxread.c symbol reading in the presence of interrupts. It
979currently leaves a cleanup to blow away the entire symbol table when a
980QUIT occurs. (What's wrong with that? -kingdon, 28 Oct 1993).
981
7ae38352
AC
982[I suspect that the grype was that, on a slow system, you might want
983to cntrl-c and get just half the symbols and then load the rest later
984- scary to be honest]
985
986--
987
c906108c
SS
988Mipsread.c reads include files depth-first, because the dependencies
989in the psymtabs are way too inclusive (it seems to me). Figure out what
990really depends on what, to avoid recursing 20 or 30 times while reading
991real symtabs.
992
7ae38352
AC
993--
994
c906108c
SS
995value_add() should be subtracting the lower bound of arrays, if known,
996and possibly checking against the upper bound for error reporting.
997
7ae38352 998--
c906108c
SS
999
1000When listing source lines, check for a preceding \n, to verify that
1001the file hasn't changed out from under us.
1002
7ae38352
AC
1003[fixed by some other means I think. That hack wouldn't actually work
1004reliably - the file might move such that another \n appears. ]
c906108c 1005
7ae38352 1006--
c906108c
SS
1007
1008Get all the remote systems (where the protocol allows it) to be able to
1009stop the remote system when the GDB user types ^C (like remote.c
1010does). For ebmon, use ^Ak.
1011
7ae38352
AC
1012--
1013
c906108c
SS
1014Possible feature: A version of the "disassemble" command which shows
1015both source and assembly code ("set symbol-filename on" is a partial
1016solution).
1017
7ae38352
AC
1018[has this been done? It was certainly done for MI and GDBtk]
1019
1020--
1021
c906108c
SS
1022investigate "x/s 0" (right now stops early) (I think maybe GDB is
1023using a 0 address for bad purposes internally).
1024
7ae38352
AC
1025--
1026
c906108c
SS
1027Make "info path" and path_command work again (but independent of the
1028environment either of gdb or that we'll pass to the inferior).
1029
7ae38352
AC
1030--
1031
c906108c
SS
1032Make GDB understand the GCC feature for putting octal constants in
1033enums. Make it so overflow on an enum constant does not error_type
1034the whole type. Allow arbitrarily large enums with type attributes.
1035Put all this stuff in the testsuite.
1036
7ae38352
AC
1037--
1038
c906108c
SS
1039Make TYPE_CODE_ERROR with a non-zero TYPE_LENGTH more useful (print
1040the value in hex; process type attributes). Add this to the
1041testsuite. This way future compilers can add new types and old
1042versions of GDB can do something halfway reasonable.
1043
7ae38352 1044--
c906108c
SS
1045
1046Fix mdebugread.c:parse_type to do fundamental types right (see
1047rs6000_builtin_type in stabsread.c for what "right" is--the point is
1048that the debug format fixes the sizes of these things and it shouldn't
1049depend on stuff like TARGET_PTR_BIT and so on. For mdebug, there seem
1050to be separate bt* codes for 64 bit and 32 bit things, and GDB should
1051be aware of that). Also use a switch statement for clarity and speed.
1052
7ae38352
AC
1053--
1054
c906108c
SS
1055Investigate adding symbols in target_load--some targets do, some
1056don't.
1057
7ae38352
AC
1058--
1059
c906108c
SS
1060Put dirname in psymtabs and change lookup*symtab to use dirname (so
1061/foo/bar.c works whether compiled by cc /foo/bar.c, or cd /foo; cc
1062bar.c).
1063
7ae38352
AC
1064--
1065
c906108c
SS
1066Merge xcoffread.c and coffread.c. Use breakpoint_re_set instead of
1067fixup_breakpoints.
1068
7ae38352 1069--
c906108c
SS
1070
1071Make a watchpoint which contains a function call an error (it is
1072broken now, making it work is probably not worth the effort).
1073
7ae38352 1074--
c906108c
SS
1075
1076New test case based on weird.exp but in which type numbers are not
1077renumbered (thus multiply defining a type). This currently causes an
1078infinite loop on "p v_comb".
1079
7ae38352 1080--
c906108c 1081
7ae38352 1082[Hey! Hint Hint Delete Delete!!!]
c906108c
SS
1083
1084Fix 386 floating point so that floating point registers are real
1085registers (but code can deal at run-time if they are missing, like
1086mips and 68k). This would clean up "info float" and related stuff.
1087
7ae38352 1088--
c906108c
SS
1089
1090gcc -g -c enummask.c then gdb enummask.o, then "p v". GDB complains
1091about not being able to access memory location 0.
1092
1093-------------------- enummask.c
1094enum mask
1095{
1096 ANIMAL = 0,
1097 VEGETABLE = 1,
1098 MINERAL = 2,
1099 BASIC_CATEGORY = 3,
1100
1101 WHITE = 0,
1102 BLUE = 4,
1103 GREEN = 8,
1104 BLACK = 0xc,
1105 COLOR = 0xc,
1106
1107 ALIVE = 0x10,
1108
1109 LARGE = 0x20
1110} v;
1111
7ae38352
AC
1112--
1113
c906108c
SS
1114If try to modify value in file with "set write off" should give
1115appropriate error not "cannot access memory at address 0x65e0".
1116
7ae38352 1117--
c906108c 1118
c906108c
SS
1119Allow core file without exec file on RS/6000.
1120
7ae38352
AC
1121--
1122
c906108c
SS
1123Make sure "shell" with no arguments works right on DOS.
1124
7ae38352
AC
1125--
1126
c906108c
SS
1127Make gdb.ini (as well as .gdbinit) be checked on all platforms, so
1128the same directory can be NFS-mounted on unix or DOS, and work the
1129same way.
1130
7ae38352
AC
1131--
1132
1133[Is this another delete???]
c906108c
SS
1134
1135Get SECT_OFF_TEXT stuff out of objfile_relocate (might be needed to
1136get RS/6000 to work right, might not be immediately relevant).
1137
7ae38352 1138--
c906108c
SS
1139
1140Work out some kind of way to allow running the inferior to be done as
1141a sub-execution of, eg. breakpoint command lists. Currently running
1142the inferior interupts any command list execution. This would require
1143some rewriting of wait_for_inferior & friends, and hence should
1144probably be done in concert with the above.
1145
7ae38352
AC
1146--
1147
c906108c
SS
1148Add function arguments to gdb user defined functions.
1149
7ae38352
AC
1150--
1151
c906108c
SS
1152Add convenience variables that refer to exec file, symbol file,
1153selected frame source file, selected frame function, selected frame
1154line number, etc.
1155
7ae38352
AC
1156--
1157
c906108c
SS
1158Add a "suspend" subcommand of the "continue" command to suspend gdb
1159while continuing execution of the subprocess. Useful when you are
1160debugging servers and you want to dodge out and initiate a connection
1161to a server running under gdb.
1162
7ae38352 1163[hey async!!]
c906108c 1164
7ae38352 1165--
c906108c
SS
1166
1167Modify the handling of symbols grouped through BINCL/EINCL stabs to
1168allocate a partial symtab for each BINCL/EINCL grouping. This will
1169seriously decrease the size of inter-psymtab dependencies and hence
1170lessen the amount that needs to be read in when a new source file is
1171accessed.
1172
7ae38352 1173--
c906108c 1174
7ae38352 1175[Comming...]
c906108c
SS
1176
1177Modify gdb to work correctly with Pascal.
1178
7ae38352
AC
1179--
1180
c906108c
SS
1181Add a command for searching memory, a la adb. It specifies size,
1182mask, value, start address. ADB searches until it finds it or hits
1183an error (or is interrupted).
1184
7ae38352
AC
1185--
1186
b83266a0
SS
1187Remove the range and type checking code and documentation, if not
1188going to implement.
1189
c906108c
SS
1190# Local Variables:
1191# mode: text
1192# End:
This page took 0.109894 seconds and 4 git commands to generate.