OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [insight/] [gdb/] [TODO] - Blame information for rev 1770

Go to most recent revision | Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.