Lint fixes from Paul Eggert (eggert@twinsun.com):
[deliverable/binutils-gdb.git] / gdb / NEWS
1 What has changed since GDB-3.5?
2 (Organized release by release)
3
4 *** Changes in GDB-4.9:
5
6 (This is a prototype to remind us of things that should be announced
7 in the next release...)
8
9 'Cfront' style demangling has had its name changed to 'ARM' style, to
10 emphasize that it was written from the specifications in the Annotated
11 Reference Manual, not to be compatible with AT&T cfront. Despite disclaimers,
12 it still generated too much confusion with users attempting to use gdb with
13 AT&T cfront.
14
15 H8/300 simulator
16 H8/500 simulator (probably by the next release)
17 Z8000 family simulator
18
19 Cross-debugging to GO32 targets is supported. It requires a custom
20 version of the i386-stub.c module which is integrated with the
21 GO32 memory extender. Msg follows:
22
23
24 Date: Tue, 16 Feb 93 02:34:20 EST
25 From: "Mark W. Eichin" <eichin@cygnus.com>
26 Message-Id: <9302160734.AA09302@tweedledumb.cygnus.com>
27 To: gnu@cygnus.com
28 Cc: ian@cygnus.com, gnu@cygnus.com, gumby@cygnus.com, gdb@cygnus.com
29 In-Reply-To: gnu@cygnus.com's message of Mon, 15 Feb 93 22:30:09 -0800 <9302160630.AA00786@cygnus.com>
30 Subject: GO32 debugging in devo/gdb
31
32 SUB: GO32 debugging in devo/gdb
33 SUM: <gnu>, gnu->eichin, ian, gnu, gumby, gdb
34
35 My impression is that devo/gdb supports remote debugging of GO32 programs.
36 Is this true?
37
38 Yes. I think that even the 4.7 release had everything needed.
39
40 What does a user have to have in the GO32 environment in order to do this?
41 (My guess: our custom-modified GO32. Did we send the changes back to
42 DJ and did they ever get integrated into the standard GO32?)
43
44 I asked DJ if he wanted the changes; at the time, he was very busy
45 having a daughter. He's back on the net now, I'll give him another
46 try. My changes are to GO32 1.07 and the entire source (and an
47 executable) are checked in to cvs; the current GO32 is 1.08, I haven't
48 tried updating the changes.
49
50 What does a user have to actually do in GO32 in order for this to work?
51 E.g. there seems to be no user-level documentation for this feature.
52
53 GO32 includes "go32.exe" and "debug32.exe"; my version is
54 "dser32.exe". With a serial link on com1 to the host, use the mode
55 command on the target to set the baud rate, then "dser32 a.out" and
56 start up gdb (configured -target go32), target remote /dev/ttya.
57 Shoudl just work from there.
58
59 I'm wondering if we can announce this as part of what's supported in
60 gdb-4.8.
61
62 The hard part is the extender itself -- it needs to be built with a
63 native 16-bit compiler (such as Turbo C with Turbo Assembler -- about
64 $300 in software, which I do own -- and the assembly code uses enough
65 high level features (like structs) that it isn't portable to other
66 assemblers.) We have no way to build it with any free tools. I think
67 we can ship (or at least make available) the executable for the DOS
68 side, I don't think Turbo C has any runtime restrictions.
69
70 _Mark_
71
72 *** Changes in GDB-4.8:
73
74 * HP Precision Architecture supported
75
76 GDB now supports HP PA-RISC machines running HPUX. A preliminary
77 version of this support was available as a set of patches from the
78 University of Utah. GDB does not support debugging of programs
79 compiled with the HP compiler, because HP will not document their file
80 format. Instead, you must use GCC (version 2.3.2 or later) and PA-GAS
81 (as available from jaguar.cs.utah.edu:/dist/pa-gas.u4.tar.Z).
82
83 Many problems in the preliminary version have been fixed.
84
85 * Faster and better demangling
86
87 We have improved template demangling and fixed numerous bugs in the GNU style
88 demangler. It can now handle type modifiers such as `static' or `const'. Wide
89 character types (wchar_t) are now supported. Demangling of each symbol is now
90 only done once, and is cached when the symbol table for a file is read in.
91 This results in a small increase in memory usage for C programs, a moderate
92 increase in memory usage for C++ programs, and a fantastic speedup in
93 symbol lookups.
94
95 `Cfront' style demangling still doesn't work with AT&T cfront. It was written
96 from the specifications in the Annotated Reference Manual, which AT&T's
97 compiler does not actually implement.
98
99 * G++ multiple inheritance compiler problem
100
101 In the 2.3.2 release of gcc/g++, how the compiler resolves multiple
102 inheritance lattices was reworked to properly discover ambiguities. We
103 recently found an example which causes this new algorithm to fail in a
104 very subtle way, producing bad debug information for those classes.
105 The file 'gcc.patch' (in this directory) can be applied to gcc to
106 circumvent the problem. A future GCC release will contain a complete
107 fix.
108
109 The previous G++ debug info problem (mentioned below for the gdb-4.7
110 release) is fixed in gcc version 2.3.2.
111
112 * Improved configure script
113
114 The `configure' script will now attempt to guess your system type if
115 you don't supply a host system type. The old scheme of supplying a
116 host system triplet is preferable over using this. All the magic is
117 done in the new `config.guess' script. Examine it for details.
118
119 We have also brought our configure script much more in line with the FSF's
120 version. It now supports the --with-xxx options. In particular,
121 `--with-minimal-bfd' can be used to make the GDB binary image smaller.
122 The resulting GDB will not be able to read arbitrary object file formats --
123 only the format ``expected'' to be used on the configured target system.
124 We hope to make this the default in a future release.
125
126 * Documentation improvements
127
128 There's new internal documentation on how to modify GDB, and how to
129 produce clean changes to the code. We implore people to read it
130 before submitting changes.
131
132 The GDB manual uses new, sexy Texinfo conditionals, rather than arcane
133 M4 macros. The new texinfo.tex is provided in this release. Pre-built
134 `info' files are also provided. To build `info' files from scratch,
135 you will need the latest `makeinfo' release, which will be available in
136 a future texinfo-X.Y release.
137
138 *NOTE* The new texinfo.tex can cause old versions of TeX to hang.
139 We're not sure exactly which versions have this problem, but it has
140 been seen in 3.0. We highly recommend upgrading to TeX version 3.141
141 or better. If that isn't possible, there is a patch in
142 `texinfo/tex3patch' that will modify `texinfo/texinfo.tex' to work
143 around this problem.
144
145 * New features
146
147 GDB now supports array constants that can be used in expressions typed in by
148 the user. The syntax is `{element, element, ...}'. Ie: you can now type
149 `print {1, 2, 3}', and it will build up an array in memory malloc'd in
150 the target program.
151
152 The new directory `gdb/sparclite' contains a program that demonstrates
153 how the sparc-stub.c remote stub runs on a Fujitsu SPARClite processor.
154
155 * New native hosts supported
156
157 HP/PA-RISC under HPUX using GNU tools hppa1.1-hp-hpux
158 386 CPUs running SCO Unix 3.2v4 i386-unknown-sco3.2v4
159
160 * New targets supported
161
162 AMD 29k family via UDI a29k-amd-udi or udi29k
163
164 * New file formats supported
165
166 BFD now supports reading HP/PA-RISC executables (SOM file format?),
167 HPUX core files, and SCO 3.2v2 core files.
168
169 * Major bug fixes
170
171 Attaching to processes now works again; thanks for the many bug reports.
172
173 We have also stomped on a bunch of core dumps caused by
174 printf_filtered("%s") problems.
175
176 We eliminated a copyright problem on the rpc and ptrace header files
177 for VxWorks, which was discovered at the last minute during the 4.7
178 release. You should now be able to build a VxWorks GDB.
179
180 You can now interrupt gdb while an attached process is running. This
181 will cause the attached process to stop, and give control back to GDB.
182
183 We fixed problems caused by using too many file descriptors
184 for reading symbols from object files and libraries. This was
185 especially a problem for programs that used many (~100) shared
186 libraries.
187
188 The `step' command now only enters a subroutine if there is line number
189 information for the subroutine. Otherwise it acts like the `next'
190 command. Previously, `step' would enter subroutines if there was
191 any debugging information about the routine. This avoids problems
192 when using `cc -g1' on MIPS machines.
193
194 * Internal improvements
195
196 GDB's internal interfaces have been improved to make it easier to support
197 debugging of multiple languages in the future.
198
199 GDB now uses a common structure for symbol information internally.
200 Minimal symbols (derived from linkage symbols in object files), partial
201 symbols (from a quick scan of debug information), and full symbols
202 contain a common subset of information, making it easier to write
203 shared code that handles any of them.
204
205 * New command line options
206
207 We now accept --silent as an alias for --quiet.
208
209 * Mmalloc licensing
210
211 The memory-mapped-malloc library is now licensed under the GNU Library
212 General Public License.
213
214 *** Changes in GDB-4.7:
215
216 * Host/native/target split
217
218 GDB has had some major internal surgery to untangle the support for
219 hosts and remote targets. Now, when you configure GDB for a remote
220 target, it will no longer load in all of the support for debugging
221 local programs on the host. When fully completed and tested, this will
222 ensure that arbitrary host/target combinations are possible.
223
224 The primary conceptual shift is to separate the non-portable code in
225 GDB into three categories. Host specific code is required any time GDB
226 is compiled on that host, regardless of the target. Target specific
227 code relates to the peculiarities of the target, but can be compiled on
228 any host. Native specific code is everything else: it can only be
229 built when the host and target are the same system. Child process
230 handling and core file support are two common `native' examples.
231
232 GDB's use of /proc for controlling Unix child processes is now cleaner.
233 It has been split out into a single module under the `target_ops' vector,
234 plus two native-dependent functions for each system that uses /proc.
235
236 * New hosts supported
237
238 HP/Apollo 68k (under the BSD domain) m68k-apollo-bsd or apollo68bsd
239 386 CPUs running various BSD ports i386-unknown-bsd or 386bsd
240 386 CPUs running SCO Unix i386-unknown-scosysv322 or i386sco
241
242 * New targets supported
243
244 Fujitsu SPARClite sparclite-fujitsu-none or sparclite
245 68030 and CPU32 m68030-*-*, m68332-*-*
246
247 * New native hosts supported
248
249 386 CPUs running various BSD ports i386-unknown-bsd or 386bsd
250 (386bsd is not well tested yet)
251 386 CPUs running SCO Unix i386-unknown-scosysv322 or sco
252
253 * New file formats supported
254
255 BFD now supports COFF files for the Zilog Z8000 microprocessor. It
256 supports reading of `a.out.adobe' object files, which are an a.out
257 format extended with minimal information about multiple sections.
258
259 * New commands
260
261 `show copying' is the same as the old `info copying'.
262 `show warranty' is the same as `info warrantee'.
263 These were renamed for consistency. The old commands continue to work.
264
265 `info handle' is a new alias for `info signals'.
266
267 You can now define pre-command hooks, which attach arbitrary command
268 scripts to any command. The commands in the hook will be executed
269 prior to the user's command. You can also create a hook which will be
270 executed whenever the program stops. See gdb.texinfo.
271
272 * C++ improvements
273
274 We now deal with Cfront style name mangling, and can even extract type
275 info from mangled symbols. GDB can automatically figure out which
276 symbol mangling style your C++ compiler uses.
277
278 Calling of methods and virtual functions has been improved as well.
279
280 * Major bug fixes
281
282 The crash that occured when debugging Sun Ansi-C compiled binaries is
283 fixed. This was due to mishandling of the extra N_SO stabs output
284 by the compiler.
285
286 We also finally got Ultrix 4.2 running in house, and fixed core file
287 support, with help from a dozen people on the net.
288
289 John M. Farrell discovered that the reason that single-stepping was so
290 slow on all of the Mips based platforms (primarily SGI and DEC) was
291 that we were trying to demangle and lookup a symbol used for internal
292 purposes on every instruction that was being stepped through. Changing
293 the name of that symbol so that it couldn't be mistaken for a C++
294 mangled symbol sped things up a great deal.
295
296 Rich Pixley sped up symbol lookups in general by getting much smarter
297 about when C++ symbol mangling is necessary. This should make symbol
298 completion (TAB on the command line) much faster. It's not as fast as
299 we'd like, but it's significantly faster than gdb-4.6.
300
301 * AMD 29k support
302
303 A new user controllable variable 'call_scratch_address' can
304 specify the location of a scratch area to be used when GDB
305 calls a function in the target. This is necessary because the
306 usual method of putting the scratch area on the stack does not work
307 in systems that have separate instruction and data spaces.
308
309 We integrated changes to support the 29k UDI (Universal Debugger
310 Interface), but discovered at the last minute that we didn't have all
311 of the appropriate copyright paperwork. We are working with AMD to
312 resolve this, and hope to have it available soon.
313
314 * Remote interfaces
315
316 We have sped up the remote serial line protocol, especially for targets
317 with lots of registers. It now supports a new `expedited status' ('T')
318 message which can be used in place of the existing 'S' status message.
319 This allows the remote stub to send only the registers that GDB
320 needs to make a quick decision about single-stepping or conditional
321 breakpoints, eliminating the need to fetch the entire register set for
322 each instruction being stepped through.
323
324 The GDB remote serial protocol now implements a write-through cache for
325 registers, only re-reading the registers if the target has run.
326
327 There is also a new remote serial stub for SPARC processors. You can
328 find it in gdb-4.7/gdb/sparc-stub.c. This was written to support the
329 Fujitsu SPARClite processor, but will run on any stand-alone SPARC
330 processor with a serial port.
331
332 * Configuration
333
334 Configure.in files have become much easier to read and modify. A new
335 `table driven' format makes it more obvious what configurations are
336 supported, and what files each one uses.
337
338 * Library changes
339
340 There is a new opcodes library which will eventually contain all of the
341 disassembly routines and opcode tables. At present, it only contains
342 Sparc and Z8000 routines. This will allow the assembler, debugger, and
343 disassembler (binutils/objdump) to share these routines.
344
345 The libiberty library is now copylefted under the GNU Library General
346 Public License. This allows more liberal use, and was done so libg++
347 can use it. This makes no difference to GDB, since the Library License
348 grants all the rights from the General Public License.
349
350 * Documentation
351
352 The file gdb-4.7/gdb/doc/stabs.texinfo is a (relatively) complete
353 reference to the stabs symbol info used by the debugger. It is (as far
354 as we know) the only published document on this fascinating topic. We
355 encourage you to read it, compare it to the stabs information on your
356 system, and send improvements on the document in general (to
357 bug-gdb@prep.ai.mit.edu).
358
359 And, of course, many bugs have been fixed.
360
361
362 *** Changes in GDB-4.6:
363
364 * Better support for C++ function names
365
366 GDB now accepts as input the "demangled form" of C++ overloaded function
367 names and member function names, and can do command completion on such names
368 (using TAB, TAB-TAB, and ESC-?). The names have to be quoted with a pair of
369 single quotes. Examples are 'func (int, long)' and 'obj::operator==(obj&)'.
370 Make use of command completion, it is your friend.
371
372 GDB also now accepts a variety of C++ mangled symbol formats. They are
373 the GNU g++ style, the Cfront (ARM) style, and the Lucid (lcc) style.
374 You can tell GDB which format to use by doing a 'set demangle-style {gnu,
375 lucid, cfront, auto}'. 'gnu' is the default. Do a 'set demangle-style foo'
376 for the list of formats.
377
378 * G++ symbol mangling problem
379
380 Recent versions of gcc have a bug in how they emit debugging information for
381 C++ methods (when using dbx-style stabs). The file 'gcc.patch' (in this
382 directory) can be applied to gcc to fix the problem. Alternatively, if you
383 can't fix gcc, you can #define GCC_MANGLE_BUG when compling gdb/symtab.c. The
384 usual symptom is difficulty with setting breakpoints on methods. GDB complains
385 about the method being non-existent. (We believe that version 2.2.2 of GCC has
386 this problem.)
387
388 * New 'maintenance' command
389
390 All of the commands related to hacking GDB internals have been moved out of
391 the main command set, and now live behind the 'maintenance' command. This
392 can also be abbreviated as 'mt'. The following changes were made:
393
394 dump-me -> maintenance dump-me
395 info all-breakpoints -> maintenance info breakpoints
396 printmsyms -> maintenance print msyms
397 printobjfiles -> maintenance print objfiles
398 printpsyms -> maintenance print psymbols
399 printsyms -> maintenance print symbols
400
401 The following commands are new:
402
403 maintenance demangle Call internal GDB demangler routine to
404 demangle a C++ link name and prints the result.
405 maintenance print type Print a type chain for a given symbol
406
407 * Change to .gdbinit file processing
408
409 We now read the $HOME/.gdbinit file before processing the argv arguments
410 (e.g. reading symbol files or core files). This allows global parameters to
411 be set, which will apply during the symbol reading. The ./.gdbinit is still
412 read after argv processing.
413
414 * New hosts supported
415
416 Solaris-2.0 !!! sparc-sun-solaris2 or sun4sol2
417
418 Linux support i386-unknown-linux or linux
419
420 We are also including code to support the HP/PA running BSD and HPUX. This
421 is almost guaranteed not to work, as we didn't have time to test or build it
422 for this release. We are including it so that the more adventurous (or
423 masochistic) of you can play with it. We also had major problems with the
424 fact that the compiler that we got from HP doesn't support the -g option.
425 It costs extra.
426
427 * New targets supported
428
429 Hitachi H8/300 h8300-hitachi-hms or h8300hms
430
431 * More smarts about finding #include files
432
433 GDB now remembers the compilation directory for all include files, and for
434 all files from which C is generated (like yacc and lex sources). This
435 greatly improves GDB's ability to find yacc/lex sources, and include files,
436 especially if you are debugging your program from a directory different from
437 the one that contains your sources.
438
439 We also fixed a bug which caused difficulty with listing and setting
440 breakpoints in include files which contain C code. (In the past, you had to
441 try twice in order to list an include file that you hadn't looked at before.)
442
443 * Interesting infernals change
444
445 GDB now deals with arbitrary numbers of sections, where the symbols for each
446 section must be relocated relative to that section's landing place in the
447 target's address space. This work was needed to support ELF with embedded
448 stabs used by Solaris-2.0.
449
450 * Bug fixes (of course!)
451
452 There have been loads of fixes for the following things:
453 mips, rs6000, 29k/udi, m68k, g++, type handling, elf/dwarf, m88k,
454 i960, stabs, DOS(GO32), procfs, etc...
455
456 See the ChangeLog for details.
457
458 *** Changes in GDB-4.5:
459
460 * New machines supported (host and target)
461
462 IBM RS6000 running AIX rs6000-ibm-aix or rs6000
463
464 SGI Irix-4.x mips-sgi-irix4 or iris4
465
466 * New malloc package
467
468 GDB now uses a new memory manager called mmalloc, based on gmalloc.
469 Mmalloc is capable of handling mutiple heaps of memory. It is also
470 capable of saving a heap to a file, and then mapping it back in later.
471 This can be used to greatly speedup the startup of GDB by using a
472 pre-parsed symbol table which lives in a mmalloc managed heap. For
473 more details, please read mmalloc/mmalloc.texi.
474
475 * info proc
476
477 The 'info proc' command (SVR4 only) has been enhanced quite a bit. See
478 'help info proc' for details.
479
480 * MIPS ecoff symbol table format
481
482 The code that reads MIPS symbol table format is now supported on all hosts.
483 Thanks to MIPS for releasing the sym.h and symconst.h files to make this
484 possible.
485
486 * File name changes for MS-DOS
487
488 Many files in the config directories have been renamed to make it easier to
489 support GDB on MS-DOSe systems (which have very restrictive file name
490 conventions :-( ). MS-DOSe host support (under DJ Delorie's GO32
491 environment) is close to working but has some remaining problems. Note
492 that debugging of DOS programs is not supported, due to limitations
493 in the ``operating system'', but it can be used to host cross-debugging.
494
495 * Cross byte order fixes
496
497 Many fixes have been made to support cross debugging of Sparc and MIPS
498 targets from hosts whose byte order differs.
499
500 * New -mapped and -readnow options
501
502 If memory-mapped files are available on your system through the 'mmap'
503 system call, you can use the -mapped option on the `file' or
504 `symbol-file' commands to cause GDB to write the symbols from your
505 program into a reusable file. If the program you are debugging is
506 called `/path/fred', the mapped symbol file will be `./fred.syms'.
507 Future GDB debugging sessions will notice the presence of this file,
508 and will quickly map in symbol information from it, rather than reading
509 the symbol table from the executable program. Using the '-mapped'
510 option in a GDB `file' or `symbol-file' command has the same effect as
511 starting GDB with the '-mapped' command-line option.
512
513 You can cause GDB to read the entire symbol table immediately by using
514 the '-readnow' option with any of the commands that load symbol table
515 information (or on the GDB command line). This makes the command
516 slower, but makes future operations faster.
517
518 The -mapped and -readnow options are typically combined in order to
519 build a `fred.syms' file that contains complete symbol information.
520 A simple GDB invocation to do nothing but build a `.syms' file for future
521 use is:
522
523 gdb -batch -nx -mapped -readnow programname
524
525 The `.syms' file is specific to the host machine on which GDB is run.
526 It holds an exact image of GDB's internal symbol table. It cannot be
527 shared across multiple host platforms.
528
529 * longjmp() handling
530
531 GDB is now capable of stepping and nexting over longjmp(), _longjmp(), and
532 siglongjmp() without losing control. This feature has not yet been ported to
533 all systems. It currently works on many 386 platforms, all MIPS-based
534 platforms (SGI, DECstation, etc), and Sun3/4.
535
536 * Solaris 2.0
537
538 Preliminary work has been put in to support the new Solaris OS from Sun. At
539 this time, it can control and debug processes, but it is not capable of
540 reading symbols.
541
542 * Bug fixes
543
544 As always, many many bug fixes. The major areas were with g++, and mipsread.
545 People using the MIPS-based platforms should experience fewer mysterious
546 crashes and trashed symbol tables.
547
548 *** Changes in GDB-4.4:
549
550 * New machines supported (host and target)
551
552 SCO Unix on i386 IBM PC clones i386-sco-sysv or i386sco
553 (except core files)
554 BSD Reno on Vax vax-dec-bsd
555 Ultrix on Vax vax-dec-ultrix
556
557 * New machines supported (target)
558
559 AMD 29000 embedded, using EBMON a29k-none-none
560
561 * C++ support
562
563 GDB continues to improve its handling of C++. `References' work better.
564 The demangler has also been improved, and now deals with symbols mangled as
565 per the Annotated C++ Reference Guide.
566
567 GDB also now handles `stabs' symbol information embedded in MIPS
568 `ecoff' symbol tables. Since the ecoff format was not easily
569 extensible to handle new languages such as C++, this appeared to be a
570 good way to put C++ debugging info into MIPS binaries. This option
571 will be supported in the GNU C compiler, version 2, when it is
572 released.
573
574 * New features for SVR4
575
576 GDB now handles SVR4 shared libraries, in the same fashion as SunOS
577 shared libraries. Debugging dynamically linked programs should present
578 only minor differences from debugging statically linked programs.
579
580 The `info proc' command will print out information about any process
581 on an SVR4 system (including the one you are debugging). At the moment,
582 it prints the address mappings of the process.
583
584 If you bring up GDB on another SVR4 system, please send mail to
585 bug-gdb@prep.ai.mit.edu to let us know what changes were reqired (if any).
586
587 * Better dynamic linking support in SunOS
588
589 Reading symbols from shared libraries which contain debugging symbols
590 now works properly. However, there remain issues such as automatic
591 skipping of `transfer vector' code during function calls, which
592 make it harder to debug code in a shared library, than to debug the
593 same code linked statically.
594
595 * New Getopt
596
597 GDB is now using the latest `getopt' routines from the FSF. This
598 version accepts the -- prefix for options with long names. GDB will
599 continue to accept the old forms (-option and +option) as well.
600 Various single letter abbreviations for options have been explicity
601 added to the option table so that they won't get overshadowed in the
602 future by other options that begin with the same letter.
603
604 * Bugs fixed
605
606 The `cleanup_undefined_types' bug that many of you noticed has been squashed.
607 Many assorted bugs have been handled. Many more remain to be handled.
608 See the various ChangeLog files (primarily in gdb and bfd) for details.
609
610
611 *** Changes in GDB-4.3:
612
613 * New machines supported (host and target)
614
615 Amiga 3000 running Amix m68k-cbm-svr4 or amix
616 NCR 3000 386 running SVR4 i386-ncr-svr4 or ncr3000
617 Motorola Delta 88000 running Sys V m88k-motorola-sysv or delta88
618
619 * Almost SCO Unix support
620
621 We had hoped to support:
622 SCO Unix on i386 IBM PC clones i386-sco-sysv or i386sco
623 (except for core file support), but we discovered very late in the release
624 that it has problems with process groups that render gdb unusable. Sorry
625 about that. I encourage people to fix it and post the fixes.
626
627 * Preliminary ELF and DWARF support
628
629 GDB can read ELF object files on System V Release 4, and can handle
630 debugging records for C, in DWARF format, in ELF files. This support
631 is preliminary. If you bring up GDB on another SVR4 system, please
632 send mail to bug-gdb@prep.ai.mit.edu to let us know what changes were
633 reqired (if any).
634
635 * New Readline
636
637 GDB now uses the latest `readline' library. One user-visible change
638 is that two tabs will list possible command completions, which previously
639 required typing M-? (meta-question mark, or ESC ?).
640
641 * Bugs fixed
642
643 The `stepi' bug that many of you noticed has been squashed.
644 Many bugs in C++ have been handled. Many more remain to be handled.
645 See the various ChangeLog files (primarily in gdb and bfd) for details.
646
647 * State of the MIPS world (in case you wondered):
648
649 GDB can understand the symbol tables emitted by the compilers
650 supplied by most vendors of MIPS-based machines, including DEC. These
651 symbol tables are in a format that essentially nobody else uses.
652
653 Some versions of gcc come with an assembler post-processor called
654 mips-tfile. This program is required if you want to do source-level
655 debugging of gcc-compiled programs. I believe FSF does not ship
656 mips-tfile with gcc version 1, but it will eventually come with gcc
657 version 2.
658
659 Debugging of g++ output remains a problem. g++ version 1.xx does not
660 really support it at all. (If you're lucky, you should be able to get
661 line numbers and stack traces to work, but no parameters or local
662 variables.) With some work it should be possible to improve the
663 situation somewhat.
664
665 When gcc version 2 is released, you will have somewhat better luck.
666 However, even then you will get confusing results for inheritance and
667 methods.
668
669 We will eventually provide full debugging of g++ output on
670 DECstations. This will probably involve some kind of stabs-in-ecoff
671 encapulation, but the details have not been worked out yet.
672
673
674 *** Changes in GDB-4.2:
675
676 * Improved configuration
677
678 Only one copy of `configure' exists now, and it is not self-modifying.
679 Porting BFD is simpler.
680
681 * Stepping improved
682
683 The `step' and `next' commands now only stop at the first instruction
684 of a source line. This prevents the multiple stops that used to occur
685 in switch statements, for-loops, etc. `Step' continues to stop if a
686 function that has debugging information is called within the line.
687
688 * Bug fixing
689
690 Lots of small bugs fixed. More remain.
691
692 * New host supported (not target)
693
694 Intel 386 PC clone running Mach i386-none-mach
695
696
697 *** Changes in GDB-4.1:
698
699 * Multiple source language support
700
701 GDB now has internal scaffolding to handle several source languages.
702 It determines the type of each source file from its filename extension,
703 and will switch expression parsing and number formatting to match the
704 language of the function in the currently selected stack frame.
705 You can also specifically set the language to be used, with
706 `set language c' or `set language modula-2'.
707
708 * GDB and Modula-2
709
710 GDB now has preliminary support for the GNU Modula-2 compiler,
711 currently under development at the State University of New York at
712 Buffalo. Development of both GDB and the GNU Modula-2 compiler will
713 continue through the fall of 1991 and into 1992.
714
715 Other Modula-2 compilers are currently not supported, and attempting to
716 debug programs compiled with them will likely result in an error as the
717 symbol table is read. Feel free to work on it, though!
718
719 There are hooks in GDB for strict type checking and range checking,
720 in the `Modula-2 philosophy', but they do not currently work.
721
722 * set write on/off
723
724 GDB can now write to executable and core files (e.g. patch
725 a variable's value). You must turn this switch on, specify
726 the file ("exec foo" or "core foo"), *then* modify it, e.g.
727 by assigning a new value to a variable. Modifications take
728 effect immediately.
729
730 * Automatic SunOS shared library reading
731
732 When you run your program, GDB automatically determines where its
733 shared libraries (if any) have been loaded, and reads their symbols.
734 The `share' command is no longer needed. This also works when
735 examining core files.
736
737 * set listsize
738
739 You can specify the number of lines that the `list' command shows.
740 The default is 10.
741
742 * New machines supported (host and target)
743
744 SGI Iris (MIPS) running Irix V3: mips-sgi-irix or iris
745 Sony NEWS (68K) running NEWSOS 3.x: m68k-sony-sysv or news
746 Ultracomputer (29K) running Sym1: a29k-nyu-sym1 or ultra3
747
748 * New hosts supported (not targets)
749
750 IBM RT/PC: romp-ibm-aix or rtpc
751
752 * New targets supported (not hosts)
753
754 AMD 29000 embedded with COFF a29k-none-coff
755 AMD 29000 embedded with a.out a29k-none-aout
756 Ultracomputer remote kernel debug a29k-nyu-kern
757
758 * New remote interfaces
759
760 AMD 29000 Adapt
761 AMD 29000 Minimon
762
763
764 *** Changes in GDB-4.0:
765
766 * New Facilities
767
768 Wide output is wrapped at good places to make the output more readable.
769
770 Gdb now supports cross-debugging from a host machine of one type to a
771 target machine of another type. Communication with the target system
772 is over serial lines. The ``target'' command handles connecting to the
773 remote system; the ``load'' command will download a program into the
774 remote system. Serial stubs for the m68k and i386 are provided. Gdb
775 also supports debugging of realtime processes running under VxWorks,
776 using SunRPC Remote Procedure Calls over TCP/IP to talk to a debugger
777 stub on the target system.
778
779 New CPUs supported include the AMD 29000 and Intel 960.
780
781 GDB now reads object files and symbol tables via a ``binary file''
782 library, which allows a single copy of GDB to debug programs of multiple
783 object file types such as a.out and coff.
784
785 There is now a GDB reference card in "doc/refcard.tex". (Make targets
786 refcard.dvi and refcard.ps are available to format it).
787
788
789 * Control-Variable user interface simplified
790
791 All variables that control the operation of the debugger can be set
792 by the ``set'' command, and displayed by the ``show'' command.
793
794 For example, ``set prompt new-gdb=>'' will change your prompt to new-gdb=>.
795 ``Show prompt'' produces the response:
796 Gdb's prompt is new-gdb=>.
797
798 What follows are the NEW set commands. The command ``help set'' will
799 print a complete list of old and new set commands. ``help set FOO''
800 will give a longer description of the variable FOO. ``show'' will show
801 all of the variable descriptions and their current settings.
802
803 confirm on/off: Enables warning questions for operations that are
804 hard to recover from, e.g. rerunning the program while
805 it is already running. Default is ON.
806
807 editing on/off: Enables EMACS style command line editing
808 of input. Previous lines can be recalled with
809 control-P, the current line can be edited with control-B,
810 you can search for commands with control-R, etc.
811 Default is ON.
812
813 history filename NAME: NAME is where the gdb command history
814 will be stored. The default is .gdb_history,
815 or the value of the environment variable
816 GDBHISTFILE.
817
818 history size N: The size, in commands, of the command history. The
819 default is 256, or the value of the environment variable
820 HISTSIZE.
821
822 history save on/off: If this value is set to ON, the history file will
823 be saved after exiting gdb. If set to OFF, the
824 file will not be saved. The default is OFF.
825
826 history expansion on/off: If this value is set to ON, then csh-like
827 history expansion will be performed on
828 command line input. The default is OFF.
829
830 radix N: Sets the default radix for input and output. It can be set
831 to 8, 10, or 16. Note that the argument to "radix" is interpreted
832 in the current radix, so "set radix 10" is always a no-op.
833
834 height N: This integer value is the number of lines on a page. Default
835 is 24, the current `stty rows'' setting, or the ``li#''
836 setting from the termcap entry matching the environment
837 variable TERM.
838
839 width N: This integer value is the number of characters on a line.
840 Default is 80, the current `stty cols'' setting, or the ``co#''
841 setting from the termcap entry matching the environment
842 variable TERM.
843
844 Note: ``set screensize'' is obsolete. Use ``set height'' and
845 ``set width'' instead.
846
847 print address on/off: Print memory addresses in various command displays,
848 such as stack traces and structure values. Gdb looks
849 more ``symbolic'' if you turn this off; it looks more
850 ``machine level'' with it on. Default is ON.
851
852 print array on/off: Prettyprint arrays. New convenient format! Default
853 is OFF.
854
855 print demangle on/off: Print C++ symbols in "source" form if on,
856 "raw" form if off.
857
858 print asm-demangle on/off: Same, for assembler level printouts
859 like instructions.
860
861 print vtbl on/off: Prettyprint C++ virtual function tables. Default is OFF.
862
863
864 * Support for Epoch Environment.
865
866 The epoch environment is a version of Emacs v18 with windowing. One
867 new command, ``inspect'', is identical to ``print'', except that if you
868 are running in the epoch environment, the value is printed in its own
869 window.
870
871
872 * Support for Shared Libraries
873
874 GDB can now debug programs and core files that use SunOS shared libraries.
875 Symbols from a shared library cannot be referenced
876 before the shared library has been linked with the program (this
877 happens after you type ``run'' and before the function main() is entered).
878 At any time after this linking (including when examining core files
879 from dynamically linked programs), gdb reads the symbols from each
880 shared library when you type the ``sharedlibrary'' command.
881 It can be abbreviated ``share''.
882
883 sharedlibrary REGEXP: Load shared object library symbols for files
884 matching a unix regular expression. No argument
885 indicates to load symbols for all shared libraries.
886
887 info sharedlibrary: Status of loaded shared libraries.
888
889
890 * Watchpoints
891
892 A watchpoint stops execution of a program whenever the value of an
893 expression changes. Checking for this slows down execution
894 tremendously whenever you are in the scope of the expression, but is
895 quite useful for catching tough ``bit-spreader'' or pointer misuse
896 problems. Some machines such as the 386 have hardware for doing this
897 more quickly, and future versions of gdb will use this hardware.
898
899 watch EXP: Set a watchpoint (breakpoint) for an expression.
900
901 info watchpoints: Information about your watchpoints.
902
903 delete N: Deletes watchpoint number N (same as breakpoints).
904 disable N: Temporarily turns off watchpoint number N (same as breakpoints).
905 enable N: Re-enables watchpoint number N (same as breakpoints).
906
907
908 * C++ multiple inheritance
909
910 When used with a GCC version 2 compiler, GDB supports multiple inheritance
911 for C++ programs.
912
913 * C++ exception handling
914
915 Gdb now supports limited C++ exception handling. Besides the existing
916 ability to breakpoint on an exception handler, gdb can breakpoint on
917 the raising of an exception (before the stack is peeled back to the
918 handler's context).
919
920 catch FOO: If there is a FOO exception handler in the dynamic scope,
921 set a breakpoint to catch exceptions which may be raised there.
922 Multiple exceptions (``catch foo bar baz'') may be caught.
923
924 info catch: Lists all exceptions which may be caught in the
925 current stack frame.
926
927
928 * Minor command changes
929
930 The command ``call func (arg, arg, ...)'' now acts like the print
931 command, except it does not print or save a value if the function's result
932 is void. This is similar to dbx usage.
933
934 The ``up'' and ``down'' commands now always print the frame they end up
935 at; ``up-silently'' and `down-silently'' can be used in scripts to change
936 frames without printing.
937
938 * New directory command
939
940 'dir' now adds directories to the FRONT of the source search path.
941 The path starts off empty. Source files that contain debug information
942 about the directory in which they were compiled can be found even
943 with an empty path; Sun CC and GCC include this information. If GDB can't
944 find your source file in the current directory, type "dir .".
945
946 * Configuring GDB for compilation
947
948 For normal use, type ``./configure host''. See README or gdb.texinfo
949 for more details.
950
951 GDB now handles cross debugging. If you are remotely debugging between
952 two different machines, type ``./configure host -target=targ''.
953 Host is the machine where GDB will run; targ is the machine
954 where the program that you are debugging will run.
This page took 0.048209 seconds and 4 git commands to generate.