First cut at news for 4.7. Just an outline, and an indicator of where we
[external/binutils.git] / gdb / NEWS
1                 What has changed since GDB-3.5?
2                 (Organized release by release)
3
4 *** Changes in GDB-4.7:
5
6 auto demangling style
7 improved dwarf support?
8 redundant SO fix...
9 hppa cross host
10 better c++ support?
11 apollo 68b host
12 remote.c improved (new T message)
13 improved 29k support
14 host/native/target split
15 bugs bugs bugs
16 sparc-stub.c
17 rs6000 cleanups...  cross host
18
19 ==>Sun Aug 30 21:32:17 1992  Ian Lance Taylor  (ian@cygnus.com)
20
21
22 *** Changes in GDB-4.6:
23
24  * Better support for C++ function names
25
26 GDB now accepts as input the "demangled form" of C++ overloaded function
27 names and member function names, and can do command completion on such names
28 (using TAB, TAB-TAB, and ESC-?).  The names have to be quoted with a pair of
29 single quotes.  Examples are 'func (int, long)' and 'obj::operator==(obj&)'.
30 Make use of command completion, it is your friend.
31
32 GDB also now accepts a variety of C++ mangled symbol formats.  They are
33 the GNU g++ style, the Cfront (ARM) style, and the Lucid (lcc) style.
34 You can tell GDB which format to use by doing a 'set demangle-style {gnu,
35 lucid, cfront, auto}'.  'gnu' is the default.  Do a 'set demangle-style foo'
36 for the list of formats.
37
38  * G++ symbol mangling problem
39
40 Recent versions of gcc have a bug in how they emit debugging information for
41 C++ methods (when using dbx-style stabs).  The file 'gcc.patch' (in this
42 directory) can be applied to gcc to fix the problem.  Alternatively, if you
43 can't fix gcc, you can #define GCC_MANGLE_BUG when compling gdb/symtab.c. The
44 usual symptom is difficulty with setting breakpoints on methods.  GDB complains
45 about the method being non-existent.  (We believe that version 2.2.2 of GCC has
46 this problem.)
47
48  * New 'maintenance' command
49
50 All of the commands related to hacking GDB internals have been moved out of
51 the main command set, and now live behind the 'maintenance' command.  This
52 can also be abbreviated as 'mt'.  The following changes were made:
53
54         dump-me ->              maintenance dump-me
55         info all-breakpoints -> maintenance info breakpoints
56         printmsyms ->           maintenance print msyms
57         printobjfiles ->        maintenance print objfiles
58         printpsyms ->           maintenance print psymbols
59         printsyms ->            maintenance print symbols
60
61 The following commands are new:
62
63         maintenance demangle    Call internal GDB demangler routine to
64                                 demangle a C++ link name and prints the result.
65         maintenance print type  Print a type chain for a given symbol
66
67  * Change to .gdbinit file processing
68
69 We now read the $HOME/.gdbinit file before processing the argv arguments
70 (e.g. reading symbol files or core files).  This allows global parameters to
71 be set, which will apply during the symbol reading.  The ./.gdbinit is still
72 read after argv processing.
73
74  * New hosts supported
75
76 Solaris-2.0 !!!                         sparc-sun-solaris2  or  sun4sol2
77
78 Linux support                           i386-unknown-linux  or  linux
79
80 We are also including code to support the HP/PA running BSD and HPUX.  This
81 is almost guaranteed not to work, as we didn't have time to test or build it
82 for this release.  We are including it so that the more adventurous (or
83 masochistic) of you can play with it.  We also had major problems with the
84 fact that the compiler that we got from HP doesn't support the -g option.
85 It costs extra.
86
87  * New targets supported
88
89 Hitachi H8/300                          h8300-hitachi-hms  or  h8300hms
90
91  * More smarts about finding #include files
92
93 GDB now remembers the compilation directory for all include files, and for
94 all files from which C is generated (like yacc and lex sources).  This
95 greatly improves GDB's ability to find yacc/lex sources, and include files,
96 especially if you are debugging your program from a directory different from
97 the one that contains your sources.
98
99 We also fixed a bug which caused difficulty with listing and setting
100 breakpoints in include files which contain C code.  (In the past, you had to
101 try twice in order to list an include file that you hadn't looked at before.)
102
103  * Interesting infernals change
104
105 GDB now deals with arbitrary numbers of sections, where the symbols for each
106 section must be relocated relative to that section's landing place in the
107 target's address space.  This work was needed to support ELF with embedded
108 stabs used by Solaris-2.0.
109
110  * Bug fixes (of course!)
111
112 There have been loads of fixes for the following things:
113         mips, rs6000, 29k/udi, m68k, g++, type handling, elf/dwarf, m88k,
114         i960, stabs, DOS(GO32), procfs, etc...
115
116 See the ChangeLog for details.
117
118 *** Changes in GDB-4.5:
119
120  * New machines supported (host and target)
121
122 IBM RS6000 running AIX                  rs6000-ibm-aix  or rs6000
123
124 SGI Irix-4.x                            mips-sgi-irix4  or iris4
125
126  * New malloc package
127
128 GDB now uses a new memory manager called mmalloc, based on gmalloc.
129 Mmalloc is capable of handling mutiple heaps of memory.  It is also
130 capable of saving a heap to a file, and then mapping it back in later.
131 This can be used to greatly speedup the startup of GDB by using a
132 pre-parsed symbol table which lives in a mmalloc managed heap.  For
133 more details, please read mmalloc/mmalloc.texi.
134
135  * info proc
136
137 The 'info proc' command (SVR4 only) has been enhanced quite a bit.  See
138 'help info proc' for details.
139
140  * MIPS ecoff symbol table format
141
142 The code that reads MIPS symbol table format is now supported on all hosts.
143 Thanks to MIPS for releasing the sym.h and symconst.h files to make this
144 possible.
145
146  * File name changes for MS-DOS
147
148 Many files in the config directories have been renamed to make it easier to
149 support GDB on MS-DOSe systems (which have very restrictive file name
150 conventions :-( ).  MS-DOSe host support (under DJ Delorie's GO32
151 environment) is close to working but has some remaining problems.  Note
152 that debugging of DOS programs is not supported, due to limitations
153 in the ``operating system'', but it can be used to host cross-debugging.
154
155  * Cross byte order fixes
156
157 Many fixes have been made to support cross debugging of Sparc and MIPS
158 targets from hosts whose byte order differs.
159
160  * New -mapped and -readnow options
161
162 If memory-mapped files are available on your system through the 'mmap'
163 system call, you can use the -mapped option on the `file' or
164 `symbol-file' commands to cause GDB to write the symbols from your
165 program into a reusable file.  If the program you are debugging is
166 called `/path/fred', the mapped symbol file will be `./fred.syms'.
167 Future GDB debugging sessions will notice the presence of this file,
168 and will quickly map in symbol information from it, rather than reading
169 the symbol table from the executable program.  Using the '-mapped'
170 option in a GDB `file' or `symbol-file' command has the same effect as
171 starting GDB with the '-mapped' command-line option.
172
173 You can cause GDB to read the entire symbol table immediately by using
174 the '-readnow' option with any of the commands that load symbol table
175 information (or on the GDB command line).  This makes the command
176 slower, but makes future operations faster.
177
178 The -mapped and -readnow options are typically combined in order to
179 build a `fred.syms' file that contains complete symbol information.
180 A simple GDB invocation to do nothing but build a `.syms' file for future
181 use is:
182
183         gdb -batch -nx -mapped -readnow programname
184
185 The `.syms' file is specific to the host machine on which GDB is run.
186 It holds an exact image of GDB's internal symbol table.  It cannot be
187 shared across multiple host platforms.
188
189  * longjmp() handling
190
191 GDB is now capable of stepping and nexting over longjmp(), _longjmp(), and
192 siglongjmp() without losing control.  This feature has not yet been ported to
193 all systems.  It currently works on many 386 platforms, all MIPS-based
194 platforms (SGI, DECstation, etc), and Sun3/4.
195
196  * Solaris 2.0
197
198 Preliminary work has been put in to support the new Solaris OS from Sun.  At
199 this time, it can control and debug processes, but it is not capable of
200 reading symbols.
201
202  * Bug fixes
203
204 As always, many many bug fixes.  The major areas were with g++, and mipsread.
205 People using the MIPS-based platforms should experience fewer mysterious
206 crashes and trashed symbol tables.
207
208 *** Changes in GDB-4.4:
209
210  * New machines supported (host and target)
211
212 SCO Unix on i386 IBM PC clones          i386-sco-sysv   or  i386sco
213         (except core files)
214 BSD Reno on Vax                         vax-dec-bsd
215 Ultrix on Vax                           vax-dec-ultrix
216
217  * New machines supported (target)
218
219 AMD 29000 embedded, using EBMON         a29k-none-none
220
221  * C++ support
222
223 GDB continues to improve its handling of C++.  `References' work better.
224 The demangler has also been improved, and now deals with symbols mangled as
225 per the Annotated C++ Reference Guide.
226
227 GDB also now handles `stabs' symbol information embedded in MIPS
228 `ecoff' symbol tables.  Since the ecoff format was not easily
229 extensible to handle new languages such as C++, this appeared to be a
230 good way to put C++ debugging info into MIPS binaries.  This option
231 will be supported in the GNU C compiler, version 2, when it is
232 released.
233
234  * New features for SVR4
235
236 GDB now handles SVR4 shared libraries, in the same fashion as SunOS
237 shared libraries.  Debugging dynamically linked programs should present
238 only minor differences from debugging statically linked programs.
239
240 The `info proc' command will print out information about any process
241 on an SVR4 system (including the one you are debugging).  At the moment,
242 it prints the address mappings of the process.
243
244 If you bring up GDB on another SVR4 system, please send mail to
245 bug-gdb@prep.ai.mit.edu to let us know what changes were reqired (if any).
246
247  * Better dynamic linking support in SunOS
248
249 Reading symbols from shared libraries which contain debugging symbols
250 now works properly.  However, there remain issues such as automatic
251 skipping of `transfer vector' code during function calls, which
252 make it harder to debug code in a shared library, than to debug the
253 same code linked statically.
254
255  * New Getopt
256
257 GDB is now using the latest `getopt' routines from the FSF.  This
258 version accepts the -- prefix for options with long names.  GDB will
259 continue to accept the old forms (-option and +option) as well.
260 Various single letter abbreviations for options have been explicity
261 added to the option table so that they won't get overshadowed in the
262 future by other options that begin with the same letter.
263
264  * Bugs fixed
265
266 The `cleanup_undefined_types' bug that many of you noticed has been squashed.
267 Many assorted bugs have been handled.  Many more remain to be handled.
268 See the various ChangeLog files (primarily in gdb and bfd) for details.
269
270
271 *** Changes in GDB-4.3:
272
273  * New machines supported (host and target)
274
275 Amiga 3000 running Amix                 m68k-cbm-svr4   or  amix
276 NCR 3000 386 running SVR4               i386-ncr-svr4   or  ncr3000
277 Motorola Delta 88000 running Sys V      m88k-motorola-sysv  or  delta88
278
279  * Almost SCO Unix support
280
281 We had hoped to support:
282 SCO Unix on i386 IBM PC clones          i386-sco-sysv   or  i386sco
283 (except for core file support), but we discovered very late in the release
284 that it has problems with process groups that render gdb unusable.  Sorry
285 about that.  I encourage people to fix it and post the fixes.
286
287  * Preliminary ELF and DWARF support
288
289 GDB can read ELF object files on System V Release 4, and can handle
290 debugging records for C, in DWARF format, in ELF files.  This support
291 is preliminary.  If you bring up GDB on another SVR4 system, please
292 send mail to bug-gdb@prep.ai.mit.edu to let us know what changes were
293 reqired (if any).
294
295  * New Readline
296
297 GDB now uses the latest `readline' library.  One user-visible change
298 is that two tabs will list possible command completions, which previously
299 required typing M-? (meta-question mark, or ESC ?).
300
301  * Bugs fixed
302
303 The `stepi' bug that many of you noticed has been squashed.
304 Many bugs in C++ have been handled.  Many more remain to be handled.
305 See the various ChangeLog files (primarily in gdb and bfd) for details.
306
307  * State of the MIPS world (in case you wondered):
308
309 GDB can understand the symbol tables emitted by the compilers
310 supplied by most vendors of MIPS-based machines, including DEC.  These
311 symbol tables are in a format that essentially nobody else uses.
312
313 Some versions of gcc come with an assembler post-processor called
314 mips-tfile.  This program is required if you want to do source-level
315 debugging of gcc-compiled programs.  I believe FSF does not ship
316 mips-tfile with gcc version 1, but it will eventually come with gcc
317 version 2.
318
319 Debugging of g++ output remains a problem.  g++ version 1.xx does not
320 really support it at all.  (If you're lucky, you should be able to get
321 line numbers and stack traces to work, but no parameters or local
322 variables.)  With some work it should be possible to improve the
323 situation somewhat.
324
325 When gcc version 2 is released, you will have somewhat better luck.
326 However, even then you will get confusing results for inheritance and
327 methods.
328
329 We will eventually provide full debugging of g++ output on
330 DECstations.  This will probably involve some kind of stabs-in-ecoff
331 encapulation, but the details have not been worked out yet.
332
333
334 *** Changes in GDB-4.2:
335
336  *  Improved configuration
337
338 Only one copy of `configure' exists now, and it is not self-modifying.
339 Porting BFD is simpler.  
340
341  *  Stepping improved
342
343 The `step' and `next' commands now only stop at the first instruction
344 of a source line.  This prevents the multiple stops that used to occur
345 in switch statements, for-loops, etc.  `Step' continues to stop if a
346 function that has debugging information is called within the line.
347
348  *  Bug fixing
349
350 Lots of small bugs fixed.  More remain.
351
352  *  New host supported (not target)
353
354 Intel 386 PC clone running Mach         i386-none-mach
355
356
357 *** Changes in GDB-4.1:
358
359  *  Multiple source language support
360
361 GDB now has internal scaffolding to handle several source languages.
362 It determines the type of each source file from its filename extension,
363 and will switch expression parsing and number formatting to match the
364 language of the function in the currently selected stack frame.
365 You can also specifically set the language to be used, with
366 `set language c' or `set language modula-2'.
367
368  *  GDB and Modula-2
369
370 GDB now has preliminary support for the GNU Modula-2 compiler,
371 currently under development at the State University of New York at
372 Buffalo.  Development of both GDB and the GNU Modula-2 compiler will
373 continue through the fall of 1991 and into 1992.
374
375 Other Modula-2 compilers are currently not supported, and attempting to
376 debug programs compiled with them will likely result in an error as the
377 symbol table is read.  Feel free to work on it, though!
378
379 There are hooks in GDB for strict type checking and range checking,
380 in the `Modula-2 philosophy', but they do not currently work.
381
382  * set write on/off
383
384 GDB can now write to executable and core files (e.g. patch
385 a variable's value).   You must turn this switch on, specify
386 the file ("exec foo" or "core foo"), *then* modify it, e.g.
387 by assigning a new value to a variable.  Modifications take
388 effect immediately.
389
390  * Automatic SunOS shared library reading
391
392 When you run your program, GDB automatically determines where its
393 shared libraries (if any) have been loaded, and reads their symbols.
394 The `share' command is no longer needed.  This also works when
395 examining core files.
396
397  * set listsize
398
399 You can specify the number of lines that the `list' command shows.
400 The default is 10.
401
402  * New machines supported (host and target)
403
404 SGI Iris (MIPS) running Irix V3:        mips-sgi-irix   or  iris
405 Sony NEWS (68K) running NEWSOS 3.x:     m68k-sony-sysv  or  news
406 Ultracomputer (29K) running Sym1:       a29k-nyu-sym1   or  ultra3
407
408  * New hosts supported (not targets)
409
410 IBM RT/PC:                              romp-ibm-aix    or  rtpc
411
412  * New targets supported (not hosts)
413
414 AMD 29000 embedded with COFF            a29k-none-coff
415 AMD 29000 embedded with a.out           a29k-none-aout
416 Ultracomputer remote kernel debug       a29k-nyu-kern
417
418  * New remote interfaces
419
420 AMD 29000 Adapt
421 AMD 29000 Minimon
422
423
424 *** Changes in GDB-4.0:
425
426  *  New Facilities
427
428 Wide output is wrapped at good places to make the output more readable.
429
430 Gdb now supports cross-debugging from a host machine of one type to a
431 target machine of another type.  Communication with the target system
432 is over serial lines.  The ``target'' command handles connecting to the
433 remote system; the ``load'' command will download a program into the
434 remote system.  Serial stubs for the m68k and i386 are provided.  Gdb
435 also supports debugging of realtime processes running under VxWorks,
436 using SunRPC Remote Procedure Calls over TCP/IP to talk to a debugger
437 stub on the target system.
438
439 New CPUs supported include the AMD 29000 and Intel 960.
440
441 GDB now reads object files and symbol tables via a ``binary file'' 
442 library, which allows a single copy of GDB to debug programs of multiple
443 object file types such as a.out and coff.
444
445 There is now a GDB reference card in "doc/refcard.tex".  (Make targets
446 refcard.dvi and refcard.ps are available to format it).
447
448
449  *  Control-Variable user interface simplified
450
451 All variables that control the operation of the debugger can be set
452 by the ``set'' command, and displayed by the ``show'' command.
453
454 For example, ``set prompt new-gdb=>'' will change your prompt to new-gdb=>.
455 ``Show prompt'' produces the response:
456 Gdb's prompt is new-gdb=>.
457
458 What follows are the NEW set commands.  The command ``help set'' will
459 print a complete list of old and new set commands.  ``help set FOO''
460 will give a longer description of the variable FOO.  ``show'' will show
461 all of the variable descriptions and their current settings.
462
463 confirm on/off:  Enables warning questions for operations that are
464                  hard to recover from, e.g. rerunning the program while
465                  it is already running.  Default is ON.
466
467 editing on/off:  Enables EMACS style command line editing 
468                  of input.  Previous lines can be recalled with 
469                  control-P, the current line can be edited with control-B,
470                  you can search for commands with control-R, etc.
471                  Default is ON.
472
473 history filename NAME:  NAME is where the gdb command history 
474                         will be stored.  The default is .gdb_history,
475                         or the value of the environment variable
476                         GDBHISTFILE.
477
478 history size N:  The size, in commands, of the command history.  The 
479                  default is 256, or the value of the environment variable
480                  HISTSIZE.
481
482 history save on/off: If this value is set to ON, the history file will
483                       be saved after exiting gdb.  If set to OFF, the 
484                       file will not be saved.  The default is OFF.
485
486 history expansion on/off: If this value is set to ON, then csh-like 
487                           history expansion will be performed  on 
488                           command line input.  The default is OFF.
489
490 radix N:  Sets the default radix for input and output.  It can be set
491           to 8, 10, or 16.  Note that the argument to "radix" is interpreted
492           in the current radix, so "set radix 10" is always a no-op.
493
494 height N: This integer value is the number of lines on a page. Default
495           is 24, the current `stty rows'' setting, or the ``li#''
496           setting from the termcap entry matching the environment
497           variable TERM.
498
499 width N:  This integer value is the number of characters on a line.
500           Default is 80, the current `stty cols'' setting, or the ``co#''
501           setting from the termcap entry matching the environment
502           variable TERM.
503
504 Note: ``set screensize'' is obsolete. Use ``set height'' and
505 ``set width'' instead.
506
507 print address on/off:  Print memory addresses in various command displays,
508                       such as stack traces and structure values.  Gdb looks
509                       more ``symbolic'' if you turn this off; it looks more
510                       ``machine level'' with it on.  Default is ON.
511
512 print array on/off:  Prettyprint arrays.  New convenient format!  Default 
513                     is OFF.
514
515 print demangle on/off:   Print C++ symbols in "source" form if on,
516                         "raw" form if off.
517
518 print asm-demangle on/off:  Same, for assembler level printouts
519                         like instructions.
520
521 print vtbl on/off:  Prettyprint C++ virtual function tables.  Default is OFF.
522
523
524  *  Support for Epoch Environment.
525
526 The epoch environment is a version of Emacs v18 with windowing.  One
527 new command, ``inspect'', is identical to ``print'', except that if you
528 are running in the epoch environment, the value is printed in its own
529 window.
530
531
532  *  Support for Shared Libraries
533
534 GDB can now debug programs and core files that use SunOS shared libraries.
535 Symbols from a shared library cannot be referenced
536 before the shared library has been linked with the program (this
537 happens after you type ``run'' and before the function main() is entered).
538 At any time after this linking (including when examining core files
539 from dynamically linked programs), gdb reads the symbols from each
540 shared library when you type the ``sharedlibrary'' command.
541 It can be abbreviated ``share''.
542
543 sharedlibrary REGEXP:  Load shared object library symbols for files 
544                        matching a unix regular expression.  No argument
545                        indicates to load symbols for all shared libraries.
546
547 info sharedlibrary:  Status of loaded shared libraries.
548
549
550  *  Watchpoints
551
552 A watchpoint stops execution of a program whenever the value of an
553 expression changes.  Checking for this slows down execution
554 tremendously whenever you are in the scope of the expression, but is
555 quite useful for catching tough ``bit-spreader'' or pointer misuse
556 problems.  Some machines such as the 386 have hardware for doing this
557 more quickly, and future versions of gdb will use this hardware.
558
559 watch EXP:  Set a watchpoint (breakpoint) for an expression.
560
561 info watchpoints:  Information about your watchpoints.
562
563 delete N:   Deletes watchpoint number N (same as breakpoints).
564 disable N:  Temporarily turns off watchpoint number N (same as breakpoints).
565 enable N:   Re-enables watchpoint number N (same as breakpoints).
566
567
568  *  C++ multiple inheritance
569
570 When used with a GCC version 2 compiler, GDB supports multiple inheritance
571 for C++ programs.
572
573  *  C++ exception handling
574
575 Gdb now supports limited C++ exception handling.  Besides the existing
576 ability to breakpoint on an exception handler, gdb can breakpoint on
577 the raising of an exception (before the stack is peeled back to the
578 handler's context).
579
580 catch FOO:  If there is a FOO exception handler in the dynamic scope,
581             set a breakpoint to catch exceptions which may be raised there.
582             Multiple exceptions (``catch foo bar baz'') may be caught.
583
584 info catch:  Lists all exceptions which may be caught in the
585              current stack frame.
586
587
588  *  Minor command changes
589
590 The command ``call func (arg, arg, ...)'' now acts like the print
591 command, except it does not print or save a value if the function's result
592 is void.  This is similar to dbx usage.
593
594 The ``up'' and ``down'' commands now always print the frame they end up
595 at; ``up-silently'' and `down-silently'' can be used in scripts to change
596 frames without printing.
597
598  *  New directory command
599
600 'dir' now adds directories to the FRONT of the source search path.
601 The path starts off empty.  Source files that contain debug information
602 about the directory in which they were compiled can be found even
603 with an empty path; Sun CC and GCC include this information.  If GDB can't
604 find your source file in the current directory, type "dir .".
605
606  * Configuring GDB for compilation
607
608 For normal use, type ``./configure host''.  See README or gdb.texinfo
609 for more details.
610
611 GDB now handles cross debugging.  If you are remotely debugging between 
612 two different machines, type ``./configure host -target=targ''.
613 Host is the machine where GDB will run; targ is the machine
614 where the program that you are debugging will run.