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