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