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