* NEWS: Mention new X packet and PowerPC variant support.
[deliverable/binutils-gdb.git] / gdb / NEWS
1 What has changed in GDB?
2 (Organized release by release)
3
4 *** Changes since GDB-4.17:
5
6 * New native configurations
7
8 HP-UX 10.20 hppa*-*-hpux10.20
9 HP-UX 11.x hppa*-*-hpux11.0*
10 M68K Linux m68*-*-linux*
11
12 * New targets
13
14 Fujitsu FR30 fr30-*-elf*
15 Mitsubishi D30V d30v-*-*
16
17 * PowerPC Variants
18
19 PowerPC configurations of GDB now support `set processor' to control
20 the register set in use. Available processor types include
21 rs6000, 403, 403GC, 505, 601, 602, 603, 604, 750, and 860.
22
23 * Readline 2.2
24
25 GDB now uses readline 2.2.
26
27 * HP-UX Support
28
29 Thanks to a major code donation from HP, GDB now has much more
30 extensive support for HP-UX. Added features include shared library
31 support, kernel threads and hardware watchpoints for 11.00, support
32 for HP's ANSI C and C++ compilers, and compatibility mode for xdb
33 commands.
34
35 * Catchpoints
36
37 HP's donation includes the new concept of catchpoints, which is a
38 generalization of the old catch command. On HP-UX, it is now possible
39 to catch exec, fork, and vfork, as well as library loading.
40
41 * Debugging Across Forks
42
43 On HP-UX, you can choose which process to debug when a fork() happens
44 in the inferior.
45
46 * TUI
47
48 HP has donated a curses-based terminal user interface (TUI). To get
49 it, build with --enable-tui.
50
51 * GDB Remote protocol
52
53 A new protocol packet 'X' that writes binary data is now available.
54 Default behavior is to try 'X', then drop back to 'M' if the stub
55 fails to respond. The settable variable `remotebinarydownload'
56 allows explicit control over the use of 'X'.
57
58 For 64 bit targets, the memory packets ("M" and "m") can now contain a
59 full 64 bit address. The class-obscure gdb command:
60 set targetaddresssize 32
61 can be used to revert to the old behavour. For existing remote stubs
62 the change should not be noticed as the additional address information
63 will be discarded.
64
65
66 *** Changes in GDB-4.17:
67
68 * New native configurations
69
70 Alpha GNU/Linux alpha*-*-linux*
71 Unixware 2.x i[3456]86-unixware2*
72 Irix 6.x mips*-sgi-irix6*
73 PowerPC GNU/Linux powerpc-*-linux*
74 PowerPC Solaris powerpcle-*-solaris*
75 Sparc GNU/Linux sparc-*-linux*
76 Motorola sysV68 R3V7.1 m68k-motorola-sysv
77
78 * New targets
79
80 Argonaut Risc Chip (ARC) arc-*-*
81 Hitachi H8/300S h8300*-*-*
82 Matsushita MN10200 w/simulator mn10200-*-*
83 Matsushita MN10300 w/simulator mn10300-*-*
84 MIPS NEC VR4100 mips64*vr4100*{,el}-*-elf*
85 MIPS NEC VR5000 mips64*vr5000*{,el}-*-elf*
86 MIPS Toshiba TX39 mips64*tx39*{,el}-*-elf*
87 Mitsubishi D10V w/simulator d10v-*-*
88 Mitsubishi M32R/D w/simulator m32r-*-elf*
89 Tsqware Sparclet sparclet-*-*
90 NEC V850 w/simulator v850-*-*
91
92 * New debugging protocols
93
94 ARM with RDI protocol arm*-*-*
95 M68K with dBUG monitor m68*-*-{aout,coff,elf}
96 DDB and LSI variants of PMON protocol mips*-*-*
97 PowerPC with DINK32 monitor powerpc{,le}-*-eabi
98 PowerPC with SDS protocol powerpc{,le}-*-eabi
99 Macraigor OCD (Wiggler) devices powerpc{,le}-*-eabi
100
101 * DWARF 2
102
103 All configurations can now understand and use the DWARF 2 debugging
104 format. The choice is automatic, if the symbol file contains DWARF 2
105 information.
106
107 start-sanitize-java
108 * Java frontend
109
110 GDB now includes basic Java language support. This support is
111 only useful with Java compilers that produce native machine code.
112
113 end-sanitize-java
114 * solib-absolute-prefix and solib-search-path
115
116 For SunOS and SVR4 shared libraries, you may now set the prefix for
117 loading absolute shared library symbol files, and the search path for
118 locating non-absolute shared library symbol files.
119
120 * Live range splitting
121
122 GDB can now effectively debug code for which GCC has performed live
123 range splitting as part of its optimization. See gdb/doc/LRS for
124 more details on the expected format of the stabs information.
125
126 * Hurd support
127
128 GDB's support for the GNU Hurd, including thread debugging, has been
129 updated to work with current versions of the Hurd.
130
131 * ARM Thumb support
132
133 GDB's ARM target configuration now handles the ARM7T (Thumb) 16-bit
134 instruction set. ARM GDB automatically detects when Thumb
135 instructions are in use, and adjusts disassembly and backtracing
136 accordingly.
137
138 * MIPS16 support
139
140 GDB's MIPS target configurations now handle the MIP16 16-bit
141 instruction set.
142
143 * Overlay support
144
145 GDB now includes support for overlays; if an executable has been
146 linked such that multiple sections are based at the same address, GDB
147 will decide which section to use for symbolic info. You can choose to
148 control the decision manually, using overlay commands, or implement
149 additional target-side support and use "overlay load-target" to bring
150 in the overlay mapping. Do "help overlay" for more detail.
151
152 * info symbol
153
154 The command "info symbol <address>" displays information about
155 the symbol at the specified address.
156
157 * Trace support
158
159 The standard remote protocol now includes an extension that allows
160 asynchronous collection and display of trace data. This requires
161 extensive support in the target-side debugging stub. Tracing mode
162 includes a new interaction mode in GDB and new commands: see the
163 file tracepoint.c for more details.
164
165 * MIPS simulator
166
167 Configurations for embedded MIPS now include a simulator contributed
168 by Cygnus Solutions. The simulator supports the instruction sets
169 of most MIPS variants.
170
171 * Sparc simulator
172
173 Sparc configurations may now include the ERC32 simulator contributed
174 by the European Space Agency. The simulator is not built into
175 Sparc targets by default; configure with --enable-sim to include it.
176
177 * set architecture
178
179 For target configurations that may include multiple variants of a
180 basic architecture (such as MIPS and SH), you may now set the
181 architecture explicitly. "set arch" sets, "info arch" lists
182 the possible architectures.
183
184 *** Changes in GDB-4.16:
185
186 * New native configurations
187
188 Windows 95, x86 Windows NT i[345]86-*-cygwin32
189 M68K NetBSD m68k-*-netbsd*
190 PowerPC AIX 4.x powerpc-*-aix*
191 PowerPC MacOS powerpc-*-macos*
192 PowerPC Windows NT powerpcle-*-cygwin32
193 RS/6000 AIX 4.x rs6000-*-aix4*
194
195 * New targets
196
197 ARM with RDP protocol arm-*-*
198 I960 with MON960 i960-*-coff
199 MIPS VxWorks mips*-*-vxworks*
200 MIPS VR4300 with PMON mips64*vr4300{,el}-*-elf*
201 PowerPC with PPCBUG monitor powerpc{,le}-*-eabi*
202 Hitachi SH3 sh-*-*
203 Matra Sparclet sparclet-*-*
204
205 * PowerPC simulator
206
207 The powerpc-eabi configuration now includes the PSIM simulator,
208 contributed by Andrew Cagney, with assistance from Mike Meissner.
209 PSIM is a very elaborate model of the PowerPC, including not only
210 basic instruction set execution, but also details of execution unit
211 performance and I/O hardware. See sim/ppc/README for more details.
212
213 * Solaris 2.5
214
215 GDB now works with Solaris 2.5.
216
217 * Windows 95/NT native
218
219 GDB will now work as a native debugger on Windows 95 and Windows NT.
220 To build it from source, you must use the "gnu-win32" environment,
221 which uses a DLL to emulate enough of Unix to run the GNU tools.
222 Further information, binaries, and sources are available at
223 ftp.cygnus.com, under pub/gnu-win32.
224
225 * dont-repeat command
226
227 If a user-defined command includes the command `dont-repeat', then the
228 command will not be repeated if the user just types return. This is
229 useful if the command is time-consuming to run, so that accidental
230 extra keystrokes don't run the same command many times.
231
232 * Send break instead of ^C
233
234 The standard remote protocol now includes an option to send a break
235 rather than a ^C to the target in order to interrupt it. By default,
236 GDB will send ^C; to send a break, set the variable `remotebreak' to 1.
237
238 * Remote protocol timeout
239
240 The standard remote protocol includes a new variable `remotetimeout'
241 that allows you to set the number of seconds before GDB gives up trying
242 to read from the target. The default value is 2.
243
244 * Automatic tracking of dynamic object loading (HPUX and Solaris only)
245
246 By default GDB will automatically keep track of objects as they are
247 loaded and unloaded by the dynamic linker. By using the command `set
248 stop-on-solib-events 1' you can arrange for GDB to stop the inferior
249 when shared library events occur, thus allowing you to set breakpoints
250 in shared libraries which are explicitly loaded by the inferior.
251
252 Note this feature does not work on hpux8. On hpux9 you must link
253 /usr/lib/end.o into your program. This feature should work
254 automatically on hpux10.
255
256 * Irix 5.x hardware watchpoint support
257
258 Irix 5 configurations now support the use of hardware watchpoints.
259
260 * Mips protocol "SYN garbage limit"
261
262 When debugging a Mips target using the `target mips' protocol, you
263 may set the number of characters that GDB will ignore by setting
264 the `syn-garbage-limit'. A value of -1 means that GDB will ignore
265 every character. The default value is 1050.
266
267 * Recording and replaying remote debug sessions
268
269 If you set `remotelogfile' to the name of a file, gdb will write to it
270 a recording of a remote debug session. This recording may then be
271 replayed back to gdb using "gdbreplay". See gdbserver/README for
272 details. This is useful when you have a problem with GDB while doing
273 remote debugging; you can make a recording of the session and send it
274 to someone else, who can then recreate the problem.
275
276 * Speedups for remote debugging
277
278 GDB includes speedups for downloading and stepping MIPS systems using
279 the IDT monitor, fast downloads to the Hitachi SH E7000 emulator,
280 and more efficient S-record downloading.
281
282 * Memory use reductions and statistics collection
283
284 GDB now uses less memory and reports statistics about memory usage.
285 Try the `maint print statistics' command, for example.
286
287 *** Changes in GDB-4.15:
288
289 * Psymtabs for XCOFF
290
291 The symbol reader for AIX GDB now uses partial symbol tables. This
292 can greatly improve startup time, especially for large executables.
293
294 * Remote targets use caching
295
296 Remote targets now use a data cache to speed up communication with the
297 remote side. The data cache could lead to incorrect results because
298 it doesn't know about volatile variables, thus making it impossible to
299 debug targets which use memory mapped I/O devices. `set remotecache
300 off' turns the the data cache off.
301
302 * Remote targets may have threads
303
304 The standard remote protocol now includes support for multiple threads
305 in the target system, using new protocol commands 'H' and 'T'. See
306 gdb/remote.c for details.
307
308 * NetROM support
309
310 If GDB is configured with `--enable-netrom', then it will include
311 support for the NetROM ROM emulator from XLNT Designs. The NetROM
312 acts as though it is a bank of ROM on the target board, but you can
313 write into it over the network. GDB's support consists only of
314 support for fast loading into the emulated ROM; to debug, you must use
315 another protocol, such as standard remote protocol. The usual
316 sequence is something like
317
318 target nrom <netrom-hostname>
319 load <prog>
320 target remote <netrom-hostname>:1235
321
322 * Macintosh host
323
324 GDB now includes support for the Apple Macintosh, as a host only. It
325 may be run as either an MPW tool or as a standalone application, and
326 it can debug through the serial port. All the usual GDB commands are
327 available, but to the target command, you must supply "serial" as the
328 device type instead of "/dev/ttyXX". See mpw-README in the main
329 directory for more information on how to build. The MPW configuration
330 scripts */mpw-config.in support only a few targets, and only the
331 mips-idt-ecoff target has been tested.
332
333 * Autoconf
334
335 GDB configuration now uses autoconf. This is not user-visible,
336 but does simplify configuration and building.
337
338 * hpux10
339
340 GDB now supports hpux10.
341
342 *** Changes in GDB-4.14:
343
344 * New native configurations
345
346 x86 FreeBSD i[345]86-*-freebsd
347 x86 NetBSD i[345]86-*-netbsd
348 NS32k NetBSD ns32k-*-netbsd
349 Sparc NetBSD sparc-*-netbsd
350
351 * New targets
352
353 A29K VxWorks a29k-*-vxworks
354 HP PA PRO embedded (WinBond W89K & Oki OP50N) hppa*-*-pro*
355 CPU32 EST-300 emulator m68*-*-est*
356 PowerPC ELF powerpc-*-elf
357 WDC 65816 w65-*-*
358
359 * Alpha OSF/1 support for procfs
360
361 GDB now supports procfs under OSF/1-2.x and higher, which makes it
362 possible to attach to running processes. As the mounting of the /proc
363 filesystem is optional on the Alpha, GDB automatically determines
364 the availability of /proc during startup. This can lead to problems
365 if /proc is unmounted after GDB has been started.
366
367 * Arguments to user-defined commands
368
369 User commands may accept up to 10 arguments separated by whitespace.
370 Arguments are accessed within the user command via $arg0..$arg9. A
371 trivial example:
372 define adder
373 print $arg0 + $arg1 + $arg2
374
375 To execute the command use:
376 adder 1 2 3
377
378 Defines the command "adder" which prints the sum of its three arguments.
379 Note the arguments are text substitutions, so they may reference variables,
380 use complex expressions, or even perform inferior function calls.
381
382 * New `if' and `while' commands
383
384 This makes it possible to write more sophisticated user-defined
385 commands. Both commands take a single argument, which is the
386 expression to evaluate, and must be followed by the commands to
387 execute, one per line, if the expression is nonzero, the list being
388 terminated by the word `end'. The `if' command list may include an
389 `else' word, which causes the following commands to be executed only
390 if the expression is zero.
391
392 * Fortran source language mode
393
394 GDB now includes partial support for Fortran 77. It will recognize
395 Fortran programs and can evaluate a subset of Fortran expressions, but
396 variables and functions may not be handled correctly. GDB will work
397 with G77, but does not yet know much about symbols emitted by other
398 Fortran compilers.
399
400 * Better HPUX support
401
402 Most debugging facilities now work on dynamic executables for HPPAs
403 running hpux9 or later. You can attach to running dynamically linked
404 processes, but by default the dynamic libraries will be read-only, so
405 for instance you won't be able to put breakpoints in them. To change
406 that behavior do the following before running the program:
407
408 adb -w a.out
409 __dld_flags?W 0x5
410 control-d
411
412 This will cause the libraries to be mapped private and read-write.
413 To revert to the normal behavior, do this:
414
415 adb -w a.out
416 __dld_flags?W 0x4
417 control-d
418
419 You cannot set breakpoints or examine data in the library until after
420 the library is loaded if the function/data symbols do not have
421 external linkage.
422
423 GDB can now also read debug symbols produced by the HP C compiler on
424 HPPAs (sorry, no C++, Fortran or 68k support).
425
426 * Target byte order now dynamically selectable
427
428 You can choose which byte order to use with a target system, via the
429 commands "set endian big" and "set endian little", and you can see the
430 current setting by using "show endian". You can also give the command
431 "set endian auto", in which case GDB will use the byte order
432 associated with the executable. Currently, only embedded MIPS
433 configurations support dynamic selection of target byte order.
434
435 * New DOS host serial code
436
437 This version uses DPMI interrupts to handle buffered I/O, so you
438 no longer need to run asynctsr when debugging boards connected to
439 a PC's serial port.
440
441 *** Changes in GDB-4.13:
442
443 * New "complete" command
444
445 This lists all the possible completions for the rest of the line, if it
446 were to be given as a command itself. This is intended for use by emacs.
447
448 * Trailing space optional in prompt
449
450 "set prompt" no longer adds a space for you after the prompt you set. This
451 allows you to set a prompt which ends in a space or one that does not.
452
453 * Breakpoint hit counts
454
455 "info break" now displays a count of the number of times the breakpoint
456 has been hit. This is especially useful in conjunction with "ignore"; you
457 can ignore a large number of breakpoint hits, look at the breakpoint info
458 to see how many times the breakpoint was hit, then run again, ignoring one
459 less than that number, and this will get you quickly to the last hit of
460 that breakpoint.
461
462 * Ability to stop printing at NULL character
463
464 "set print null-stop" will cause GDB to stop printing the characters of
465 an array when the first NULL is encountered. This is useful when large
466 arrays actually contain only short strings.
467
468 * Shared library breakpoints
469
470 In SunOS 4.x, SVR4, and Alpha OSF/1 configurations, you can now set
471 breakpoints in shared libraries before the executable is run.
472
473 * Hardware watchpoints
474
475 There is a new hardware breakpoint for the watch command for sparclite
476 targets. See gdb/sparclite/hw_breakpoint.note.
477
478 Hardware watchpoints are also now supported under Linux.
479
480 * Annotations
481
482 Annotations have been added. These are for use with graphical interfaces,
483 and are still experimental. Currently only gdba.el uses these.
484
485 * Improved Irix 5 support
486
487 GDB now works properly with Irix 5.2.
488
489 * Improved HPPA support
490
491 GDB now works properly with the latest GCC and GAS.
492
493 * New native configurations
494
495 Sequent PTX4 i[34]86-sequent-ptx4
496 HPPA running OSF/1 hppa*-*-osf*
497 Atari TT running SVR4 m68*-*-sysv4*
498 RS/6000 LynxOS rs6000-*-lynxos*
499
500 * New targets
501
502 OS/9000 i[34]86-*-os9k
503 MIPS R4000 mips64*{,el}-*-{ecoff,elf}
504 Sparc64 sparc64-*-*
505
506 * Hitachi SH7000 and E7000-PC ICE support
507
508 There is now support for communicating with the Hitachi E7000-PC ICE.
509 This is available automatically when GDB is configured for the SH.
510
511 * Fixes
512
513 As usual, a variety of small fixes and improvements, both generic
514 and configuration-specific. See the ChangeLog for more detail.
515
516 *** Changes in GDB-4.12:
517
518 * Irix 5 is now supported
519
520 * HPPA support
521
522 GDB-4.12 on the HPPA has a number of changes which make it unable
523 to debug the output from the currently released versions of GCC and
524 GAS (GCC 2.5.8 and GAS-2.2 or PAGAS-1.36). Until the next major release
525 of GCC and GAS, versions of these tools designed to work with GDB-4.12
526 can be retrieved via anonymous ftp from jaguar.cs.utah.edu:/dist.
527
528
529 *** Changes in GDB-4.11:
530
531 * User visible changes:
532
533 * Remote Debugging
534
535 The "set remotedebug" option is now consistent between the mips remote
536 target, remote targets using the gdb-specific protocol, UDI (AMD's
537 debug protocol for the 29k) and the 88k bug monitor. It is now an
538 integer specifying a debug level (normally 0 or 1, but 2 means more
539 debugging info for the mips target).
540
541 * DEC Alpha native support
542
543 GDB now works on the DEC Alpha. GCC 2.4.5 does not produce usable
544 debug info, but GDB works fairly well with the DEC compiler and should
545 work with a future GCC release. See the README file for a few
546 Alpha-specific notes.
547
548 * Preliminary thread implementation
549
550 GDB now has preliminary thread support for both SGI/Irix and LynxOS.
551
552 * LynxOS native and target support for 386
553
554 This release has been hosted on LynxOS 2.2, and also can be configured
555 to remotely debug programs running under LynxOS (see gdb/gdbserver/README
556 for details).
557
558 * Improvements in C++ mangling/demangling.
559
560 This release has much better g++ debugging, specifically in name
561 mangling/demangling, virtual function calls, print virtual table,
562 call methods, ...etc.
563
564 *** Changes in GDB-4.10:
565
566 * User visible changes:
567
568 Remote debugging using the GDB-specific (`target remote') protocol now
569 supports the `load' command. This is only useful if you have some
570 other way of getting the stub to the target system, and you can put it
571 somewhere in memory where it won't get clobbered by the download.
572
573 Filename completion now works.
574
575 When run under emacs mode, the "info line" command now causes the
576 arrow to point to the line specified. Also, "info line" prints
577 addresses in symbolic form (as well as hex).
578
579 All vxworks based targets now support a user settable option, called
580 vxworks-timeout. This option represents the number of seconds gdb
581 should wait for responses to rpc's. You might want to use this if
582 your vxworks target is, perhaps, a slow software simulator or happens
583 to be on the far side of a thin network line.
584
585 * DEC alpha support
586
587 This release contains support for using a DEC alpha as a GDB host for
588 cross debugging. Native alpha debugging is not supported yet.
589
590
591 *** Changes in GDB-4.9:
592
593 * Testsuite
594
595 This is the first GDB release which is accompanied by a matching testsuite.
596 The testsuite requires installation of dejagnu, which should be available
597 via ftp from most sites that carry GNU software.
598
599 * C++ demangling
600
601 'Cfront' style demangling has had its name changed to 'ARM' style, to
602 emphasize that it was written from the specifications in the C++ Annotated
603 Reference Manual, not necessarily to be compatible with AT&T cfront. Despite
604 disclaimers, it still generated too much confusion with users attempting to
605 use gdb with AT&T cfront.
606
607 * Simulators
608
609 GDB now uses a standard remote interface to a simulator library.
610 So far, the library contains simulators for the Zilog Z8001/2, the
611 Hitachi H8/300, H8/500 and Super-H.
612
613 * New targets supported
614
615 H8/300 simulator h8300-hitachi-hms or h8300hms
616 H8/500 simulator h8500-hitachi-hms or h8500hms
617 SH simulator sh-hitachi-hms or sh
618 Z8000 simulator z8k-zilog-none or z8ksim
619 IDT MIPS board over serial line mips-idt-ecoff
620
621 Cross-debugging to GO32 targets is supported. It requires a custom
622 version of the i386-stub.c module which is integrated with the
623 GO32 memory extender.
624
625 * New remote protocols
626
627 MIPS remote debugging protocol.
628
629 * New source languages supported
630
631 This version includes preliminary support for Chill, a Pascal like language
632 used by telecommunications companies. Chill support is also being integrated
633 into the GNU compiler, but we don't know when it will be publically available.
634
635
636 *** Changes in GDB-4.8:
637
638 * HP Precision Architecture supported
639
640 GDB now supports HP PA-RISC machines running HPUX. A preliminary
641 version of this support was available as a set of patches from the
642 University of Utah. GDB does not support debugging of programs
643 compiled with the HP compiler, because HP will not document their file
644 format. Instead, you must use GCC (version 2.3.2 or later) and PA-GAS
645 (as available from jaguar.cs.utah.edu:/dist/pa-gas.u4.tar.Z).
646
647 Many problems in the preliminary version have been fixed.
648
649 * Faster and better demangling
650
651 We have improved template demangling and fixed numerous bugs in the GNU style
652 demangler. It can now handle type modifiers such as `static' or `const'. Wide
653 character types (wchar_t) are now supported. Demangling of each symbol is now
654 only done once, and is cached when the symbol table for a file is read in.
655 This results in a small increase in memory usage for C programs, a moderate
656 increase in memory usage for C++ programs, and a fantastic speedup in
657 symbol lookups.
658
659 `Cfront' style demangling still doesn't work with AT&T cfront. It was written
660 from the specifications in the Annotated Reference Manual, which AT&T's
661 compiler does not actually implement.
662
663 * G++ multiple inheritance compiler problem
664
665 In the 2.3.2 release of gcc/g++, how the compiler resolves multiple
666 inheritance lattices was reworked to properly discover ambiguities. We
667 recently found an example which causes this new algorithm to fail in a
668 very subtle way, producing bad debug information for those classes.
669 The file 'gcc.patch' (in this directory) can be applied to gcc to
670 circumvent the problem. A future GCC release will contain a complete
671 fix.
672
673 The previous G++ debug info problem (mentioned below for the gdb-4.7
674 release) is fixed in gcc version 2.3.2.
675
676 * Improved configure script
677
678 The `configure' script will now attempt to guess your system type if
679 you don't supply a host system type. The old scheme of supplying a
680 host system triplet is preferable over using this. All the magic is
681 done in the new `config.guess' script. Examine it for details.
682
683 We have also brought our configure script much more in line with the FSF's
684 version. It now supports the --with-xxx options. In particular,
685 `--with-minimal-bfd' can be used to make the GDB binary image smaller.
686 The resulting GDB will not be able to read arbitrary object file formats --
687 only the format ``expected'' to be used on the configured target system.
688 We hope to make this the default in a future release.
689
690 * Documentation improvements
691
692 There's new internal documentation on how to modify GDB, and how to
693 produce clean changes to the code. We implore people to read it
694 before submitting changes.
695
696 The GDB manual uses new, sexy Texinfo conditionals, rather than arcane
697 M4 macros. The new texinfo.tex is provided in this release. Pre-built
698 `info' files are also provided. To build `info' files from scratch,
699 you will need the latest `makeinfo' release, which will be available in
700 a future texinfo-X.Y release.
701
702 *NOTE* The new texinfo.tex can cause old versions of TeX to hang.
703 We're not sure exactly which versions have this problem, but it has
704 been seen in 3.0. We highly recommend upgrading to TeX version 3.141
705 or better. If that isn't possible, there is a patch in
706 `texinfo/tex3patch' that will modify `texinfo/texinfo.tex' to work
707 around this problem.
708
709 * New features
710
711 GDB now supports array constants that can be used in expressions typed in by
712 the user. The syntax is `{element, element, ...}'. Ie: you can now type
713 `print {1, 2, 3}', and it will build up an array in memory malloc'd in
714 the target program.
715
716 The new directory `gdb/sparclite' contains a program that demonstrates
717 how the sparc-stub.c remote stub runs on a Fujitsu SPARClite processor.
718
719 * New native hosts supported
720
721 HP/PA-RISC under HPUX using GNU tools hppa1.1-hp-hpux
722 386 CPUs running SCO Unix 3.2v4 i386-unknown-sco3.2v4
723
724 * New targets supported
725
726 AMD 29k family via UDI a29k-amd-udi or udi29k
727
728 * New file formats supported
729
730 BFD now supports reading HP/PA-RISC executables (SOM file format?),
731 HPUX core files, and SCO 3.2v2 core files.
732
733 * Major bug fixes
734
735 Attaching to processes now works again; thanks for the many bug reports.
736
737 We have also stomped on a bunch of core dumps caused by
738 printf_filtered("%s") problems.
739
740 We eliminated a copyright problem on the rpc and ptrace header files
741 for VxWorks, which was discovered at the last minute during the 4.7
742 release. You should now be able to build a VxWorks GDB.
743
744 You can now interrupt gdb while an attached process is running. This
745 will cause the attached process to stop, and give control back to GDB.
746
747 We fixed problems caused by using too many file descriptors
748 for reading symbols from object files and libraries. This was
749 especially a problem for programs that used many (~100) shared
750 libraries.
751
752 The `step' command now only enters a subroutine if there is line number
753 information for the subroutine. Otherwise it acts like the `next'
754 command. Previously, `step' would enter subroutines if there was
755 any debugging information about the routine. This avoids problems
756 when using `cc -g1' on MIPS machines.
757
758 * Internal improvements
759
760 GDB's internal interfaces have been improved to make it easier to support
761 debugging of multiple languages in the future.
762
763 GDB now uses a common structure for symbol information internally.
764 Minimal symbols (derived from linkage symbols in object files), partial
765 symbols (from a quick scan of debug information), and full symbols
766 contain a common subset of information, making it easier to write
767 shared code that handles any of them.
768
769 * New command line options
770
771 We now accept --silent as an alias for --quiet.
772
773 * Mmalloc licensing
774
775 The memory-mapped-malloc library is now licensed under the GNU Library
776 General Public License.
777
778 *** Changes in GDB-4.7:
779
780 * Host/native/target split
781
782 GDB has had some major internal surgery to untangle the support for
783 hosts and remote targets. Now, when you configure GDB for a remote
784 target, it will no longer load in all of the support for debugging
785 local programs on the host. When fully completed and tested, this will
786 ensure that arbitrary host/target combinations are possible.
787
788 The primary conceptual shift is to separate the non-portable code in
789 GDB into three categories. Host specific code is required any time GDB
790 is compiled on that host, regardless of the target. Target specific
791 code relates to the peculiarities of the target, but can be compiled on
792 any host. Native specific code is everything else: it can only be
793 built when the host and target are the same system. Child process
794 handling and core file support are two common `native' examples.
795
796 GDB's use of /proc for controlling Unix child processes is now cleaner.
797 It has been split out into a single module under the `target_ops' vector,
798 plus two native-dependent functions for each system that uses /proc.
799
800 * New hosts supported
801
802 HP/Apollo 68k (under the BSD domain) m68k-apollo-bsd or apollo68bsd
803 386 CPUs running various BSD ports i386-unknown-bsd or 386bsd
804 386 CPUs running SCO Unix i386-unknown-scosysv322 or i386sco
805
806 * New targets supported
807
808 Fujitsu SPARClite sparclite-fujitsu-none or sparclite
809 68030 and CPU32 m68030-*-*, m68332-*-*
810
811 * New native hosts supported
812
813 386 CPUs running various BSD ports i386-unknown-bsd or 386bsd
814 (386bsd is not well tested yet)
815 386 CPUs running SCO Unix i386-unknown-scosysv322 or sco
816
817 * New file formats supported
818
819 BFD now supports COFF files for the Zilog Z8000 microprocessor. It
820 supports reading of `a.out.adobe' object files, which are an a.out
821 format extended with minimal information about multiple sections.
822
823 * New commands
824
825 `show copying' is the same as the old `info copying'.
826 `show warranty' is the same as `info warrantee'.
827 These were renamed for consistency. The old commands continue to work.
828
829 `info handle' is a new alias for `info signals'.
830
831 You can now define pre-command hooks, which attach arbitrary command
832 scripts to any command. The commands in the hook will be executed
833 prior to the user's command. You can also create a hook which will be
834 executed whenever the program stops. See gdb.texinfo.
835
836 * C++ improvements
837
838 We now deal with Cfront style name mangling, and can even extract type
839 info from mangled symbols. GDB can automatically figure out which
840 symbol mangling style your C++ compiler uses.
841
842 Calling of methods and virtual functions has been improved as well.
843
844 * Major bug fixes
845
846 The crash that occured when debugging Sun Ansi-C compiled binaries is
847 fixed. This was due to mishandling of the extra N_SO stabs output
848 by the compiler.
849
850 We also finally got Ultrix 4.2 running in house, and fixed core file
851 support, with help from a dozen people on the net.
852
853 John M. Farrell discovered that the reason that single-stepping was so
854 slow on all of the Mips based platforms (primarily SGI and DEC) was
855 that we were trying to demangle and lookup a symbol used for internal
856 purposes on every instruction that was being stepped through. Changing
857 the name of that symbol so that it couldn't be mistaken for a C++
858 mangled symbol sped things up a great deal.
859
860 Rich Pixley sped up symbol lookups in general by getting much smarter
861 about when C++ symbol mangling is necessary. This should make symbol
862 completion (TAB on the command line) much faster. It's not as fast as
863 we'd like, but it's significantly faster than gdb-4.6.
864
865 * AMD 29k support
866
867 A new user controllable variable 'call_scratch_address' can
868 specify the location of a scratch area to be used when GDB
869 calls a function in the target. This is necessary because the
870 usual method of putting the scratch area on the stack does not work
871 in systems that have separate instruction and data spaces.
872
873 We integrated changes to support the 29k UDI (Universal Debugger
874 Interface), but discovered at the last minute that we didn't have all
875 of the appropriate copyright paperwork. We are working with AMD to
876 resolve this, and hope to have it available soon.
877
878 * Remote interfaces
879
880 We have sped up the remote serial line protocol, especially for targets
881 with lots of registers. It now supports a new `expedited status' ('T')
882 message which can be used in place of the existing 'S' status message.
883 This allows the remote stub to send only the registers that GDB
884 needs to make a quick decision about single-stepping or conditional
885 breakpoints, eliminating the need to fetch the entire register set for
886 each instruction being stepped through.
887
888 The GDB remote serial protocol now implements a write-through cache for
889 registers, only re-reading the registers if the target has run.
890
891 There is also a new remote serial stub for SPARC processors. You can
892 find it in gdb-4.7/gdb/sparc-stub.c. This was written to support the
893 Fujitsu SPARClite processor, but will run on any stand-alone SPARC
894 processor with a serial port.
895
896 * Configuration
897
898 Configure.in files have become much easier to read and modify. A new
899 `table driven' format makes it more obvious what configurations are
900 supported, and what files each one uses.
901
902 * Library changes
903
904 There is a new opcodes library which will eventually contain all of the
905 disassembly routines and opcode tables. At present, it only contains
906 Sparc and Z8000 routines. This will allow the assembler, debugger, and
907 disassembler (binutils/objdump) to share these routines.
908
909 The libiberty library is now copylefted under the GNU Library General
910 Public License. This allows more liberal use, and was done so libg++
911 can use it. This makes no difference to GDB, since the Library License
912 grants all the rights from the General Public License.
913
914 * Documentation
915
916 The file gdb-4.7/gdb/doc/stabs.texinfo is a (relatively) complete
917 reference to the stabs symbol info used by the debugger. It is (as far
918 as we know) the only published document on this fascinating topic. We
919 encourage you to read it, compare it to the stabs information on your
920 system, and send improvements on the document in general (to
921 bug-gdb@prep.ai.mit.edu).
922
923 And, of course, many bugs have been fixed.
924
925
926 *** Changes in GDB-4.6:
927
928 * Better support for C++ function names
929
930 GDB now accepts as input the "demangled form" of C++ overloaded function
931 names and member function names, and can do command completion on such names
932 (using TAB, TAB-TAB, and ESC-?). The names have to be quoted with a pair of
933 single quotes. Examples are 'func (int, long)' and 'obj::operator==(obj&)'.
934 Make use of command completion, it is your friend.
935
936 GDB also now accepts a variety of C++ mangled symbol formats. They are
937 the GNU g++ style, the Cfront (ARM) style, and the Lucid (lcc) style.
938 You can tell GDB which format to use by doing a 'set demangle-style {gnu,
939 lucid, cfront, auto}'. 'gnu' is the default. Do a 'set demangle-style foo'
940 for the list of formats.
941
942 * G++ symbol mangling problem
943
944 Recent versions of gcc have a bug in how they emit debugging information for
945 C++ methods (when using dbx-style stabs). The file 'gcc.patch' (in this
946 directory) can be applied to gcc to fix the problem. Alternatively, if you
947 can't fix gcc, you can #define GCC_MANGLE_BUG when compling gdb/symtab.c. The
948 usual symptom is difficulty with setting breakpoints on methods. GDB complains
949 about the method being non-existent. (We believe that version 2.2.2 of GCC has
950 this problem.)
951
952 * New 'maintenance' command
953
954 All of the commands related to hacking GDB internals have been moved out of
955 the main command set, and now live behind the 'maintenance' command. This
956 can also be abbreviated as 'mt'. The following changes were made:
957
958 dump-me -> maintenance dump-me
959 info all-breakpoints -> maintenance info breakpoints
960 printmsyms -> maintenance print msyms
961 printobjfiles -> maintenance print objfiles
962 printpsyms -> maintenance print psymbols
963 printsyms -> maintenance print symbols
964
965 The following commands are new:
966
967 maintenance demangle Call internal GDB demangler routine to
968 demangle a C++ link name and prints the result.
969 maintenance print type Print a type chain for a given symbol
970
971 * Change to .gdbinit file processing
972
973 We now read the $HOME/.gdbinit file before processing the argv arguments
974 (e.g. reading symbol files or core files). This allows global parameters to
975 be set, which will apply during the symbol reading. The ./.gdbinit is still
976 read after argv processing.
977
978 * New hosts supported
979
980 Solaris-2.0 !!! sparc-sun-solaris2 or sun4sol2
981
982 Linux support i386-unknown-linux or linux
983
984 We are also including code to support the HP/PA running BSD and HPUX. This
985 is almost guaranteed not to work, as we didn't have time to test or build it
986 for this release. We are including it so that the more adventurous (or
987 masochistic) of you can play with it. We also had major problems with the
988 fact that the compiler that we got from HP doesn't support the -g option.
989 It costs extra.
990
991 * New targets supported
992
993 Hitachi H8/300 h8300-hitachi-hms or h8300hms
994
995 * More smarts about finding #include files
996
997 GDB now remembers the compilation directory for all include files, and for
998 all files from which C is generated (like yacc and lex sources). This
999 greatly improves GDB's ability to find yacc/lex sources, and include files,
1000 especially if you are debugging your program from a directory different from
1001 the one that contains your sources.
1002
1003 We also fixed a bug which caused difficulty with listing and setting
1004 breakpoints in include files which contain C code. (In the past, you had to
1005 try twice in order to list an include file that you hadn't looked at before.)
1006
1007 * Interesting infernals change
1008
1009 GDB now deals with arbitrary numbers of sections, where the symbols for each
1010 section must be relocated relative to that section's landing place in the
1011 target's address space. This work was needed to support ELF with embedded
1012 stabs used by Solaris-2.0.
1013
1014 * Bug fixes (of course!)
1015
1016 There have been loads of fixes for the following things:
1017 mips, rs6000, 29k/udi, m68k, g++, type handling, elf/dwarf, m88k,
1018 i960, stabs, DOS(GO32), procfs, etc...
1019
1020 See the ChangeLog for details.
1021
1022 *** Changes in GDB-4.5:
1023
1024 * New machines supported (host and target)
1025
1026 IBM RS6000 running AIX rs6000-ibm-aix or rs6000
1027
1028 SGI Irix-4.x mips-sgi-irix4 or iris4
1029
1030 * New malloc package
1031
1032 GDB now uses a new memory manager called mmalloc, based on gmalloc.
1033 Mmalloc is capable of handling mutiple heaps of memory. It is also
1034 capable of saving a heap to a file, and then mapping it back in later.
1035 This can be used to greatly speedup the startup of GDB by using a
1036 pre-parsed symbol table which lives in a mmalloc managed heap. For
1037 more details, please read mmalloc/mmalloc.texi.
1038
1039 * info proc
1040
1041 The 'info proc' command (SVR4 only) has been enhanced quite a bit. See
1042 'help info proc' for details.
1043
1044 * MIPS ecoff symbol table format
1045
1046 The code that reads MIPS symbol table format is now supported on all hosts.
1047 Thanks to MIPS for releasing the sym.h and symconst.h files to make this
1048 possible.
1049
1050 * File name changes for MS-DOS
1051
1052 Many files in the config directories have been renamed to make it easier to
1053 support GDB on MS-DOSe systems (which have very restrictive file name
1054 conventions :-( ). MS-DOSe host support (under DJ Delorie's GO32
1055 environment) is close to working but has some remaining problems. Note
1056 that debugging of DOS programs is not supported, due to limitations
1057 in the ``operating system'', but it can be used to host cross-debugging.
1058
1059 * Cross byte order fixes
1060
1061 Many fixes have been made to support cross debugging of Sparc and MIPS
1062 targets from hosts whose byte order differs.
1063
1064 * New -mapped and -readnow options
1065
1066 If memory-mapped files are available on your system through the 'mmap'
1067 system call, you can use the -mapped option on the `file' or
1068 `symbol-file' commands to cause GDB to write the symbols from your
1069 program into a reusable file. If the program you are debugging is
1070 called `/path/fred', the mapped symbol file will be `./fred.syms'.
1071 Future GDB debugging sessions will notice the presence of this file,
1072 and will quickly map in symbol information from it, rather than reading
1073 the symbol table from the executable program. Using the '-mapped'
1074 option in a GDB `file' or `symbol-file' command has the same effect as
1075 starting GDB with the '-mapped' command-line option.
1076
1077 You can cause GDB to read the entire symbol table immediately by using
1078 the '-readnow' option with any of the commands that load symbol table
1079 information (or on the GDB command line). This makes the command
1080 slower, but makes future operations faster.
1081
1082 The -mapped and -readnow options are typically combined in order to
1083 build a `fred.syms' file that contains complete symbol information.
1084 A simple GDB invocation to do nothing but build a `.syms' file for future
1085 use is:
1086
1087 gdb -batch -nx -mapped -readnow programname
1088
1089 The `.syms' file is specific to the host machine on which GDB is run.
1090 It holds an exact image of GDB's internal symbol table. It cannot be
1091 shared across multiple host platforms.
1092
1093 * longjmp() handling
1094
1095 GDB is now capable of stepping and nexting over longjmp(), _longjmp(), and
1096 siglongjmp() without losing control. This feature has not yet been ported to
1097 all systems. It currently works on many 386 platforms, all MIPS-based
1098 platforms (SGI, DECstation, etc), and Sun3/4.
1099
1100 * Solaris 2.0
1101
1102 Preliminary work has been put in to support the new Solaris OS from Sun. At
1103 this time, it can control and debug processes, but it is not capable of
1104 reading symbols.
1105
1106 * Bug fixes
1107
1108 As always, many many bug fixes. The major areas were with g++, and mipsread.
1109 People using the MIPS-based platforms should experience fewer mysterious
1110 crashes and trashed symbol tables.
1111
1112 *** Changes in GDB-4.4:
1113
1114 * New machines supported (host and target)
1115
1116 SCO Unix on i386 IBM PC clones i386-sco-sysv or i386sco
1117 (except core files)
1118 BSD Reno on Vax vax-dec-bsd
1119 Ultrix on Vax vax-dec-ultrix
1120
1121 * New machines supported (target)
1122
1123 AMD 29000 embedded, using EBMON a29k-none-none
1124
1125 * C++ support
1126
1127 GDB continues to improve its handling of C++. `References' work better.
1128 The demangler has also been improved, and now deals with symbols mangled as
1129 per the Annotated C++ Reference Guide.
1130
1131 GDB also now handles `stabs' symbol information embedded in MIPS
1132 `ecoff' symbol tables. Since the ecoff format was not easily
1133 extensible to handle new languages such as C++, this appeared to be a
1134 good way to put C++ debugging info into MIPS binaries. This option
1135 will be supported in the GNU C compiler, version 2, when it is
1136 released.
1137
1138 * New features for SVR4
1139
1140 GDB now handles SVR4 shared libraries, in the same fashion as SunOS
1141 shared libraries. Debugging dynamically linked programs should present
1142 only minor differences from debugging statically linked programs.
1143
1144 The `info proc' command will print out information about any process
1145 on an SVR4 system (including the one you are debugging). At the moment,
1146 it prints the address mappings of the process.
1147
1148 If you bring up GDB on another SVR4 system, please send mail to
1149 bug-gdb@prep.ai.mit.edu to let us know what changes were reqired (if any).
1150
1151 * Better dynamic linking support in SunOS
1152
1153 Reading symbols from shared libraries which contain debugging symbols
1154 now works properly. However, there remain issues such as automatic
1155 skipping of `transfer vector' code during function calls, which
1156 make it harder to debug code in a shared library, than to debug the
1157 same code linked statically.
1158
1159 * New Getopt
1160
1161 GDB is now using the latest `getopt' routines from the FSF. This
1162 version accepts the -- prefix for options with long names. GDB will
1163 continue to accept the old forms (-option and +option) as well.
1164 Various single letter abbreviations for options have been explicity
1165 added to the option table so that they won't get overshadowed in the
1166 future by other options that begin with the same letter.
1167
1168 * Bugs fixed
1169
1170 The `cleanup_undefined_types' bug that many of you noticed has been squashed.
1171 Many assorted bugs have been handled. Many more remain to be handled.
1172 See the various ChangeLog files (primarily in gdb and bfd) for details.
1173
1174
1175 *** Changes in GDB-4.3:
1176
1177 * New machines supported (host and target)
1178
1179 Amiga 3000 running Amix m68k-cbm-svr4 or amix
1180 NCR 3000 386 running SVR4 i386-ncr-svr4 or ncr3000
1181 Motorola Delta 88000 running Sys V m88k-motorola-sysv or delta88
1182
1183 * Almost SCO Unix support
1184
1185 We had hoped to support:
1186 SCO Unix on i386 IBM PC clones i386-sco-sysv or i386sco
1187 (except for core file support), but we discovered very late in the release
1188 that it has problems with process groups that render gdb unusable. Sorry
1189 about that. I encourage people to fix it and post the fixes.
1190
1191 * Preliminary ELF and DWARF support
1192
1193 GDB can read ELF object files on System V Release 4, and can handle
1194 debugging records for C, in DWARF format, in ELF files. This support
1195 is preliminary. If you bring up GDB on another SVR4 system, please
1196 send mail to bug-gdb@prep.ai.mit.edu to let us know what changes were
1197 reqired (if any).
1198
1199 * New Readline
1200
1201 GDB now uses the latest `readline' library. One user-visible change
1202 is that two tabs will list possible command completions, which previously
1203 required typing M-? (meta-question mark, or ESC ?).
1204
1205 * Bugs fixed
1206
1207 The `stepi' bug that many of you noticed has been squashed.
1208 Many bugs in C++ have been handled. Many more remain to be handled.
1209 See the various ChangeLog files (primarily in gdb and bfd) for details.
1210
1211 * State of the MIPS world (in case you wondered):
1212
1213 GDB can understand the symbol tables emitted by the compilers
1214 supplied by most vendors of MIPS-based machines, including DEC. These
1215 symbol tables are in a format that essentially nobody else uses.
1216
1217 Some versions of gcc come with an assembler post-processor called
1218 mips-tfile. This program is required if you want to do source-level
1219 debugging of gcc-compiled programs. I believe FSF does not ship
1220 mips-tfile with gcc version 1, but it will eventually come with gcc
1221 version 2.
1222
1223 Debugging of g++ output remains a problem. g++ version 1.xx does not
1224 really support it at all. (If you're lucky, you should be able to get
1225 line numbers and stack traces to work, but no parameters or local
1226 variables.) With some work it should be possible to improve the
1227 situation somewhat.
1228
1229 When gcc version 2 is released, you will have somewhat better luck.
1230 However, even then you will get confusing results for inheritance and
1231 methods.
1232
1233 We will eventually provide full debugging of g++ output on
1234 DECstations. This will probably involve some kind of stabs-in-ecoff
1235 encapulation, but the details have not been worked out yet.
1236
1237
1238 *** Changes in GDB-4.2:
1239
1240 * Improved configuration
1241
1242 Only one copy of `configure' exists now, and it is not self-modifying.
1243 Porting BFD is simpler.
1244
1245 * Stepping improved
1246
1247 The `step' and `next' commands now only stop at the first instruction
1248 of a source line. This prevents the multiple stops that used to occur
1249 in switch statements, for-loops, etc. `Step' continues to stop if a
1250 function that has debugging information is called within the line.
1251
1252 * Bug fixing
1253
1254 Lots of small bugs fixed. More remain.
1255
1256 * New host supported (not target)
1257
1258 Intel 386 PC clone running Mach i386-none-mach
1259
1260
1261 *** Changes in GDB-4.1:
1262
1263 * Multiple source language support
1264
1265 GDB now has internal scaffolding to handle several source languages.
1266 It determines the type of each source file from its filename extension,
1267 and will switch expression parsing and number formatting to match the
1268 language of the function in the currently selected stack frame.
1269 You can also specifically set the language to be used, with
1270 `set language c' or `set language modula-2'.
1271
1272 * GDB and Modula-2
1273
1274 GDB now has preliminary support for the GNU Modula-2 compiler,
1275 currently under development at the State University of New York at
1276 Buffalo. Development of both GDB and the GNU Modula-2 compiler will
1277 continue through the fall of 1991 and into 1992.
1278
1279 Other Modula-2 compilers are currently not supported, and attempting to
1280 debug programs compiled with them will likely result in an error as the
1281 symbol table is read. Feel free to work on it, though!
1282
1283 There are hooks in GDB for strict type checking and range checking,
1284 in the `Modula-2 philosophy', but they do not currently work.
1285
1286 * set write on/off
1287
1288 GDB can now write to executable and core files (e.g. patch
1289 a variable's value). You must turn this switch on, specify
1290 the file ("exec foo" or "core foo"), *then* modify it, e.g.
1291 by assigning a new value to a variable. Modifications take
1292 effect immediately.
1293
1294 * Automatic SunOS shared library reading
1295
1296 When you run your program, GDB automatically determines where its
1297 shared libraries (if any) have been loaded, and reads their symbols.
1298 The `share' command is no longer needed. This also works when
1299 examining core files.
1300
1301 * set listsize
1302
1303 You can specify the number of lines that the `list' command shows.
1304 The default is 10.
1305
1306 * New machines supported (host and target)
1307
1308 SGI Iris (MIPS) running Irix V3: mips-sgi-irix or iris
1309 Sony NEWS (68K) running NEWSOS 3.x: m68k-sony-sysv or news
1310 Ultracomputer (29K) running Sym1: a29k-nyu-sym1 or ultra3
1311
1312 * New hosts supported (not targets)
1313
1314 IBM RT/PC: romp-ibm-aix or rtpc
1315
1316 * New targets supported (not hosts)
1317
1318 AMD 29000 embedded with COFF a29k-none-coff
1319 AMD 29000 embedded with a.out a29k-none-aout
1320 Ultracomputer remote kernel debug a29k-nyu-kern
1321
1322 * New remote interfaces
1323
1324 AMD 29000 Adapt
1325 AMD 29000 Minimon
1326
1327
1328 *** Changes in GDB-4.0:
1329
1330 * New Facilities
1331
1332 Wide output is wrapped at good places to make the output more readable.
1333
1334 Gdb now supports cross-debugging from a host machine of one type to a
1335 target machine of another type. Communication with the target system
1336 is over serial lines. The ``target'' command handles connecting to the
1337 remote system; the ``load'' command will download a program into the
1338 remote system. Serial stubs for the m68k and i386 are provided. Gdb
1339 also supports debugging of realtime processes running under VxWorks,
1340 using SunRPC Remote Procedure Calls over TCP/IP to talk to a debugger
1341 stub on the target system.
1342
1343 New CPUs supported include the AMD 29000 and Intel 960.
1344
1345 GDB now reads object files and symbol tables via a ``binary file''
1346 library, which allows a single copy of GDB to debug programs of multiple
1347 object file types such as a.out and coff.
1348
1349 There is now a GDB reference card in "doc/refcard.tex". (Make targets
1350 refcard.dvi and refcard.ps are available to format it).
1351
1352
1353 * Control-Variable user interface simplified
1354
1355 All variables that control the operation of the debugger can be set
1356 by the ``set'' command, and displayed by the ``show'' command.
1357
1358 For example, ``set prompt new-gdb=>'' will change your prompt to new-gdb=>.
1359 ``Show prompt'' produces the response:
1360 Gdb's prompt is new-gdb=>.
1361
1362 What follows are the NEW set commands. The command ``help set'' will
1363 print a complete list of old and new set commands. ``help set FOO''
1364 will give a longer description of the variable FOO. ``show'' will show
1365 all of the variable descriptions and their current settings.
1366
1367 confirm on/off: Enables warning questions for operations that are
1368 hard to recover from, e.g. rerunning the program while
1369 it is already running. Default is ON.
1370
1371 editing on/off: Enables EMACS style command line editing
1372 of input. Previous lines can be recalled with
1373 control-P, the current line can be edited with control-B,
1374 you can search for commands with control-R, etc.
1375 Default is ON.
1376
1377 history filename NAME: NAME is where the gdb command history
1378 will be stored. The default is .gdb_history,
1379 or the value of the environment variable
1380 GDBHISTFILE.
1381
1382 history size N: The size, in commands, of the command history. The
1383 default is 256, or the value of the environment variable
1384 HISTSIZE.
1385
1386 history save on/off: If this value is set to ON, the history file will
1387 be saved after exiting gdb. If set to OFF, the
1388 file will not be saved. The default is OFF.
1389
1390 history expansion on/off: If this value is set to ON, then csh-like
1391 history expansion will be performed on
1392 command line input. The default is OFF.
1393
1394 radix N: Sets the default radix for input and output. It can be set
1395 to 8, 10, or 16. Note that the argument to "radix" is interpreted
1396 in the current radix, so "set radix 10" is always a no-op.
1397
1398 height N: This integer value is the number of lines on a page. Default
1399 is 24, the current `stty rows'' setting, or the ``li#''
1400 setting from the termcap entry matching the environment
1401 variable TERM.
1402
1403 width N: This integer value is the number of characters on a line.
1404 Default is 80, the current `stty cols'' setting, or the ``co#''
1405 setting from the termcap entry matching the environment
1406 variable TERM.
1407
1408 Note: ``set screensize'' is obsolete. Use ``set height'' and
1409 ``set width'' instead.
1410
1411 print address on/off: Print memory addresses in various command displays,
1412 such as stack traces and structure values. Gdb looks
1413 more ``symbolic'' if you turn this off; it looks more
1414 ``machine level'' with it on. Default is ON.
1415
1416 print array on/off: Prettyprint arrays. New convenient format! Default
1417 is OFF.
1418
1419 print demangle on/off: Print C++ symbols in "source" form if on,
1420 "raw" form if off.
1421
1422 print asm-demangle on/off: Same, for assembler level printouts
1423 like instructions.
1424
1425 print vtbl on/off: Prettyprint C++ virtual function tables. Default is OFF.
1426
1427
1428 * Support for Epoch Environment.
1429
1430 The epoch environment is a version of Emacs v18 with windowing. One
1431 new command, ``inspect'', is identical to ``print'', except that if you
1432 are running in the epoch environment, the value is printed in its own
1433 window.
1434
1435
1436 * Support for Shared Libraries
1437
1438 GDB can now debug programs and core files that use SunOS shared libraries.
1439 Symbols from a shared library cannot be referenced
1440 before the shared library has been linked with the program (this
1441 happens after you type ``run'' and before the function main() is entered).
1442 At any time after this linking (including when examining core files
1443 from dynamically linked programs), gdb reads the symbols from each
1444 shared library when you type the ``sharedlibrary'' command.
1445 It can be abbreviated ``share''.
1446
1447 sharedlibrary REGEXP: Load shared object library symbols for files
1448 matching a unix regular expression. No argument
1449 indicates to load symbols for all shared libraries.
1450
1451 info sharedlibrary: Status of loaded shared libraries.
1452
1453
1454 * Watchpoints
1455
1456 A watchpoint stops execution of a program whenever the value of an
1457 expression changes. Checking for this slows down execution
1458 tremendously whenever you are in the scope of the expression, but is
1459 quite useful for catching tough ``bit-spreader'' or pointer misuse
1460 problems. Some machines such as the 386 have hardware for doing this
1461 more quickly, and future versions of gdb will use this hardware.
1462
1463 watch EXP: Set a watchpoint (breakpoint) for an expression.
1464
1465 info watchpoints: Information about your watchpoints.
1466
1467 delete N: Deletes watchpoint number N (same as breakpoints).
1468 disable N: Temporarily turns off watchpoint number N (same as breakpoints).
1469 enable N: Re-enables watchpoint number N (same as breakpoints).
1470
1471
1472 * C++ multiple inheritance
1473
1474 When used with a GCC version 2 compiler, GDB supports multiple inheritance
1475 for C++ programs.
1476
1477 * C++ exception handling
1478
1479 Gdb now supports limited C++ exception handling. Besides the existing
1480 ability to breakpoint on an exception handler, gdb can breakpoint on
1481 the raising of an exception (before the stack is peeled back to the
1482 handler's context).
1483
1484 catch FOO: If there is a FOO exception handler in the dynamic scope,
1485 set a breakpoint to catch exceptions which may be raised there.
1486 Multiple exceptions (``catch foo bar baz'') may be caught.
1487
1488 info catch: Lists all exceptions which may be caught in the
1489 current stack frame.
1490
1491
1492 * Minor command changes
1493
1494 The command ``call func (arg, arg, ...)'' now acts like the print
1495 command, except it does not print or save a value if the function's result
1496 is void. This is similar to dbx usage.
1497
1498 The ``up'' and ``down'' commands now always print the frame they end up
1499 at; ``up-silently'' and `down-silently'' can be used in scripts to change
1500 frames without printing.
1501
1502 * New directory command
1503
1504 'dir' now adds directories to the FRONT of the source search path.
1505 The path starts off empty. Source files that contain debug information
1506 about the directory in which they were compiled can be found even
1507 with an empty path; Sun CC and GCC include this information. If GDB can't
1508 find your source file in the current directory, type "dir .".
1509
1510 * Configuring GDB for compilation
1511
1512 For normal use, type ``./configure host''. See README or gdb.texinfo
1513 for more details.
1514
1515 GDB now handles cross debugging. If you are remotely debugging between
1516 two different machines, type ``./configure host -target=targ''.
1517 Host is the machine where GDB will run; targ is the machine
1518 where the program that you are debugging will run.
This page took 0.097923 seconds and 5 git commands to generate.