1 What has changed in GDB?
2 (Organized release by release)
4 *** Changes since GDB 6.3
6 * New BSD user-level threads support
8 It is now possible to debug programs using the user-level threads
9 library on OpenBSD and FreeBSD. Currently supported (target)
12 FreeBSD/amd64 x86_64-*-freebsd*
13 FreeBSD/i386 i386-*-freebsd*
14 OpenBSD/i386 i386-*-openbsd*
16 Note that the new kernel threads libraries introduced in FreeBSD 5.x
17 are not yet supported.
19 * New support for Matsushita MN10300 w/sim added
20 (Work in progress). mn10300-elf.
22 * REMOVED configurations and files
24 VxWorks and the XDR protocol *-*-vxworks
25 Renesas H8/300S h8300*-*-*
26 Motorola MCORE mcore-*-*
27 Matsushita MN10300 w/simulator mn10300-*-*
28 National Semiconductor NS32000 ns32k-*-*
31 *** Changes in GDB 6.3:
33 * New command line option
35 GDB now accepts -l followed by a number to set the timeout for remote
38 * GDB works with GCC -feliminate-dwarf2-dups
40 GDB now supports a more compact representation of DWARF-2 debug
41 information using DW_FORM_ref_addr references. These are produced
42 by GCC with the option -feliminate-dwarf2-dups and also by some
43 proprietary compilers. With GCC, you must use GCC 3.3.4 or later
44 to use -feliminate-dwarf2-dups.
46 * Internationalization
48 When supported by the host system, GDB will be built with
49 internationalization (libintl). The task of marking up the sources is
50 continued, we're looking forward to our first translation.
54 Initial support for debugging programs compiled with the GNAT
55 implementation of the Ada programming language has been integrated
56 into GDB. In this release, support is limited to expression evaluation.
58 * New native configurations
60 GNU/Linux/m32r m32r-*-linux-gnu
64 GDB's remote protocol now includes support for the 'p' packet. This
65 packet is used to fetch individual registers from a remote inferior.
67 * END-OF-LIFE registers[] compatibility module
69 GDB's internal register infrastructure has been completely rewritten.
70 The new infrastructure making possible the implementation of key new
71 features including 32x64 (e.g., 64-bit amd64 GDB debugging a 32-bit
74 GDB 6.3 will be the last release to include the the registers[]
75 compatibility module that allowed out-of-date configurations to
76 continue to work. This change directly impacts the following
88 Unless there is activity to revive these configurations, they will be
89 made OBSOLETE in GDB 6.4, and REMOVED from GDB 6.5.
91 * OBSOLETE configurations and files
93 Configurations that have been declared obsolete in this release have
94 been commented out. Unless there is activity to revive these
95 configurations, the next release of GDB will have their sources
105 *** Changes in GDB 6.2.1:
107 * MIPS `break main; run' gave an heuristic-fence-post warning
109 When attempting to run even a simple program, a warning about
110 heuristic-fence-post being hit would be reported. This problem has
113 * MIPS IRIX 'long double' crashed GDB
115 When examining a long double variable, GDB would get a segmentation
116 fault. The crash has been fixed (but GDB 6.2 cannot correctly examine
117 IRIX long double values).
121 A bug in the VAX stack code was causing problems with the "next"
122 command. This problem has been fixed.
124 *** Changes in GDB 6.2:
126 * Fix for ``many threads''
128 On GNU/Linux systems that use the NPTL threads library, a program
129 rapidly creating and deleting threads would confuse GDB leading to the
132 ptrace: No such process.
133 thread_db_get_info: cannot get thread info: generic error
135 This problem has been fixed.
137 * "-async" and "-noasync" options removed.
139 Support for the broken "-noasync" option has been removed (it caused
142 * New ``start'' command.
144 This command runs the program until the begining of the main procedure.
146 * New BSD Kernel Data Access Library (libkvm) interface
148 Using ``target kvm'' it is now possible to debug kernel core dumps and
149 live kernel memory images on various FreeBSD, NetBSD and OpenBSD
150 platforms. Currently supported (native-only) configurations are:
152 FreeBSD/amd64 x86_64-*-freebsd*
153 FreeBSD/i386 i?86-*-freebsd*
154 NetBSD/i386 i?86-*-netbsd*
155 NetBSD/m68k m68*-*-netbsd*
156 NetBSD/sparc sparc-*-netbsd*
157 OpenBSD/amd64 x86_64-*-openbsd*
158 OpenBSD/i386 i?86-*-openbsd*
159 OpenBSD/m68k m68*-openbsd*
160 OpenBSD/sparc sparc-*-openbsd*
162 * Signal trampoline code overhauled
164 Many generic problems with GDB's signal handling code have been fixed.
165 These include: backtraces through non-contiguous stacks; recognition
166 of sa_sigaction signal trampolines; backtrace from a NULL pointer
167 call; backtrace through a signal trampoline; step into and out of
168 signal handlers; and single-stepping in the signal trampoline.
170 Please note that kernel bugs are a limiting factor here. These
171 features have been shown to work on an s390 GNU/Linux system that
172 include a 2.6.8-rc1 kernel. Ref PR breakpoints/1702.
174 * Cygwin support for DWARF 2 added.
176 * New native configurations
178 GNU/Linux/hppa hppa*-*-linux*
179 OpenBSD/hppa hppa*-*-openbsd*
180 OpenBSD/m68k m68*-*-openbsd*
181 OpenBSD/m88k m88*-*-openbsd*
182 OpenBSD/powerpc powerpc-*-openbsd*
183 NetBSD/vax vax-*-netbsd*
184 OpenBSD/vax vax-*-openbsd*
186 * END-OF-LIFE frame compatibility module
188 GDB's internal frame infrastructure has been completely rewritten.
189 The new infrastructure making it possible to support key new features
190 including DWARF 2 Call Frame Information. To aid in the task of
191 migrating old configurations to this new infrastructure, a
192 compatibility module, that allowed old configurations to continue to
193 work, was also included.
195 GDB 6.2 will be the last release to include this frame compatibility
196 module. This change directly impacts the following configurations:
206 Unless there is activity to revive these configurations, they will be
207 made OBSOLETE in GDB 6.3, and REMOVED from GDB 6.4.
209 * REMOVED configurations and files
211 Sun 3, running SunOS 3 m68*-*-sunos3*
212 Sun 3, running SunOS 4 m68*-*-sunos4*
213 Sun 2, running SunOS 3 m68000-*-sunos3*
214 Sun 2, running SunOS 4 m68000-*-sunos4*
215 Motorola 680x0 running LynxOS m68*-*-lynxos*
216 AT&T 3b1/Unix pc m68*-att-*
217 Bull DPX2 (68k, System V release 3) m68*-bull-sysv*
218 decstation mips-dec-* mips-little-*
219 riscos mips-*-riscos* mips-*-sysv*
221 sysv mips*-*-sysv4* (IRIX 5/6 not included)
223 *** Changes in GDB 6.1.1:
225 * TUI (Text-mode User Interface) built-in (also included in GDB 6.1)
227 The TUI (Text-mode User Interface) is now built as part of a default
228 GDB configuration. It is enabled by either selecting the TUI with the
229 command line option "-i=tui" or by running the separate "gdbtui"
230 program. For more information on the TUI, see the manual "Debugging
233 * Pending breakpoint support (also included in GDB 6.1)
235 Support has been added to allow you to specify breakpoints in shared
236 libraries that have not yet been loaded. If a breakpoint location
237 cannot be found, and the "breakpoint pending" option is set to auto,
238 GDB queries you if you wish to make the breakpoint pending on a future
239 shared-library load. If and when GDB resolves the breakpoint symbol,
240 the pending breakpoint is removed as one or more regular breakpoints
243 Pending breakpoints are very useful for GCJ Java debugging.
245 * Fixed ISO-C build problems
247 The files bfd/elf-bfd.h, gdb/dictionary.c and gdb/types.c contained
248 non ISO-C code that stopped them being built using a more strict ISO-C
249 compiler (e.g., IBM's C compiler).
251 * Fixed build problem on IRIX 5
253 Due to header problems with <sys/proc.h>, the file gdb/proc-api.c
254 wasn't able to compile compile on an IRIX 5 system.
256 * Added execute permission to gdb/gdbserver/configure
258 The shell script gdb/testsuite/gdb.stabs/configure lacked execute
259 permission. This bug would cause configure to fail on a number of
260 systems (Solaris, IRIX). Ref: server/519.
262 * Fixed build problem on hpux2.0w-hp-hpux11.00 using the HP ANSI C compiler
264 Older HPUX ANSI C compilers did not accept variable array sizes. somsolib.c
265 has been updated to use constant array sizes.
267 * Fixed a panic in the DWARF Call Frame Info code on Solaris 2.7
269 GCC 3.3.2, on Solaris 2.7, includes the DW_EH_PE_funcrel encoding in
270 its generated DWARF Call Frame Info. This encoding was causing GDB to
271 panic, that panic has been fixed. Ref: gdb/1628.
273 * Fixed a problem when examining parameters in shared library code.
275 When examining parameters in optimized shared library code generated
276 by a mainline GCC, GDB would incorrectly report ``Variable "..." is
277 not available''. GDB now correctly displays the variable's value.
279 *** Changes in GDB 6.1:
281 * Removed --with-mmalloc
283 Support for the mmalloc memory manager has been removed, as it
284 conflicted with the internal gdb byte cache.
286 * Changes in AMD64 configurations
288 The AMD64 target now includes the %cs and %ss registers. As a result
289 the AMD64 remote protocol has changed; this affects the floating-point
290 and SSE registers. If you rely on those registers for your debugging,
291 you should upgrade gdbserver on the remote side.
293 * Revised SPARC target
295 The SPARC target has been completely revised, incorporating the
296 FreeBSD/sparc64 support that was added for GDB 6.0. As a result
297 support for LynxOS and SunOS 4 has been dropped. Calling functions
298 from within GDB on operating systems with a non-executable stack
299 (Solaris, OpenBSD) now works.
303 GDB has a new C++ demangler which does a better job on the mangled
304 names generated by current versions of g++. It also runs faster, so
305 with this and other changes gdb should now start faster on large C++
308 * DWARF 2 Location Expressions
310 GDB support for location expressions has been extended to support function
311 arguments and frame bases. Older versions of GDB could crash when they
314 * C++ nested types and namespaces
316 GDB's support for nested types and namespaces in C++ has been
317 improved, especially if you use the DWARF 2 debugging format. (This
318 is the default for recent versions of GCC on most platforms.)
319 Specifically, if you have a class "Inner" defined within a class or
320 namespace "Outer", then GDB realizes that the class's name is
321 "Outer::Inner", not simply "Inner". This should greatly reduce the
322 frequency of complaints about not finding RTTI symbols. In addition,
323 if you are stopped at inside of a function defined within a namespace,
324 GDB modifies its name lookup accordingly.
326 * New native configurations
328 NetBSD/amd64 x86_64-*-netbsd*
329 OpenBSD/amd64 x86_64-*-openbsd*
330 OpenBSD/alpha alpha*-*-openbsd*
331 OpenBSD/sparc sparc-*-openbsd*
332 OpenBSD/sparc64 sparc64-*-openbsd*
334 * New debugging protocols
336 M32R with SDI protocol m32r-*-elf*
338 * "set prompt-escape-char" command deleted.
340 The command "set prompt-escape-char" has been deleted. This command,
341 and its very obscure effet on GDB's prompt, was never documented,
342 tested, nor mentioned in the NEWS file.
344 * OBSOLETE configurations and files
346 Configurations that have been declared obsolete in this release have
347 been commented out. Unless there is activity to revive these
348 configurations, the next release of GDB will have their sources
351 Sun 3, running SunOS 3 m68*-*-sunos3*
352 Sun 3, running SunOS 4 m68*-*-sunos4*
353 Sun 2, running SunOS 3 m68000-*-sunos3*
354 Sun 2, running SunOS 4 m68000-*-sunos4*
355 Motorola 680x0 running LynxOS m68*-*-lynxos*
356 AT&T 3b1/Unix pc m68*-att-*
357 Bull DPX2 (68k, System V release 3) m68*-bull-sysv*
358 decstation mips-dec-* mips-little-*
359 riscos mips-*-riscos* mips-*-sysv*
361 sysv mips*-*-sysv4* (IRIX 5/6 not included)
363 * REMOVED configurations and files
365 SGI Irix-4.x mips-sgi-irix4 or iris4
366 SGI Iris (MIPS) running Irix V3: mips-sgi-irix or iris
367 Z8000 simulator z8k-zilog-none or z8ksim
368 Matsushita MN10200 w/simulator mn10200-*-*
369 H8/500 simulator h8500-hitachi-hms or h8500hms
370 HP/PA running BSD hppa*-*-bsd*
371 HP/PA running OSF/1 hppa*-*-osf*
372 HP/PA Pro target hppa*-*-pro*
373 PMAX (MIPS) running Mach 3.0 mips*-*-mach3*
374 386BSD i[3456]86-*-bsd*
375 Sequent family i[3456]86-sequent-sysv4*
376 i[3456]86-sequent-sysv*
377 i[3456]86-sequent-bsd*
378 SPARC running LynxOS sparc-*-lynxos*
379 SPARC running SunOS 4 sparc-*-sunos4*
380 Tsqware Sparclet sparclet-*-*
381 Fujitsu SPARClite sparclite-fujitsu-none or sparclite
383 *** Changes in GDB 6.0:
387 Support for debugging the Objective-C programming language has been
390 * New backtrace mechanism (includes DWARF 2 Call Frame Information).
392 DWARF 2's Call Frame Information makes available compiler generated
393 information that more exactly describes the program's run-time stack.
394 By using this information, GDB is able to provide more robust stack
397 The i386, amd64 (nee, x86-64), Alpha, m68hc11, ia64, and m32r targets
398 have been updated to use a new backtrace mechanism which includes
403 GDB's remote protocol has been extended to include support for hosted
404 file I/O (where the remote target uses GDB's file system). See GDB's
405 remote protocol documentation for details.
407 * All targets using the new architecture framework.
409 All of GDB's targets have been updated to use the new internal
410 architecture framework. The way is now open for future GDB releases
411 to include cross-architecture native debugging support (i386 on amd64,
414 * GNU/Linux's Thread Local Storage (TLS)
416 GDB now includes support for for the GNU/Linux implementation of
417 per-thread variables.
419 * GNU/Linux's Native POSIX Thread Library (NPTL)
421 GDB's thread code has been updated to work with either the new
422 GNU/Linux NPTL thread library or the older "LinuxThreads" library.
424 * Separate debug info.
426 GDB, in conjunction with BINUTILS, now supports a mechanism for
427 automatically loading debug information from a separate file. Instead
428 of shipping full debug and non-debug versions of system libraries,
429 system integrators can now instead ship just the stripped libraries
430 and optional debug files.
432 * DWARF 2 Location Expressions
434 DWARF 2 Location Expressions allow the compiler to more completely
435 describe the location of variables (even in optimized code) to the
438 GDB now includes preliminary support for location expressions (support
439 for DW_OP_piece is still missing).
443 A number of long standing bugs that caused GDB to die while starting a
444 Java application have been fixed. GDB's Java support is now
445 considered "useable".
447 * GNU/Linux support for fork, vfork, and exec.
449 The "catch fork", "catch exec", "catch vfork", and "set follow-fork-mode"
450 commands are now implemented for GNU/Linux. They require a 2.5.x or later
453 * GDB supports logging output to a file
455 There are two new commands, "set logging" and "show logging", which can be
456 used to capture GDB's output to a file.
458 * The meaning of "detach" has changed for gdbserver
460 The "detach" command will now resume the application, as documented. To
461 disconnect from gdbserver and leave it stopped, use the new "disconnect"
464 * d10v, m68hc11 `regs' command deprecated
466 The `info registers' command has been updated so that it displays the
467 registers using a format identical to the old `regs' command.
471 A new command, "maint set profile on/off", has been added. This command can
472 be used to enable or disable profiling while running GDB, to profile a
473 session or a set of commands. In addition there is a new configure switch,
474 "--enable-profiling", which will cause GDB to be compiled with profiling
475 data, for more informative profiling results.
477 * Default MI syntax changed to "mi2".
479 The default MI (machine interface) syntax, enabled by the command line
480 option "-i=mi", has been changed to "mi2". The previous MI syntax,
481 "mi1", can be enabled by specifying the option "-i=mi1".
483 Support for the original "mi0" syntax (included in GDB 5.0) has been
486 Fix for gdb/192: removed extraneous space when displaying frame level.
487 Fix for gdb/672: update changelist is now output in mi list format.
488 Fix for gdb/702: a -var-assign that updates the value now shows up
489 in a subsequent -var-update.
491 * New native configurations.
493 FreeBSD/amd64 x86_64-*-freebsd*
495 * Multi-arched targets.
497 HP/PA HPUX11 hppa*-*-hpux*
498 Renesas M32R/D w/simulator m32r-*-elf*
500 * OBSOLETE configurations and files
502 Configurations that have been declared obsolete in this release have
503 been commented out. Unless there is activity to revive these
504 configurations, the next release of GDB will have their sources
507 Z8000 simulator z8k-zilog-none or z8ksim
508 Matsushita MN10200 w/simulator mn10200-*-*
509 H8/500 simulator h8500-hitachi-hms or h8500hms
510 HP/PA running BSD hppa*-*-bsd*
511 HP/PA running OSF/1 hppa*-*-osf*
512 HP/PA Pro target hppa*-*-pro*
513 PMAX (MIPS) running Mach 3.0 mips*-*-mach3*
514 Sequent family i[3456]86-sequent-sysv4*
515 i[3456]86-sequent-sysv*
516 i[3456]86-sequent-bsd*
517 Tsqware Sparclet sparclet-*-*
518 Fujitsu SPARClite sparclite-fujitsu-none or sparclite
520 * REMOVED configurations and files
523 Motorola Delta 88000 running Sys V m88k-motorola-sysv or delta88
524 IBM AIX PS/2 i[3456]86-*-aix
525 i386 running Mach 3.0 i[3456]86-*-mach3*
526 i386 running Mach i[3456]86-*-mach*
527 i386 running OSF/1 i[3456]86-*osf1mk*
528 HP/Apollo 68k Family m68*-apollo*-sysv*,
530 m68*-hp-bsd*, m68*-hp-hpux*
531 Argonaut Risc Chip (ARC) arc-*-*
532 Mitsubishi D30V d30v-*-*
533 Fujitsu FR30 fr30-*-elf*
534 OS/9000 i[34]86-*-os9k
535 I960 with MON960 i960-*-coff
537 * MIPS $fp behavior changed
539 The convenience variable $fp, for the MIPS, now consistently returns
540 the address of the current frame's base. Previously, depending on the
541 context, $fp could refer to either $sp or the current frame's base
542 address. See ``8.10 Registers'' in the manual ``Debugging with GDB:
543 The GNU Source-Level Debugger''.
545 *** Changes in GDB 5.3:
547 * GNU/Linux shared library multi-threaded performance improved.
549 When debugging a multi-threaded application on GNU/Linux, GDB now uses
550 `/proc', in preference to `ptrace' for memory reads. This may result
551 in an improvement in the start-up time of multi-threaded, shared
552 library applications when run under GDB. One GDB user writes: ``loads
553 shared libs like mad''.
555 * ``gdbserver'' now supports multi-threaded applications on some targets
557 Support for debugging multi-threaded applications which use
558 the GNU/Linux LinuxThreads package has been added for
559 arm*-*-linux*-gnu*, i[3456]86-*-linux*-gnu*, mips*-*-linux*-gnu*,
560 powerpc*-*-linux*-gnu*, and sh*-*-linux*-gnu*.
562 * GDB now supports C/C++ preprocessor macros.
564 GDB now expands preprocessor macro invocations in C/C++ expressions,
565 and provides various commands for showing macro definitions and how
568 The new command `macro expand EXPRESSION' expands any macro
569 invocations in expression, and shows the result.
571 The new command `show macro MACRO-NAME' shows the definition of the
572 macro named MACRO-NAME, and where it was defined.
574 Most compilers don't include information about macros in the debugging
575 information by default. In GCC 3.1, for example, you need to compile
576 your program with the options `-gdwarf-2 -g3'. If the macro
577 information is present in the executable, GDB will read it.
579 * Multi-arched targets.
581 DEC Alpha (partial) alpha*-*-*
582 DEC VAX (partial) vax-*-*
584 National Semiconductor NS32000 (partial) ns32k-*-*
585 Motorola 68000 (partial) m68k-*-*
586 Motorola MCORE mcore-*-*
590 Fujitsu FRV architecture added by Red Hat frv*-*-*
593 * New native configurations
595 Alpha NetBSD alpha*-*-netbsd*
596 SH NetBSD sh*-*-netbsdelf*
597 MIPS NetBSD mips*-*-netbsd*
598 UltraSPARC NetBSD sparc64-*-netbsd*
600 * OBSOLETE configurations and files
602 Configurations that have been declared obsolete in this release have
603 been commented out. Unless there is activity to revive these
604 configurations, the next release of GDB will have their sources
607 Mitsubishi D30V d30v-*-*
608 OS/9000 i[34]86-*-os9k
609 IBM AIX PS/2 i[3456]86-*-aix
610 Fujitsu FR30 fr30-*-elf*
611 Motorola Delta 88000 running Sys V m88k-motorola-sysv or delta88
612 Argonaut Risc Chip (ARC) arc-*-*
613 i386 running Mach 3.0 i[3456]86-*-mach3*
614 i386 running Mach i[3456]86-*-mach*
615 i386 running OSF/1 i[3456]86-*osf1mk*
616 HP/Apollo 68k Family m68*-apollo*-sysv*,
618 m68*-hp-bsd*, m68*-hp-hpux*
619 I960 with MON960 i960-*-coff
623 CHILL, a Pascal like language used by telecommunications companies.
625 * REMOVED configurations and files
627 AMD 29k family via UDI a29k-amd-udi, udi29k
628 A29K VxWorks a29k-*-vxworks
629 AMD 29000 embedded, using EBMON a29k-none-none
630 AMD 29000 embedded with COFF a29k-none-coff
631 AMD 29000 embedded with a.out a29k-none-aout
633 testsuite/gdb.hp/gdb.threads-hp/ directory
635 * New command "set max-user-call-depth <nnn>"
637 This command allows the user to limit the call depth of user-defined
638 commands. The default is 1024.
640 * Changes in FreeBSD/i386 native debugging.
642 Support for the "generate-core-file" has been added.
644 * New commands "dump", "append", and "restore".
646 These commands allow data to be copied from target memory
647 to a bfd-format or binary file (dump and append), and back
648 from a file into memory (restore).
650 * Improved "next/step" support on multi-processor Alpha Tru64.
652 The previous single-step mechanism could cause unpredictable problems,
653 including the random appearance of SIGSEGV or SIGTRAP signals. The use
654 of a software single-step mechanism prevents this.
656 *** Changes in GDB 5.2.1:
664 gdb/182: gdb/323: gdb/237: On alpha, gdb was reporting:
665 mdebugread.c:2443: gdb-internal-error: sect_index_data not initialized
666 Fix, by Joel Brobecker imported from mainline.
668 gdb/439: gdb/291: On some ELF object files, gdb was reporting:
669 dwarf2read.c:1072: gdb-internal-error: sect_index_text not initialize
670 Fix, by Fred Fish, imported from mainline.
672 Dwarf2 .debug_frame & .eh_frame handler improved in many ways.
673 Surprisingly enough, it works now.
674 By Michal Ludvig, imported from mainline.
676 i386 hardware watchpoint support:
677 avoid misses on second run for some targets.
678 By Pierre Muller, imported from mainline.
680 *** Changes in GDB 5.2:
682 * New command "set trust-readonly-sections on[off]".
684 This command is a hint that tells gdb that read-only sections
685 really are read-only (ie. that their contents will not change).
686 In this mode, gdb will go to the object file rather than the
687 target to read memory from read-only sections (such as ".text").
688 This can be a significant performance improvement on some
689 (notably embedded) targets.
691 * New command "generate-core-file" (or "gcore").
693 This new gdb command allows the user to drop a core file of the child
694 process state at any time. So far it's been implemented only for
695 GNU/Linux and Solaris, but should be relatively easily ported to other
696 hosts. Argument is core file name (defaults to core.<pid>).
698 * New command line option
700 GDB now accepts --pid or -p followed by a process id.
702 * Change in command line behavior -- corefiles vs. process ids.
704 There is a subtle behavior in the way in which GDB handles
705 command line arguments. The first non-flag argument is always
706 a program to debug, but the second non-flag argument may either
707 be a corefile or a process id. Previously, GDB would attempt to
708 open the second argument as a corefile, and if that failed, would
709 issue a superfluous error message and then attempt to attach it as
710 a process. Now, if the second argument begins with a non-digit,
711 it will be treated as a corefile. If it begins with a digit,
712 GDB will attempt to attach it as a process, and if no such process
713 is found, will then attempt to open it as a corefile.
715 * Changes in ARM configurations.
717 Multi-arch support is enabled for all ARM configurations. The ARM/NetBSD
718 configuration is fully multi-arch.
720 * New native configurations
722 ARM NetBSD arm*-*-netbsd*
723 x86 OpenBSD i[3456]86-*-openbsd*
724 AMD x86-64 running GNU/Linux x86_64-*-linux-*
725 Sparc64 running FreeBSD sparc64-*-freebsd*
729 Sanyo XStormy16 xstormy16-elf
731 * OBSOLETE configurations and files
733 Configurations that have been declared obsolete in this release have
734 been commented out. Unless there is activity to revive these
735 configurations, the next release of GDB will have their sources
738 AMD 29k family via UDI a29k-amd-udi, udi29k
739 A29K VxWorks a29k-*-vxworks
740 AMD 29000 embedded, using EBMON a29k-none-none
741 AMD 29000 embedded with COFF a29k-none-coff
742 AMD 29000 embedded with a.out a29k-none-aout
744 testsuite/gdb.hp/gdb.threads-hp/ directory
746 * REMOVED configurations and files
748 TI TMS320C80 tic80-*-*
750 PowerPC Solaris powerpcle-*-solaris*
751 PowerPC Windows NT powerpcle-*-cygwin32
752 PowerPC Netware powerpc-*-netware*
753 Harris/CXUX m88k m88*-harris-cxux*
754 Most ns32k hosts and targets ns32k-*-mach3* ns32k-umax-*
755 ns32k-utek-sysv* ns32k-utek-*
756 SunOS 4.0.Xi on i386 i[3456]86-*-sunos*
757 Ultracomputer (29K) running Sym1 a29k-nyu-sym1 a29k-*-kern*
758 Sony NEWS (68K) running NEWSOS 3.x m68*-sony-sysv news
759 ISI Optimum V (3.05) under 4.3bsd. m68*-isi-*
760 Apple Macintosh (MPW) host and target N/A host, powerpc-*-macos*
762 * Changes to command line processing
764 The new `--args' feature can be used to specify command-line arguments
765 for the inferior from gdb's command line.
767 * Changes to key bindings
769 There is a new `operate-and-get-next' function bound to `C-o'.
771 *** Changes in GDB 5.1.1
773 Fix compile problem on DJGPP.
775 Fix a problem with floating-point registers on the i386 being
778 Fix to stop GDB crashing on .debug_str debug info.
780 Numerous documentation fixes.
782 Numerous testsuite fixes.
784 *** Changes in GDB 5.1:
786 * New native configurations
788 Alpha FreeBSD alpha*-*-freebsd*
789 x86 FreeBSD 3.x and 4.x i[3456]86*-freebsd[34]*
790 MIPS GNU/Linux mips*-*-linux*
791 MIPS SGI Irix 6.x mips*-sgi-irix6*
793 s390 and s390x GNU/Linux {s390,s390x}-*-linux*
797 Motorola 68HC11 and 68HC12 m68hc11-elf
799 UltraSparc running GNU/Linux sparc64-*-linux*
801 * OBSOLETE configurations and files
803 x86 FreeBSD before 2.2 i[3456]86*-freebsd{1,2.[01]}*,
804 Harris/CXUX m88k m88*-harris-cxux*
805 Most ns32k hosts and targets ns32k-*-mach3* ns32k-umax-*
806 ns32k-utek-sysv* ns32k-utek-*
807 TI TMS320C80 tic80-*-*
809 Ultracomputer (29K) running Sym1 a29k-nyu-sym1 a29k-*-kern*
810 PowerPC Solaris powerpcle-*-solaris*
811 PowerPC Windows NT powerpcle-*-cygwin32
812 PowerPC Netware powerpc-*-netware*
813 SunOS 4.0.Xi on i386 i[3456]86-*-sunos*
814 Sony NEWS (68K) running NEWSOS 3.x m68*-sony-sysv news
815 ISI Optimum V (3.05) under 4.3bsd. m68*-isi-*
816 Apple Macintosh (MPW) host N/A
818 stuff.c (Program to stuff files into a specially prepared space in kdb)
819 kdb-start.c (Main loop for the standalone kernel debugger)
821 Configurations that have been declared obsolete in this release have
822 been commented out. Unless there is activity to revive these
823 configurations, the next release of GDB will have their sources
826 * REMOVED configurations and files
828 Altos 3068 m68*-altos-*
829 Convex c1-*-*, c2-*-*
831 ARM RISCix arm-*-* (as host)
835 * GDB has been converted to ISO C.
837 GDB's source code has been converted to ISO C. In particular, the
838 sources are fully protoized, and rely on standard headers being
843 * "info symbol" works on platforms which use COFF, ECOFF, XCOFF, and NLM.
845 * The MI enabled by default.
847 The new machine oriented interface (MI) introduced in GDB 5.0 has been
848 revised and enabled by default. Packages which use GDB as a debugging
849 engine behind a UI or another front end are encouraged to switch to
850 using the GDB/MI interface, instead of the old annotations interface
851 which is now deprecated.
853 * Support for debugging Pascal programs.
855 GDB now includes support for debugging Pascal programs. The following
856 main features are supported:
858 - Pascal-specific data types such as sets;
860 - automatic recognition of Pascal sources based on file-name
863 - Pascal-style display of data types, variables, and functions;
865 - a Pascal expression parser.
867 However, some important features are not yet supported.
869 - Pascal string operations are not supported at all;
871 - there are some problems with boolean types;
873 - Pascal type hexadecimal constants are not supported
874 because they conflict with the internal variables format;
876 - support for Pascal objects and classes is not full yet;
878 - unlike Pascal, GDB is case-sensitive for symbol names.
880 * Changes in completion.
882 Commands such as `shell', `run' and `set args', which pass arguments
883 to inferior programs, now complete on file names, similar to what
884 users expect at the shell prompt.
886 Commands which accept locations, such as `disassemble', `print',
887 `breakpoint', `until', etc. now complete on filenames as well as
888 program symbols. Thus, if you type "break foob TAB", and the source
889 files linked into the programs include `foobar.c', that file name will
890 be one of the candidates for completion. However, file names are not
891 considered for completion after you typed a colon that delimits a file
892 name from a name of a function in that file, as in "break foo.c:bar".
894 `set demangle-style' completes on available demangling styles.
896 * New platform-independent commands:
898 It is now possible to define a post-hook for a command as well as a
899 hook that runs before the command. For more details, see the
900 documentation of `hookpost' in the GDB manual.
902 * Changes in GNU/Linux native debugging.
904 Support for debugging multi-threaded programs has been completely
905 revised for all platforms except m68k and sparc. You can now debug as
906 many threads as your system allows you to have.
908 Attach/detach is supported for multi-threaded programs.
910 Support for SSE registers was added for x86. This doesn't work for
911 multi-threaded programs though.
913 * Changes in MIPS configurations.
915 Multi-arch support is enabled for all MIPS configurations.
917 GDB can now be built as native debugger on SGI Irix 6.x systems for
918 debugging n32 executables. (Debugging 64-bit executables is not yet
921 * Unified support for hardware watchpoints in all x86 configurations.
923 Most (if not all) native x86 configurations support hardware-assisted
924 breakpoints and watchpoints in a unified manner. This support
925 implements debug register sharing between watchpoints, which allows to
926 put a virtually infinite number of watchpoints on the same address,
927 and also supports watching regions up to 16 bytes with several debug
930 The new maintenance command `maintenance show-debug-regs' toggles
931 debugging print-outs in functions that insert, remove, and test
932 watchpoints and hardware breakpoints.
934 * Changes in the DJGPP native configuration.
936 New command ``info dos sysinfo'' displays assorted information about
937 the CPU, OS, memory, and DPMI server.
939 New commands ``info dos gdt'', ``info dos ldt'', and ``info dos idt''
940 display information about segment descriptors stored in GDT, LDT, and
943 New commands ``info dos pde'' and ``info dos pte'' display entries
944 from Page Directory and Page Tables (for now works with CWSDPMI only).
945 New command ``info dos address-pte'' displays the Page Table entry for
946 a given linear address.
948 GDB can now pass command lines longer than 126 characters to the
949 program being debugged (requires an update to the libdbg.a library
950 which is part of the DJGPP development kit).
952 DWARF2 debug info is now supported.
954 It is now possible to `step' and `next' through calls to `longjmp'.
956 * Changes in documentation.
958 All GDB documentation was converted to GFDL, the GNU Free
959 Documentation License.
961 Tracepoints-related commands are now fully documented in the GDB
964 TUI, the Text-mode User Interface, is now documented in the manual.
966 Tracepoints-related commands are now fully documented in the GDB
969 The "GDB Internals" manual now has an index. It also includes
970 documentation of `ui_out' functions, GDB coding standards, x86
971 hardware watchpoints, and memory region attributes.
973 * GDB's version number moved to ``version.in''
975 The Makefile variable VERSION has been replaced by the file
976 ``version.in''. People creating GDB distributions should update the
977 contents of this file.
981 GUD support is now a standard part of the EMACS distribution.
983 *** Changes in GDB 5.0:
985 * Improved support for debugging FP programs on x86 targets
987 Unified and much-improved support for debugging floating-point
988 programs on all x86 targets. In particular, ``info float'' now
989 displays the FP registers in the same format on all x86 targets, with
990 greater level of detail.
992 * Improvements and bugfixes in hardware-assisted watchpoints
994 It is now possible to watch array elements, struct members, and
995 bitfields with hardware-assisted watchpoints. Data-read watchpoints
996 on x86 targets no longer erroneously trigger when the address is
999 * Improvements in the native DJGPP version of GDB
1001 The distribution now includes all the scripts and auxiliary files
1002 necessary to build the native DJGPP version on MS-DOS/MS-Windows
1003 machines ``out of the box''.
1005 The DJGPP version can now debug programs that use signals. It is
1006 possible to catch signals that happened in the debuggee, deliver
1007 signals to it, interrupt it with Ctrl-C, etc. (Previously, a signal
1008 would kill the program being debugged.) Programs that hook hardware
1009 interrupts (keyboard, timer, etc.) can also be debugged.
1011 It is now possible to debug DJGPP programs that redirect their
1012 standard handles or switch them to raw (as opposed to cooked) mode, or
1013 even close them. The command ``run < foo > bar'' works as expected,
1014 and ``info terminal'' reports useful information about the debuggee's
1015 terminal, including raw/cooked mode, redirection, etc.
1017 The DJGPP version now uses termios functions for console I/O, which
1018 enables debugging graphics programs. Interrupting GDB with Ctrl-C
1021 DOS-style file names with drive letters are now fully supported by
1024 It is now possible to debug DJGPP programs that switch their working
1025 directory. It is also possible to rerun the debuggee any number of
1026 times without restarting GDB; thus, you can use the same setup,
1027 breakpoints, etc. for many debugging sessions.
1029 * New native configurations
1031 ARM GNU/Linux arm*-*-linux*
1032 PowerPC GNU/Linux powerpc-*-linux*
1036 Motorola MCore mcore-*-*
1037 x86 VxWorks i[3456]86-*-vxworks*
1038 PowerPC VxWorks powerpc-*-vxworks*
1039 TI TMS320C80 tic80-*-*
1041 * OBSOLETE configurations
1043 Altos 3068 m68*-altos-*
1044 Convex c1-*-*, c2-*-*
1046 ARM RISCix arm-*-* (as host)
1049 Configurations that have been declared obsolete will be commented out,
1050 but the code will be left in place. If there is no activity to revive
1051 these configurations before the next release of GDB, the sources will
1052 be permanently REMOVED.
1054 * Gould support removed
1056 Support for the Gould PowerNode and NP1 has been removed.
1058 * New features for SVR4
1060 On SVR4 native platforms (such as Solaris), if you attach to a process
1061 without first loading a symbol file, GDB will now attempt to locate and
1062 load symbols from the running process's executable file.
1064 * Many C++ enhancements
1066 C++ support has been greatly improved. Overload resolution now works properly
1067 in almost all cases. RTTI support is on the way.
1069 * Remote targets can connect to a sub-program
1071 A popen(3) style serial-device has been added. This device starts a
1072 sub-process (such as a stand-alone simulator) and then communicates
1073 with that. The sub-program to run is specified using the syntax
1074 ``|<program> <args>'' vis:
1076 (gdb) set remotedebug 1
1077 (gdb) target extended-remote |mn10300-elf-sim program-args
1079 * MIPS 64 remote protocol
1081 A long standing bug in the mips64 remote protocol where by GDB
1082 expected certain 32 bit registers (ex SR) to be transfered as 32
1083 instead of 64 bits has been fixed.
1085 The command ``set remote-mips64-transfers-32bit-regs on'' has been
1086 added to provide backward compatibility with older versions of GDB.
1088 * ``set remotebinarydownload'' replaced by ``set remote X-packet''
1090 The command ``set remotebinarydownload'' command has been replaced by
1091 ``set remote X-packet''. Other commands in ``set remote'' family
1092 include ``set remote P-packet''.
1094 * Breakpoint commands accept ranges.
1096 The breakpoint commands ``enable'', ``disable'', and ``delete'' now
1097 accept a range of breakpoints, e.g. ``5-7''. The tracepoint command
1098 ``tracepoint passcount'' also accepts a range of tracepoints.
1100 * ``apropos'' command added.
1102 The ``apropos'' command searches through command names and
1103 documentation strings, printing out matches, making it much easier to
1104 try to find a command that does what you are looking for.
1108 A new machine oriented interface (MI) has been added to GDB. This
1109 interface is designed for debug environments running GDB as a separate
1110 process. This is part of the long term libGDB project. See the
1111 "GDB/MI" chapter of the GDB manual for further information. It can be
1112 enabled by configuring with:
1114 .../configure --enable-gdbmi
1116 *** Changes in GDB-4.18:
1118 * New native configurations
1120 HP-UX 10.20 hppa*-*-hpux10.20
1121 HP-UX 11.x hppa*-*-hpux11.0*
1122 M68K GNU/Linux m68*-*-linux*
1126 Fujitsu FR30 fr30-*-elf*
1127 Intel StrongARM strongarm-*-*
1128 Mitsubishi D30V d30v-*-*
1130 * OBSOLETE configurations
1132 Gould PowerNode, NP1 np1-*-*, pn-*-*
1134 Configurations that have been declared obsolete will be commented out,
1135 but the code will be left in place. If there is no activity to revive
1136 these configurations before the next release of GDB, the sources will
1137 be permanently REMOVED.
1141 As a compatibility experiment, GDB's source files buildsym.h and
1142 buildsym.c have been converted to pure standard C, no longer
1143 containing any K&R compatibility code. We believe that all systems in
1144 use today either come with a standard C compiler, or have a GCC port
1145 available. If this is not true, please report the affected
1146 configuration to bug-gdb@gnu.org immediately. See the README file for
1147 information about getting a standard C compiler if you don't have one
1152 GDB now uses readline 2.2.
1154 * set extension-language
1156 You can now control the mapping between filename extensions and source
1157 languages by using the `set extension-language' command. For instance,
1158 you can ask GDB to treat .c files as C++ by saying
1159 set extension-language .c c++
1160 The command `info extensions' lists all of the recognized extensions
1161 and their associated languages.
1163 * Setting processor type for PowerPC and RS/6000
1165 When GDB is configured for a powerpc*-*-* or an rs6000*-*-* target,
1166 you can use the `set processor' command to specify what variant of the
1167 PowerPC family you are debugging. The command
1171 sets the PowerPC/RS6000 variant to NAME. GDB knows about the
1172 following PowerPC and RS6000 variants:
1174 ppc-uisa PowerPC UISA - a PPC processor as viewed by user-level code
1175 rs6000 IBM RS6000 ("POWER") architecture, user-level view
1177 403GC IBM PowerPC 403GC
1178 505 Motorola PowerPC 505
1179 860 Motorola PowerPC 860 or 850
1180 601 Motorola PowerPC 601
1181 602 Motorola PowerPC 602
1182 603 Motorola/IBM PowerPC 603 or 603e
1183 604 Motorola PowerPC 604 or 604e
1184 750 Motorola/IBM PowerPC 750 or 750
1186 At the moment, this command just tells GDB what to name the
1187 special-purpose processor registers. Since almost all the affected
1188 registers are inaccessible to user-level programs, this command is
1189 only useful for remote debugging in its present form.
1193 Thanks to a major code donation from Hewlett-Packard, GDB now has much
1194 more extensive support for HP-UX. Added features include shared
1195 library support, kernel threads and hardware watchpoints for 11.00,
1196 support for HP's ANSI C and C++ compilers, and a compatibility mode
1197 for xdb and dbx commands.
1201 HP's donation includes the new concept of catchpoints, which is a
1202 generalization of the old catch command. On HP-UX, it is now possible
1203 to catch exec, fork, and vfork, as well as library loading.
1205 This means that the existing catch command has changed; its first
1206 argument now specifies the type of catch to be set up. See the
1207 output of "help catch" for a list of catchpoint types.
1209 * Debugging across forks
1211 On HP-UX, you can choose which process to debug when a fork() happens
1216 HP has donated a curses-based terminal user interface (TUI). To get
1217 it, build with --enable-tui. Although this can be enabled for any
1218 configuration, at present it only works for native HP debugging.
1220 * GDB remote protocol additions
1222 A new protocol packet 'X' that writes binary data is now available.
1223 Default behavior is to try 'X', then drop back to 'M' if the stub
1224 fails to respond. The settable variable `remotebinarydownload'
1225 allows explicit control over the use of 'X'.
1227 For 64-bit targets, the memory packets ('M' and 'm') can now contain a
1228 full 64-bit address. The command
1230 set remoteaddresssize 32
1232 can be used to revert to the old behaviour. For existing remote stubs
1233 the change should not be noticed, as the additional address information
1236 In order to assist in debugging stubs, you may use the maintenance
1237 command `packet' to send any text string to the stub. For instance,
1239 maint packet heythere
1241 sends the packet "$heythere#<checksum>". Note that it is very easy to
1242 disrupt a debugging session by sending the wrong packet at the wrong
1245 The compare-sections command allows you to compare section data on the
1246 target to what is in the executable file without uploading or
1247 downloading, by comparing CRC checksums.
1249 * Tracing can collect general expressions
1251 You may now collect general expressions at tracepoints. This requires
1252 further additions to the target-side stub; see tracepoint.c and
1253 doc/agentexpr.texi for further details.
1255 * mask-address variable for Mips
1257 For Mips targets, you may control the zeroing of the upper 32 bits of
1258 a 64-bit address by entering `set mask-address on'. This is mainly
1259 of interest to users of embedded R4xxx and R5xxx processors.
1261 * Higher serial baud rates
1263 GDB's serial code now allows you to specify baud rates 57600, 115200,
1264 230400, and 460800 baud. (Note that your host system may not be able
1265 to achieve all of these rates.)
1269 The i960 configuration now includes an initial implementation of a
1270 builtin simulator, contributed by Jim Wilson.
1273 *** Changes in GDB-4.17:
1275 * New native configurations
1277 Alpha GNU/Linux alpha*-*-linux*
1278 Unixware 2.x i[3456]86-unixware2*
1279 Irix 6.x mips*-sgi-irix6*
1280 PowerPC GNU/Linux powerpc-*-linux*
1281 PowerPC Solaris powerpcle-*-solaris*
1282 Sparc GNU/Linux sparc-*-linux*
1283 Motorola sysV68 R3V7.1 m68k-motorola-sysv
1287 Argonaut Risc Chip (ARC) arc-*-*
1288 Hitachi H8/300S h8300*-*-*
1289 Matsushita MN10200 w/simulator mn10200-*-*
1290 Matsushita MN10300 w/simulator mn10300-*-*
1291 MIPS NEC VR4100 mips64*vr4100*{,el}-*-elf*
1292 MIPS NEC VR5000 mips64*vr5000*{,el}-*-elf*
1293 MIPS Toshiba TX39 mips64*tx39*{,el}-*-elf*
1294 Mitsubishi D10V w/simulator d10v-*-*
1295 Mitsubishi M32R/D w/simulator m32r-*-elf*
1296 Tsqware Sparclet sparclet-*-*
1297 NEC V850 w/simulator v850-*-*
1299 * New debugging protocols
1301 ARM with RDI protocol arm*-*-*
1302 M68K with dBUG monitor m68*-*-{aout,coff,elf}
1303 DDB and LSI variants of PMON protocol mips*-*-*
1304 PowerPC with DINK32 monitor powerpc{,le}-*-eabi
1305 PowerPC with SDS protocol powerpc{,le}-*-eabi
1306 Macraigor OCD (Wiggler) devices powerpc{,le}-*-eabi
1310 All configurations can now understand and use the DWARF 2 debugging
1311 format. The choice is automatic, if the symbol file contains DWARF 2
1316 GDB now includes basic Java language support. This support is
1317 only useful with Java compilers that produce native machine code.
1319 * solib-absolute-prefix and solib-search-path
1321 For SunOS and SVR4 shared libraries, you may now set the prefix for
1322 loading absolute shared library symbol files, and the search path for
1323 locating non-absolute shared library symbol files.
1325 * Live range splitting
1327 GDB can now effectively debug code for which GCC has performed live
1328 range splitting as part of its optimization. See gdb/doc/LRS for
1329 more details on the expected format of the stabs information.
1333 GDB's support for the GNU Hurd, including thread debugging, has been
1334 updated to work with current versions of the Hurd.
1338 GDB's ARM target configuration now handles the ARM7T (Thumb) 16-bit
1339 instruction set. ARM GDB automatically detects when Thumb
1340 instructions are in use, and adjusts disassembly and backtracing
1345 GDB's MIPS target configurations now handle the MIP16 16-bit
1350 GDB now includes support for overlays; if an executable has been
1351 linked such that multiple sections are based at the same address, GDB
1352 will decide which section to use for symbolic info. You can choose to
1353 control the decision manually, using overlay commands, or implement
1354 additional target-side support and use "overlay load-target" to bring
1355 in the overlay mapping. Do "help overlay" for more detail.
1359 The command "info symbol <address>" displays information about
1360 the symbol at the specified address.
1364 The standard remote protocol now includes an extension that allows
1365 asynchronous collection and display of trace data. This requires
1366 extensive support in the target-side debugging stub. Tracing mode
1367 includes a new interaction mode in GDB and new commands: see the
1368 file tracepoint.c for more details.
1372 Configurations for embedded MIPS now include a simulator contributed
1373 by Cygnus Solutions. The simulator supports the instruction sets
1374 of most MIPS variants.
1378 Sparc configurations may now include the ERC32 simulator contributed
1379 by the European Space Agency. The simulator is not built into
1380 Sparc targets by default; configure with --enable-sim to include it.
1384 For target configurations that may include multiple variants of a
1385 basic architecture (such as MIPS and SH), you may now set the
1386 architecture explicitly. "set arch" sets, "info arch" lists
1387 the possible architectures.
1389 *** Changes in GDB-4.16:
1391 * New native configurations
1393 Windows 95, x86 Windows NT i[345]86-*-cygwin32
1394 M68K NetBSD m68k-*-netbsd*
1395 PowerPC AIX 4.x powerpc-*-aix*
1396 PowerPC MacOS powerpc-*-macos*
1397 PowerPC Windows NT powerpcle-*-cygwin32
1398 RS/6000 AIX 4.x rs6000-*-aix4*
1402 ARM with RDP protocol arm-*-*
1403 I960 with MON960 i960-*-coff
1404 MIPS VxWorks mips*-*-vxworks*
1405 MIPS VR4300 with PMON mips64*vr4300{,el}-*-elf*
1406 PowerPC with PPCBUG monitor powerpc{,le}-*-eabi*
1408 Matra Sparclet sparclet-*-*
1412 The powerpc-eabi configuration now includes the PSIM simulator,
1413 contributed by Andrew Cagney, with assistance from Mike Meissner.
1414 PSIM is a very elaborate model of the PowerPC, including not only
1415 basic instruction set execution, but also details of execution unit
1416 performance and I/O hardware. See sim/ppc/README for more details.
1420 GDB now works with Solaris 2.5.
1422 * Windows 95/NT native
1424 GDB will now work as a native debugger on Windows 95 and Windows NT.
1425 To build it from source, you must use the "gnu-win32" environment,
1426 which uses a DLL to emulate enough of Unix to run the GNU tools.
1427 Further information, binaries, and sources are available at
1428 ftp.cygnus.com, under pub/gnu-win32.
1430 * dont-repeat command
1432 If a user-defined command includes the command `dont-repeat', then the
1433 command will not be repeated if the user just types return. This is
1434 useful if the command is time-consuming to run, so that accidental
1435 extra keystrokes don't run the same command many times.
1437 * Send break instead of ^C
1439 The standard remote protocol now includes an option to send a break
1440 rather than a ^C to the target in order to interrupt it. By default,
1441 GDB will send ^C; to send a break, set the variable `remotebreak' to 1.
1443 * Remote protocol timeout
1445 The standard remote protocol includes a new variable `remotetimeout'
1446 that allows you to set the number of seconds before GDB gives up trying
1447 to read from the target. The default value is 2.
1449 * Automatic tracking of dynamic object loading (HPUX and Solaris only)
1451 By default GDB will automatically keep track of objects as they are
1452 loaded and unloaded by the dynamic linker. By using the command `set
1453 stop-on-solib-events 1' you can arrange for GDB to stop the inferior
1454 when shared library events occur, thus allowing you to set breakpoints
1455 in shared libraries which are explicitly loaded by the inferior.
1457 Note this feature does not work on hpux8. On hpux9 you must link
1458 /usr/lib/end.o into your program. This feature should work
1459 automatically on hpux10.
1461 * Irix 5.x hardware watchpoint support
1463 Irix 5 configurations now support the use of hardware watchpoints.
1465 * Mips protocol "SYN garbage limit"
1467 When debugging a Mips target using the `target mips' protocol, you
1468 may set the number of characters that GDB will ignore by setting
1469 the `syn-garbage-limit'. A value of -1 means that GDB will ignore
1470 every character. The default value is 1050.
1472 * Recording and replaying remote debug sessions
1474 If you set `remotelogfile' to the name of a file, gdb will write to it
1475 a recording of a remote debug session. This recording may then be
1476 replayed back to gdb using "gdbreplay". See gdbserver/README for
1477 details. This is useful when you have a problem with GDB while doing
1478 remote debugging; you can make a recording of the session and send it
1479 to someone else, who can then recreate the problem.
1481 * Speedups for remote debugging
1483 GDB includes speedups for downloading and stepping MIPS systems using
1484 the IDT monitor, fast downloads to the Hitachi SH E7000 emulator,
1485 and more efficient S-record downloading.
1487 * Memory use reductions and statistics collection
1489 GDB now uses less memory and reports statistics about memory usage.
1490 Try the `maint print statistics' command, for example.
1492 *** Changes in GDB-4.15:
1494 * Psymtabs for XCOFF
1496 The symbol reader for AIX GDB now uses partial symbol tables. This
1497 can greatly improve startup time, especially for large executables.
1499 * Remote targets use caching
1501 Remote targets now use a data cache to speed up communication with the
1502 remote side. The data cache could lead to incorrect results because
1503 it doesn't know about volatile variables, thus making it impossible to
1504 debug targets which use memory mapped I/O devices. `set remotecache
1505 off' turns the the data cache off.
1507 * Remote targets may have threads
1509 The standard remote protocol now includes support for multiple threads
1510 in the target system, using new protocol commands 'H' and 'T'. See
1511 gdb/remote.c for details.
1515 If GDB is configured with `--enable-netrom', then it will include
1516 support for the NetROM ROM emulator from XLNT Designs. The NetROM
1517 acts as though it is a bank of ROM on the target board, but you can
1518 write into it over the network. GDB's support consists only of
1519 support for fast loading into the emulated ROM; to debug, you must use
1520 another protocol, such as standard remote protocol. The usual
1521 sequence is something like
1523 target nrom <netrom-hostname>
1525 target remote <netrom-hostname>:1235
1529 GDB now includes support for the Apple Macintosh, as a host only. It
1530 may be run as either an MPW tool or as a standalone application, and
1531 it can debug through the serial port. All the usual GDB commands are
1532 available, but to the target command, you must supply "serial" as the
1533 device type instead of "/dev/ttyXX". See mpw-README in the main
1534 directory for more information on how to build. The MPW configuration
1535 scripts */mpw-config.in support only a few targets, and only the
1536 mips-idt-ecoff target has been tested.
1540 GDB configuration now uses autoconf. This is not user-visible,
1541 but does simplify configuration and building.
1545 GDB now supports hpux10.
1547 *** Changes in GDB-4.14:
1549 * New native configurations
1551 x86 FreeBSD i[345]86-*-freebsd
1552 x86 NetBSD i[345]86-*-netbsd
1553 NS32k NetBSD ns32k-*-netbsd
1554 Sparc NetBSD sparc-*-netbsd
1558 A29K VxWorks a29k-*-vxworks
1559 HP PA PRO embedded (WinBond W89K & Oki OP50N) hppa*-*-pro*
1560 CPU32 EST-300 emulator m68*-*-est*
1561 PowerPC ELF powerpc-*-elf
1564 * Alpha OSF/1 support for procfs
1566 GDB now supports procfs under OSF/1-2.x and higher, which makes it
1567 possible to attach to running processes. As the mounting of the /proc
1568 filesystem is optional on the Alpha, GDB automatically determines
1569 the availability of /proc during startup. This can lead to problems
1570 if /proc is unmounted after GDB has been started.
1572 * Arguments to user-defined commands
1574 User commands may accept up to 10 arguments separated by whitespace.
1575 Arguments are accessed within the user command via $arg0..$arg9. A
1578 print $arg0 + $arg1 + $arg2
1580 To execute the command use:
1583 Defines the command "adder" which prints the sum of its three arguments.
1584 Note the arguments are text substitutions, so they may reference variables,
1585 use complex expressions, or even perform inferior function calls.
1587 * New `if' and `while' commands
1589 This makes it possible to write more sophisticated user-defined
1590 commands. Both commands take a single argument, which is the
1591 expression to evaluate, and must be followed by the commands to
1592 execute, one per line, if the expression is nonzero, the list being
1593 terminated by the word `end'. The `if' command list may include an
1594 `else' word, which causes the following commands to be executed only
1595 if the expression is zero.
1597 * Fortran source language mode
1599 GDB now includes partial support for Fortran 77. It will recognize
1600 Fortran programs and can evaluate a subset of Fortran expressions, but
1601 variables and functions may not be handled correctly. GDB will work
1602 with G77, but does not yet know much about symbols emitted by other
1605 * Better HPUX support
1607 Most debugging facilities now work on dynamic executables for HPPAs
1608 running hpux9 or later. You can attach to running dynamically linked
1609 processes, but by default the dynamic libraries will be read-only, so
1610 for instance you won't be able to put breakpoints in them. To change
1611 that behavior do the following before running the program:
1617 This will cause the libraries to be mapped private and read-write.
1618 To revert to the normal behavior, do this:
1624 You cannot set breakpoints or examine data in the library until after
1625 the library is loaded if the function/data symbols do not have
1628 GDB can now also read debug symbols produced by the HP C compiler on
1629 HPPAs (sorry, no C++, Fortran or 68k support).
1631 * Target byte order now dynamically selectable
1633 You can choose which byte order to use with a target system, via the
1634 commands "set endian big" and "set endian little", and you can see the
1635 current setting by using "show endian". You can also give the command
1636 "set endian auto", in which case GDB will use the byte order
1637 associated with the executable. Currently, only embedded MIPS
1638 configurations support dynamic selection of target byte order.
1640 * New DOS host serial code
1642 This version uses DPMI interrupts to handle buffered I/O, so you
1643 no longer need to run asynctsr when debugging boards connected to
1646 *** Changes in GDB-4.13:
1648 * New "complete" command
1650 This lists all the possible completions for the rest of the line, if it
1651 were to be given as a command itself. This is intended for use by emacs.
1653 * Trailing space optional in prompt
1655 "set prompt" no longer adds a space for you after the prompt you set. This
1656 allows you to set a prompt which ends in a space or one that does not.
1658 * Breakpoint hit counts
1660 "info break" now displays a count of the number of times the breakpoint
1661 has been hit. This is especially useful in conjunction with "ignore"; you
1662 can ignore a large number of breakpoint hits, look at the breakpoint info
1663 to see how many times the breakpoint was hit, then run again, ignoring one
1664 less than that number, and this will get you quickly to the last hit of
1667 * Ability to stop printing at NULL character
1669 "set print null-stop" will cause GDB to stop printing the characters of
1670 an array when the first NULL is encountered. This is useful when large
1671 arrays actually contain only short strings.
1673 * Shared library breakpoints
1675 In SunOS 4.x, SVR4, and Alpha OSF/1 configurations, you can now set
1676 breakpoints in shared libraries before the executable is run.
1678 * Hardware watchpoints
1680 There is a new hardware breakpoint for the watch command for sparclite
1681 targets. See gdb/sparclite/hw_breakpoint.note.
1683 Hardware watchpoints are also now supported under GNU/Linux.
1687 Annotations have been added. These are for use with graphical interfaces,
1688 and are still experimental. Currently only gdba.el uses these.
1690 * Improved Irix 5 support
1692 GDB now works properly with Irix 5.2.
1694 * Improved HPPA support
1696 GDB now works properly with the latest GCC and GAS.
1698 * New native configurations
1700 Sequent PTX4 i[34]86-sequent-ptx4
1701 HPPA running OSF/1 hppa*-*-osf*
1702 Atari TT running SVR4 m68*-*-sysv4*
1703 RS/6000 LynxOS rs6000-*-lynxos*
1707 OS/9000 i[34]86-*-os9k
1708 MIPS R4000 mips64*{,el}-*-{ecoff,elf}
1711 * Hitachi SH7000 and E7000-PC ICE support
1713 There is now support for communicating with the Hitachi E7000-PC ICE.
1714 This is available automatically when GDB is configured for the SH.
1718 As usual, a variety of small fixes and improvements, both generic
1719 and configuration-specific. See the ChangeLog for more detail.
1721 *** Changes in GDB-4.12:
1723 * Irix 5 is now supported
1727 GDB-4.12 on the HPPA has a number of changes which make it unable
1728 to debug the output from the currently released versions of GCC and
1729 GAS (GCC 2.5.8 and GAS-2.2 or PAGAS-1.36). Until the next major release
1730 of GCC and GAS, versions of these tools designed to work with GDB-4.12
1731 can be retrieved via anonymous ftp from jaguar.cs.utah.edu:/dist.
1734 *** Changes in GDB-4.11:
1736 * User visible changes:
1740 The "set remotedebug" option is now consistent between the mips remote
1741 target, remote targets using the gdb-specific protocol, UDI (AMD's
1742 debug protocol for the 29k) and the 88k bug monitor. It is now an
1743 integer specifying a debug level (normally 0 or 1, but 2 means more
1744 debugging info for the mips target).
1746 * DEC Alpha native support
1748 GDB now works on the DEC Alpha. GCC 2.4.5 does not produce usable
1749 debug info, but GDB works fairly well with the DEC compiler and should
1750 work with a future GCC release. See the README file for a few
1751 Alpha-specific notes.
1753 * Preliminary thread implementation
1755 GDB now has preliminary thread support for both SGI/Irix and LynxOS.
1757 * LynxOS native and target support for 386
1759 This release has been hosted on LynxOS 2.2, and also can be configured
1760 to remotely debug programs running under LynxOS (see gdb/gdbserver/README
1763 * Improvements in C++ mangling/demangling.
1765 This release has much better g++ debugging, specifically in name
1766 mangling/demangling, virtual function calls, print virtual table,
1767 call methods, ...etc.
1769 *** Changes in GDB-4.10:
1771 * User visible changes:
1773 Remote debugging using the GDB-specific (`target remote') protocol now
1774 supports the `load' command. This is only useful if you have some
1775 other way of getting the stub to the target system, and you can put it
1776 somewhere in memory where it won't get clobbered by the download.
1778 Filename completion now works.
1780 When run under emacs mode, the "info line" command now causes the
1781 arrow to point to the line specified. Also, "info line" prints
1782 addresses in symbolic form (as well as hex).
1784 All vxworks based targets now support a user settable option, called
1785 vxworks-timeout. This option represents the number of seconds gdb
1786 should wait for responses to rpc's. You might want to use this if
1787 your vxworks target is, perhaps, a slow software simulator or happens
1788 to be on the far side of a thin network line.
1792 This release contains support for using a DEC alpha as a GDB host for
1793 cross debugging. Native alpha debugging is not supported yet.
1796 *** Changes in GDB-4.9:
1800 This is the first GDB release which is accompanied by a matching testsuite.
1801 The testsuite requires installation of dejagnu, which should be available
1802 via ftp from most sites that carry GNU software.
1806 'Cfront' style demangling has had its name changed to 'ARM' style, to
1807 emphasize that it was written from the specifications in the C++ Annotated
1808 Reference Manual, not necessarily to be compatible with AT&T cfront. Despite
1809 disclaimers, it still generated too much confusion with users attempting to
1810 use gdb with AT&T cfront.
1814 GDB now uses a standard remote interface to a simulator library.
1815 So far, the library contains simulators for the Zilog Z8001/2, the
1816 Hitachi H8/300, H8/500 and Super-H.
1818 * New targets supported
1820 H8/300 simulator h8300-hitachi-hms or h8300hms
1821 H8/500 simulator h8500-hitachi-hms or h8500hms
1822 SH simulator sh-hitachi-hms or sh
1823 Z8000 simulator z8k-zilog-none or z8ksim
1824 IDT MIPS board over serial line mips-idt-ecoff
1826 Cross-debugging to GO32 targets is supported. It requires a custom
1827 version of the i386-stub.c module which is integrated with the
1828 GO32 memory extender.
1830 * New remote protocols
1832 MIPS remote debugging protocol.
1834 * New source languages supported
1836 This version includes preliminary support for Chill, a Pascal like language
1837 used by telecommunications companies. Chill support is also being integrated
1838 into the GNU compiler, but we don't know when it will be publically available.
1841 *** Changes in GDB-4.8:
1843 * HP Precision Architecture supported
1845 GDB now supports HP PA-RISC machines running HPUX. A preliminary
1846 version of this support was available as a set of patches from the
1847 University of Utah. GDB does not support debugging of programs
1848 compiled with the HP compiler, because HP will not document their file
1849 format. Instead, you must use GCC (version 2.3.2 or later) and PA-GAS
1850 (as available from jaguar.cs.utah.edu:/dist/pa-gas.u4.tar.Z).
1852 Many problems in the preliminary version have been fixed.
1854 * Faster and better demangling
1856 We have improved template demangling and fixed numerous bugs in the GNU style
1857 demangler. It can now handle type modifiers such as `static' or `const'. Wide
1858 character types (wchar_t) are now supported. Demangling of each symbol is now
1859 only done once, and is cached when the symbol table for a file is read in.
1860 This results in a small increase in memory usage for C programs, a moderate
1861 increase in memory usage for C++ programs, and a fantastic speedup in
1864 `Cfront' style demangling still doesn't work with AT&T cfront. It was written
1865 from the specifications in the Annotated Reference Manual, which AT&T's
1866 compiler does not actually implement.
1868 * G++ multiple inheritance compiler problem
1870 In the 2.3.2 release of gcc/g++, how the compiler resolves multiple
1871 inheritance lattices was reworked to properly discover ambiguities. We
1872 recently found an example which causes this new algorithm to fail in a
1873 very subtle way, producing bad debug information for those classes.
1874 The file 'gcc.patch' (in this directory) can be applied to gcc to
1875 circumvent the problem. A future GCC release will contain a complete
1878 The previous G++ debug info problem (mentioned below for the gdb-4.7
1879 release) is fixed in gcc version 2.3.2.
1881 * Improved configure script
1883 The `configure' script will now attempt to guess your system type if
1884 you don't supply a host system type. The old scheme of supplying a
1885 host system triplet is preferable over using this. All the magic is
1886 done in the new `config.guess' script. Examine it for details.
1888 We have also brought our configure script much more in line with the FSF's
1889 version. It now supports the --with-xxx options. In particular,
1890 `--with-minimal-bfd' can be used to make the GDB binary image smaller.
1891 The resulting GDB will not be able to read arbitrary object file formats --
1892 only the format ``expected'' to be used on the configured target system.
1893 We hope to make this the default in a future release.
1895 * Documentation improvements
1897 There's new internal documentation on how to modify GDB, and how to
1898 produce clean changes to the code. We implore people to read it
1899 before submitting changes.
1901 The GDB manual uses new, sexy Texinfo conditionals, rather than arcane
1902 M4 macros. The new texinfo.tex is provided in this release. Pre-built
1903 `info' files are also provided. To build `info' files from scratch,
1904 you will need the latest `makeinfo' release, which will be available in
1905 a future texinfo-X.Y release.
1907 *NOTE* The new texinfo.tex can cause old versions of TeX to hang.
1908 We're not sure exactly which versions have this problem, but it has
1909 been seen in 3.0. We highly recommend upgrading to TeX version 3.141
1910 or better. If that isn't possible, there is a patch in
1911 `texinfo/tex3patch' that will modify `texinfo/texinfo.tex' to work
1912 around this problem.
1916 GDB now supports array constants that can be used in expressions typed in by
1917 the user. The syntax is `{element, element, ...}'. Ie: you can now type
1918 `print {1, 2, 3}', and it will build up an array in memory malloc'd in
1921 The new directory `gdb/sparclite' contains a program that demonstrates
1922 how the sparc-stub.c remote stub runs on a Fujitsu SPARClite processor.
1924 * New native hosts supported
1926 HP/PA-RISC under HPUX using GNU tools hppa1.1-hp-hpux
1927 386 CPUs running SCO Unix 3.2v4 i386-unknown-sco3.2v4
1929 * New targets supported
1931 AMD 29k family via UDI a29k-amd-udi or udi29k
1933 * New file formats supported
1935 BFD now supports reading HP/PA-RISC executables (SOM file format?),
1936 HPUX core files, and SCO 3.2v2 core files.
1940 Attaching to processes now works again; thanks for the many bug reports.
1942 We have also stomped on a bunch of core dumps caused by
1943 printf_filtered("%s") problems.
1945 We eliminated a copyright problem on the rpc and ptrace header files
1946 for VxWorks, which was discovered at the last minute during the 4.7
1947 release. You should now be able to build a VxWorks GDB.
1949 You can now interrupt gdb while an attached process is running. This
1950 will cause the attached process to stop, and give control back to GDB.
1952 We fixed problems caused by using too many file descriptors
1953 for reading symbols from object files and libraries. This was
1954 especially a problem for programs that used many (~100) shared
1957 The `step' command now only enters a subroutine if there is line number
1958 information for the subroutine. Otherwise it acts like the `next'
1959 command. Previously, `step' would enter subroutines if there was
1960 any debugging information about the routine. This avoids problems
1961 when using `cc -g1' on MIPS machines.
1963 * Internal improvements
1965 GDB's internal interfaces have been improved to make it easier to support
1966 debugging of multiple languages in the future.
1968 GDB now uses a common structure for symbol information internally.
1969 Minimal symbols (derived from linkage symbols in object files), partial
1970 symbols (from a quick scan of debug information), and full symbols
1971 contain a common subset of information, making it easier to write
1972 shared code that handles any of them.
1974 * New command line options
1976 We now accept --silent as an alias for --quiet.
1980 The memory-mapped-malloc library is now licensed under the GNU Library
1981 General Public License.
1983 *** Changes in GDB-4.7:
1985 * Host/native/target split
1987 GDB has had some major internal surgery to untangle the support for
1988 hosts and remote targets. Now, when you configure GDB for a remote
1989 target, it will no longer load in all of the support for debugging
1990 local programs on the host. When fully completed and tested, this will
1991 ensure that arbitrary host/target combinations are possible.
1993 The primary conceptual shift is to separate the non-portable code in
1994 GDB into three categories. Host specific code is required any time GDB
1995 is compiled on that host, regardless of the target. Target specific
1996 code relates to the peculiarities of the target, but can be compiled on
1997 any host. Native specific code is everything else: it can only be
1998 built when the host and target are the same system. Child process
1999 handling and core file support are two common `native' examples.
2001 GDB's use of /proc for controlling Unix child processes is now cleaner.
2002 It has been split out into a single module under the `target_ops' vector,
2003 plus two native-dependent functions for each system that uses /proc.
2005 * New hosts supported
2007 HP/Apollo 68k (under the BSD domain) m68k-apollo-bsd or apollo68bsd
2008 386 CPUs running various BSD ports i386-unknown-bsd or 386bsd
2009 386 CPUs running SCO Unix i386-unknown-scosysv322 or i386sco
2011 * New targets supported
2013 Fujitsu SPARClite sparclite-fujitsu-none or sparclite
2014 68030 and CPU32 m68030-*-*, m68332-*-*
2016 * New native hosts supported
2018 386 CPUs running various BSD ports i386-unknown-bsd or 386bsd
2019 (386bsd is not well tested yet)
2020 386 CPUs running SCO Unix i386-unknown-scosysv322 or sco
2022 * New file formats supported
2024 BFD now supports COFF files for the Zilog Z8000 microprocessor. It
2025 supports reading of `a.out.adobe' object files, which are an a.out
2026 format extended with minimal information about multiple sections.
2030 `show copying' is the same as the old `info copying'.
2031 `show warranty' is the same as `info warrantee'.
2032 These were renamed for consistency. The old commands continue to work.
2034 `info handle' is a new alias for `info signals'.
2036 You can now define pre-command hooks, which attach arbitrary command
2037 scripts to any command. The commands in the hook will be executed
2038 prior to the user's command. You can also create a hook which will be
2039 executed whenever the program stops. See gdb.texinfo.
2043 We now deal with Cfront style name mangling, and can even extract type
2044 info from mangled symbols. GDB can automatically figure out which
2045 symbol mangling style your C++ compiler uses.
2047 Calling of methods and virtual functions has been improved as well.
2051 The crash that occured when debugging Sun Ansi-C compiled binaries is
2052 fixed. This was due to mishandling of the extra N_SO stabs output
2055 We also finally got Ultrix 4.2 running in house, and fixed core file
2056 support, with help from a dozen people on the net.
2058 John M. Farrell discovered that the reason that single-stepping was so
2059 slow on all of the Mips based platforms (primarily SGI and DEC) was
2060 that we were trying to demangle and lookup a symbol used for internal
2061 purposes on every instruction that was being stepped through. Changing
2062 the name of that symbol so that it couldn't be mistaken for a C++
2063 mangled symbol sped things up a great deal.
2065 Rich Pixley sped up symbol lookups in general by getting much smarter
2066 about when C++ symbol mangling is necessary. This should make symbol
2067 completion (TAB on the command line) much faster. It's not as fast as
2068 we'd like, but it's significantly faster than gdb-4.6.
2072 A new user controllable variable 'call_scratch_address' can
2073 specify the location of a scratch area to be used when GDB
2074 calls a function in the target. This is necessary because the
2075 usual method of putting the scratch area on the stack does not work
2076 in systems that have separate instruction and data spaces.
2078 We integrated changes to support the 29k UDI (Universal Debugger
2079 Interface), but discovered at the last minute that we didn't have all
2080 of the appropriate copyright paperwork. We are working with AMD to
2081 resolve this, and hope to have it available soon.
2085 We have sped up the remote serial line protocol, especially for targets
2086 with lots of registers. It now supports a new `expedited status' ('T')
2087 message which can be used in place of the existing 'S' status message.
2088 This allows the remote stub to send only the registers that GDB
2089 needs to make a quick decision about single-stepping or conditional
2090 breakpoints, eliminating the need to fetch the entire register set for
2091 each instruction being stepped through.
2093 The GDB remote serial protocol now implements a write-through cache for
2094 registers, only re-reading the registers if the target has run.
2096 There is also a new remote serial stub for SPARC processors. You can
2097 find it in gdb-4.7/gdb/sparc-stub.c. This was written to support the
2098 Fujitsu SPARClite processor, but will run on any stand-alone SPARC
2099 processor with a serial port.
2103 Configure.in files have become much easier to read and modify. A new
2104 `table driven' format makes it more obvious what configurations are
2105 supported, and what files each one uses.
2109 There is a new opcodes library which will eventually contain all of the
2110 disassembly routines and opcode tables. At present, it only contains
2111 Sparc and Z8000 routines. This will allow the assembler, debugger, and
2112 disassembler (binutils/objdump) to share these routines.
2114 The libiberty library is now copylefted under the GNU Library General
2115 Public License. This allows more liberal use, and was done so libg++
2116 can use it. This makes no difference to GDB, since the Library License
2117 grants all the rights from the General Public License.
2121 The file gdb-4.7/gdb/doc/stabs.texinfo is a (relatively) complete
2122 reference to the stabs symbol info used by the debugger. It is (as far
2123 as we know) the only published document on this fascinating topic. We
2124 encourage you to read it, compare it to the stabs information on your
2125 system, and send improvements on the document in general (to
2126 bug-gdb@prep.ai.mit.edu).
2128 And, of course, many bugs have been fixed.
2131 *** Changes in GDB-4.6:
2133 * Better support for C++ function names
2135 GDB now accepts as input the "demangled form" of C++ overloaded function
2136 names and member function names, and can do command completion on such names
2137 (using TAB, TAB-TAB, and ESC-?). The names have to be quoted with a pair of
2138 single quotes. Examples are 'func (int, long)' and 'obj::operator==(obj&)'.
2139 Make use of command completion, it is your friend.
2141 GDB also now accepts a variety of C++ mangled symbol formats. They are
2142 the GNU g++ style, the Cfront (ARM) style, and the Lucid (lcc) style.
2143 You can tell GDB which format to use by doing a 'set demangle-style {gnu,
2144 lucid, cfront, auto}'. 'gnu' is the default. Do a 'set demangle-style foo'
2145 for the list of formats.
2147 * G++ symbol mangling problem
2149 Recent versions of gcc have a bug in how they emit debugging information for
2150 C++ methods (when using dbx-style stabs). The file 'gcc.patch' (in this
2151 directory) can be applied to gcc to fix the problem. Alternatively, if you
2152 can't fix gcc, you can #define GCC_MANGLE_BUG when compling gdb/symtab.c. The
2153 usual symptom is difficulty with setting breakpoints on methods. GDB complains
2154 about the method being non-existent. (We believe that version 2.2.2 of GCC has
2157 * New 'maintenance' command
2159 All of the commands related to hacking GDB internals have been moved out of
2160 the main command set, and now live behind the 'maintenance' command. This
2161 can also be abbreviated as 'mt'. The following changes were made:
2163 dump-me -> maintenance dump-me
2164 info all-breakpoints -> maintenance info breakpoints
2165 printmsyms -> maintenance print msyms
2166 printobjfiles -> maintenance print objfiles
2167 printpsyms -> maintenance print psymbols
2168 printsyms -> maintenance print symbols
2170 The following commands are new:
2172 maintenance demangle Call internal GDB demangler routine to
2173 demangle a C++ link name and prints the result.
2174 maintenance print type Print a type chain for a given symbol
2176 * Change to .gdbinit file processing
2178 We now read the $HOME/.gdbinit file before processing the argv arguments
2179 (e.g. reading symbol files or core files). This allows global parameters to
2180 be set, which will apply during the symbol reading. The ./.gdbinit is still
2181 read after argv processing.
2183 * New hosts supported
2185 Solaris-2.0 !!! sparc-sun-solaris2 or sun4sol2
2187 GNU/Linux support i386-unknown-linux or linux
2189 We are also including code to support the HP/PA running BSD and HPUX. This
2190 is almost guaranteed not to work, as we didn't have time to test or build it
2191 for this release. We are including it so that the more adventurous (or
2192 masochistic) of you can play with it. We also had major problems with the
2193 fact that the compiler that we got from HP doesn't support the -g option.
2196 * New targets supported
2198 Hitachi H8/300 h8300-hitachi-hms or h8300hms
2200 * More smarts about finding #include files
2202 GDB now remembers the compilation directory for all include files, and for
2203 all files from which C is generated (like yacc and lex sources). This
2204 greatly improves GDB's ability to find yacc/lex sources, and include files,
2205 especially if you are debugging your program from a directory different from
2206 the one that contains your sources.
2208 We also fixed a bug which caused difficulty with listing and setting
2209 breakpoints in include files which contain C code. (In the past, you had to
2210 try twice in order to list an include file that you hadn't looked at before.)
2212 * Interesting infernals change
2214 GDB now deals with arbitrary numbers of sections, where the symbols for each
2215 section must be relocated relative to that section's landing place in the
2216 target's address space. This work was needed to support ELF with embedded
2217 stabs used by Solaris-2.0.
2219 * Bug fixes (of course!)
2221 There have been loads of fixes for the following things:
2222 mips, rs6000, 29k/udi, m68k, g++, type handling, elf/dwarf, m88k,
2223 i960, stabs, DOS(GO32), procfs, etc...
2225 See the ChangeLog for details.
2227 *** Changes in GDB-4.5:
2229 * New machines supported (host and target)
2231 IBM RS6000 running AIX rs6000-ibm-aix or rs6000
2233 SGI Irix-4.x mips-sgi-irix4 or iris4
2235 * New malloc package
2237 GDB now uses a new memory manager called mmalloc, based on gmalloc.
2238 Mmalloc is capable of handling mutiple heaps of memory. It is also
2239 capable of saving a heap to a file, and then mapping it back in later.
2240 This can be used to greatly speedup the startup of GDB by using a
2241 pre-parsed symbol table which lives in a mmalloc managed heap. For
2242 more details, please read mmalloc/mmalloc.texi.
2246 The 'info proc' command (SVR4 only) has been enhanced quite a bit. See
2247 'help info proc' for details.
2249 * MIPS ecoff symbol table format
2251 The code that reads MIPS symbol table format is now supported on all hosts.
2252 Thanks to MIPS for releasing the sym.h and symconst.h files to make this
2255 * File name changes for MS-DOS
2257 Many files in the config directories have been renamed to make it easier to
2258 support GDB on MS-DOSe systems (which have very restrictive file name
2259 conventions :-( ). MS-DOSe host support (under DJ Delorie's GO32
2260 environment) is close to working but has some remaining problems. Note
2261 that debugging of DOS programs is not supported, due to limitations
2262 in the ``operating system'', but it can be used to host cross-debugging.
2264 * Cross byte order fixes
2266 Many fixes have been made to support cross debugging of Sparc and MIPS
2267 targets from hosts whose byte order differs.
2269 * New -mapped and -readnow options
2271 If memory-mapped files are available on your system through the 'mmap'
2272 system call, you can use the -mapped option on the `file' or
2273 `symbol-file' commands to cause GDB to write the symbols from your
2274 program into a reusable file. If the program you are debugging is
2275 called `/path/fred', the mapped symbol file will be `./fred.syms'.
2276 Future GDB debugging sessions will notice the presence of this file,
2277 and will quickly map in symbol information from it, rather than reading
2278 the symbol table from the executable program. Using the '-mapped'
2279 option in a GDB `file' or `symbol-file' command has the same effect as
2280 starting GDB with the '-mapped' command-line option.
2282 You can cause GDB to read the entire symbol table immediately by using
2283 the '-readnow' option with any of the commands that load symbol table
2284 information (or on the GDB command line). This makes the command
2285 slower, but makes future operations faster.
2287 The -mapped and -readnow options are typically combined in order to
2288 build a `fred.syms' file that contains complete symbol information.
2289 A simple GDB invocation to do nothing but build a `.syms' file for future
2292 gdb -batch -nx -mapped -readnow programname
2294 The `.syms' file is specific to the host machine on which GDB is run.
2295 It holds an exact image of GDB's internal symbol table. It cannot be
2296 shared across multiple host platforms.
2298 * longjmp() handling
2300 GDB is now capable of stepping and nexting over longjmp(), _longjmp(), and
2301 siglongjmp() without losing control. This feature has not yet been ported to
2302 all systems. It currently works on many 386 platforms, all MIPS-based
2303 platforms (SGI, DECstation, etc), and Sun3/4.
2307 Preliminary work has been put in to support the new Solaris OS from Sun. At
2308 this time, it can control and debug processes, but it is not capable of
2313 As always, many many bug fixes. The major areas were with g++, and mipsread.
2314 People using the MIPS-based platforms should experience fewer mysterious
2315 crashes and trashed symbol tables.
2317 *** Changes in GDB-4.4:
2319 * New machines supported (host and target)
2321 SCO Unix on i386 IBM PC clones i386-sco-sysv or i386sco
2323 BSD Reno on Vax vax-dec-bsd
2324 Ultrix on Vax vax-dec-ultrix
2326 * New machines supported (target)
2328 AMD 29000 embedded, using EBMON a29k-none-none
2332 GDB continues to improve its handling of C++. `References' work better.
2333 The demangler has also been improved, and now deals with symbols mangled as
2334 per the Annotated C++ Reference Guide.
2336 GDB also now handles `stabs' symbol information embedded in MIPS
2337 `ecoff' symbol tables. Since the ecoff format was not easily
2338 extensible to handle new languages such as C++, this appeared to be a
2339 good way to put C++ debugging info into MIPS binaries. This option
2340 will be supported in the GNU C compiler, version 2, when it is
2343 * New features for SVR4
2345 GDB now handles SVR4 shared libraries, in the same fashion as SunOS
2346 shared libraries. Debugging dynamically linked programs should present
2347 only minor differences from debugging statically linked programs.
2349 The `info proc' command will print out information about any process
2350 on an SVR4 system (including the one you are debugging). At the moment,
2351 it prints the address mappings of the process.
2353 If you bring up GDB on another SVR4 system, please send mail to
2354 bug-gdb@prep.ai.mit.edu to let us know what changes were reqired (if any).
2356 * Better dynamic linking support in SunOS
2358 Reading symbols from shared libraries which contain debugging symbols
2359 now works properly. However, there remain issues such as automatic
2360 skipping of `transfer vector' code during function calls, which
2361 make it harder to debug code in a shared library, than to debug the
2362 same code linked statically.
2366 GDB is now using the latest `getopt' routines from the FSF. This
2367 version accepts the -- prefix for options with long names. GDB will
2368 continue to accept the old forms (-option and +option) as well.
2369 Various single letter abbreviations for options have been explicity
2370 added to the option table so that they won't get overshadowed in the
2371 future by other options that begin with the same letter.
2375 The `cleanup_undefined_types' bug that many of you noticed has been squashed.
2376 Many assorted bugs have been handled. Many more remain to be handled.
2377 See the various ChangeLog files (primarily in gdb and bfd) for details.
2380 *** Changes in GDB-4.3:
2382 * New machines supported (host and target)
2384 Amiga 3000 running Amix m68k-cbm-svr4 or amix
2385 NCR 3000 386 running SVR4 i386-ncr-svr4 or ncr3000
2386 Motorola Delta 88000 running Sys V m88k-motorola-sysv or delta88
2388 * Almost SCO Unix support
2390 We had hoped to support:
2391 SCO Unix on i386 IBM PC clones i386-sco-sysv or i386sco
2392 (except for core file support), but we discovered very late in the release
2393 that it has problems with process groups that render gdb unusable. Sorry
2394 about that. I encourage people to fix it and post the fixes.
2396 * Preliminary ELF and DWARF support
2398 GDB can read ELF object files on System V Release 4, and can handle
2399 debugging records for C, in DWARF format, in ELF files. This support
2400 is preliminary. If you bring up GDB on another SVR4 system, please
2401 send mail to bug-gdb@prep.ai.mit.edu to let us know what changes were
2406 GDB now uses the latest `readline' library. One user-visible change
2407 is that two tabs will list possible command completions, which previously
2408 required typing M-? (meta-question mark, or ESC ?).
2412 The `stepi' bug that many of you noticed has been squashed.
2413 Many bugs in C++ have been handled. Many more remain to be handled.
2414 See the various ChangeLog files (primarily in gdb and bfd) for details.
2416 * State of the MIPS world (in case you wondered):
2418 GDB can understand the symbol tables emitted by the compilers
2419 supplied by most vendors of MIPS-based machines, including DEC. These
2420 symbol tables are in a format that essentially nobody else uses.
2422 Some versions of gcc come with an assembler post-processor called
2423 mips-tfile. This program is required if you want to do source-level
2424 debugging of gcc-compiled programs. I believe FSF does not ship
2425 mips-tfile with gcc version 1, but it will eventually come with gcc
2428 Debugging of g++ output remains a problem. g++ version 1.xx does not
2429 really support it at all. (If you're lucky, you should be able to get
2430 line numbers and stack traces to work, but no parameters or local
2431 variables.) With some work it should be possible to improve the
2434 When gcc version 2 is released, you will have somewhat better luck.
2435 However, even then you will get confusing results for inheritance and
2438 We will eventually provide full debugging of g++ output on
2439 DECstations. This will probably involve some kind of stabs-in-ecoff
2440 encapulation, but the details have not been worked out yet.
2443 *** Changes in GDB-4.2:
2445 * Improved configuration
2447 Only one copy of `configure' exists now, and it is not self-modifying.
2448 Porting BFD is simpler.
2452 The `step' and `next' commands now only stop at the first instruction
2453 of a source line. This prevents the multiple stops that used to occur
2454 in switch statements, for-loops, etc. `Step' continues to stop if a
2455 function that has debugging information is called within the line.
2459 Lots of small bugs fixed. More remain.
2461 * New host supported (not target)
2463 Intel 386 PC clone running Mach i386-none-mach
2466 *** Changes in GDB-4.1:
2468 * Multiple source language support
2470 GDB now has internal scaffolding to handle several source languages.
2471 It determines the type of each source file from its filename extension,
2472 and will switch expression parsing and number formatting to match the
2473 language of the function in the currently selected stack frame.
2474 You can also specifically set the language to be used, with
2475 `set language c' or `set language modula-2'.
2479 GDB now has preliminary support for the GNU Modula-2 compiler,
2480 currently under development at the State University of New York at
2481 Buffalo. Development of both GDB and the GNU Modula-2 compiler will
2482 continue through the fall of 1991 and into 1992.
2484 Other Modula-2 compilers are currently not supported, and attempting to
2485 debug programs compiled with them will likely result in an error as the
2486 symbol table is read. Feel free to work on it, though!
2488 There are hooks in GDB for strict type checking and range checking,
2489 in the `Modula-2 philosophy', but they do not currently work.
2493 GDB can now write to executable and core files (e.g. patch
2494 a variable's value). You must turn this switch on, specify
2495 the file ("exec foo" or "core foo"), *then* modify it, e.g.
2496 by assigning a new value to a variable. Modifications take
2499 * Automatic SunOS shared library reading
2501 When you run your program, GDB automatically determines where its
2502 shared libraries (if any) have been loaded, and reads their symbols.
2503 The `share' command is no longer needed. This also works when
2504 examining core files.
2508 You can specify the number of lines that the `list' command shows.
2511 * New machines supported (host and target)
2513 SGI Iris (MIPS) running Irix V3: mips-sgi-irix or iris
2514 Sony NEWS (68K) running NEWSOS 3.x: m68k-sony-sysv or news
2515 Ultracomputer (29K) running Sym1: a29k-nyu-sym1 or ultra3
2517 * New hosts supported (not targets)
2519 IBM RT/PC: romp-ibm-aix or rtpc
2521 * New targets supported (not hosts)
2523 AMD 29000 embedded with COFF a29k-none-coff
2524 AMD 29000 embedded with a.out a29k-none-aout
2525 Ultracomputer remote kernel debug a29k-nyu-kern
2527 * New remote interfaces
2533 *** Changes in GDB-4.0:
2537 Wide output is wrapped at good places to make the output more readable.
2539 Gdb now supports cross-debugging from a host machine of one type to a
2540 target machine of another type. Communication with the target system
2541 is over serial lines. The ``target'' command handles connecting to the
2542 remote system; the ``load'' command will download a program into the
2543 remote system. Serial stubs for the m68k and i386 are provided. Gdb
2544 also supports debugging of realtime processes running under VxWorks,
2545 using SunRPC Remote Procedure Calls over TCP/IP to talk to a debugger
2546 stub on the target system.
2548 New CPUs supported include the AMD 29000 and Intel 960.
2550 GDB now reads object files and symbol tables via a ``binary file''
2551 library, which allows a single copy of GDB to debug programs of multiple
2552 object file types such as a.out and coff.
2554 There is now a GDB reference card in "doc/refcard.tex". (Make targets
2555 refcard.dvi and refcard.ps are available to format it).
2558 * Control-Variable user interface simplified
2560 All variables that control the operation of the debugger can be set
2561 by the ``set'' command, and displayed by the ``show'' command.
2563 For example, ``set prompt new-gdb=>'' will change your prompt to new-gdb=>.
2564 ``Show prompt'' produces the response:
2565 Gdb's prompt is new-gdb=>.
2567 What follows are the NEW set commands. The command ``help set'' will
2568 print a complete list of old and new set commands. ``help set FOO''
2569 will give a longer description of the variable FOO. ``show'' will show
2570 all of the variable descriptions and their current settings.
2572 confirm on/off: Enables warning questions for operations that are
2573 hard to recover from, e.g. rerunning the program while
2574 it is already running. Default is ON.
2576 editing on/off: Enables EMACS style command line editing
2577 of input. Previous lines can be recalled with
2578 control-P, the current line can be edited with control-B,
2579 you can search for commands with control-R, etc.
2582 history filename NAME: NAME is where the gdb command history
2583 will be stored. The default is .gdb_history,
2584 or the value of the environment variable
2587 history size N: The size, in commands, of the command history. The
2588 default is 256, or the value of the environment variable
2591 history save on/off: If this value is set to ON, the history file will
2592 be saved after exiting gdb. If set to OFF, the
2593 file will not be saved. The default is OFF.
2595 history expansion on/off: If this value is set to ON, then csh-like
2596 history expansion will be performed on
2597 command line input. The default is OFF.
2599 radix N: Sets the default radix for input and output. It can be set
2600 to 8, 10, or 16. Note that the argument to "radix" is interpreted
2601 in the current radix, so "set radix 10" is always a no-op.
2603 height N: This integer value is the number of lines on a page. Default
2604 is 24, the current `stty rows'' setting, or the ``li#''
2605 setting from the termcap entry matching the environment
2608 width N: This integer value is the number of characters on a line.
2609 Default is 80, the current `stty cols'' setting, or the ``co#''
2610 setting from the termcap entry matching the environment
2613 Note: ``set screensize'' is obsolete. Use ``set height'' and
2614 ``set width'' instead.
2616 print address on/off: Print memory addresses in various command displays,
2617 such as stack traces and structure values. Gdb looks
2618 more ``symbolic'' if you turn this off; it looks more
2619 ``machine level'' with it on. Default is ON.
2621 print array on/off: Prettyprint arrays. New convenient format! Default
2624 print demangle on/off: Print C++ symbols in "source" form if on,
2627 print asm-demangle on/off: Same, for assembler level printouts
2630 print vtbl on/off: Prettyprint C++ virtual function tables. Default is OFF.
2633 * Support for Epoch Environment.
2635 The epoch environment is a version of Emacs v18 with windowing. One
2636 new command, ``inspect'', is identical to ``print'', except that if you
2637 are running in the epoch environment, the value is printed in its own
2641 * Support for Shared Libraries
2643 GDB can now debug programs and core files that use SunOS shared libraries.
2644 Symbols from a shared library cannot be referenced
2645 before the shared library has been linked with the program (this
2646 happens after you type ``run'' and before the function main() is entered).
2647 At any time after this linking (including when examining core files
2648 from dynamically linked programs), gdb reads the symbols from each
2649 shared library when you type the ``sharedlibrary'' command.
2650 It can be abbreviated ``share''.
2652 sharedlibrary REGEXP: Load shared object library symbols for files
2653 matching a unix regular expression. No argument
2654 indicates to load symbols for all shared libraries.
2656 info sharedlibrary: Status of loaded shared libraries.
2661 A watchpoint stops execution of a program whenever the value of an
2662 expression changes. Checking for this slows down execution
2663 tremendously whenever you are in the scope of the expression, but is
2664 quite useful for catching tough ``bit-spreader'' or pointer misuse
2665 problems. Some machines such as the 386 have hardware for doing this
2666 more quickly, and future versions of gdb will use this hardware.
2668 watch EXP: Set a watchpoint (breakpoint) for an expression.
2670 info watchpoints: Information about your watchpoints.
2672 delete N: Deletes watchpoint number N (same as breakpoints).
2673 disable N: Temporarily turns off watchpoint number N (same as breakpoints).
2674 enable N: Re-enables watchpoint number N (same as breakpoints).
2677 * C++ multiple inheritance
2679 When used with a GCC version 2 compiler, GDB supports multiple inheritance
2682 * C++ exception handling
2684 Gdb now supports limited C++ exception handling. Besides the existing
2685 ability to breakpoint on an exception handler, gdb can breakpoint on
2686 the raising of an exception (before the stack is peeled back to the
2689 catch FOO: If there is a FOO exception handler in the dynamic scope,
2690 set a breakpoint to catch exceptions which may be raised there.
2691 Multiple exceptions (``catch foo bar baz'') may be caught.
2693 info catch: Lists all exceptions which may be caught in the
2694 current stack frame.
2697 * Minor command changes
2699 The command ``call func (arg, arg, ...)'' now acts like the print
2700 command, except it does not print or save a value if the function's result
2701 is void. This is similar to dbx usage.
2703 The ``up'' and ``down'' commands now always print the frame they end up
2704 at; ``up-silently'' and `down-silently'' can be used in scripts to change
2705 frames without printing.
2707 * New directory command
2709 'dir' now adds directories to the FRONT of the source search path.
2710 The path starts off empty. Source files that contain debug information
2711 about the directory in which they were compiled can be found even
2712 with an empty path; Sun CC and GCC include this information. If GDB can't
2713 find your source file in the current directory, type "dir .".
2715 * Configuring GDB for compilation
2717 For normal use, type ``./configure host''. See README or gdb.texinfo
2720 GDB now handles cross debugging. If you are remotely debugging between
2721 two different machines, type ``./configure host -target=targ''.
2722 Host is the machine where GDB will run; targ is the machine
2723 where the program that you are debugging will run.