* gdb.base/start.c: New file.
[deliverable/binutils-gdb.git] / gdb / NEWS
1 What has changed in GDB?
2 (Organized release by release)
3
4 *** Changes since GDB 6.3
5
6 * New BSD user-level threads support
7
8 It is now possible to debug programs using the user-level threads
9 library on OpenBSD and FreeBSD. Currently supported (target)
10 configurations are:
11
12 FreeBSD/amd64 x86_64-*-freebsd*
13 FreeBSD/i386 i386-*-freebsd*
14 OpenBSD/i386 i386-*-openbsd*
15
16 Note that the new kernel threads libraries introduced in FreeBSD 5.x
17 are not yet supported.
18
19 * New support for Matsushita MN10300 w/sim added
20 (Work in progress). mn10300-elf.
21
22 * REMOVED configurations and files
23
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-*-*
29 NEC V850 v850-*-*
30
31 *** Changes in GDB 6.3:
32
33 * New command line option
34
35 GDB now accepts -l followed by a number to set the timeout for remote
36 debugging.
37
38 * GDB works with GCC -feliminate-dwarf2-dups
39
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.
45
46 * Internationalization
47
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.
51
52 * Ada
53
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.
57
58 * New native configurations
59
60 GNU/Linux/m32r m32r-*-linux-gnu
61
62 * Remote 'p' packet
63
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.
66
67 * END-OF-LIFE registers[] compatibility module
68
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
72 i386 application).
73
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
77 configurations:
78
79 hppa-*-hpux
80 ia64-*-aix
81 mips-*-irix*
82 *-*-lynx
83 mips-*-linux-gnu
84 sds protocol
85 xdr protocol
86 powerpc bdm protocol
87
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.
90
91 * OBSOLETE configurations and files
92
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
96 permanently REMOVED.
97
98 h8300-*-*
99 mcore-*-*
100 mn10300-*-*
101 ns32k-*-*
102 sh64-*-*
103 v850-*-*
104
105 *** Changes in GDB 6.2.1:
106
107 * MIPS `break main; run' gave an heuristic-fence-post warning
108
109 When attempting to run even a simple program, a warning about
110 heuristic-fence-post being hit would be reported. This problem has
111 been fixed.
112
113 * MIPS IRIX 'long double' crashed GDB
114
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).
118
119 * VAX and "next"
120
121 A bug in the VAX stack code was causing problems with the "next"
122 command. This problem has been fixed.
123
124 *** Changes in GDB 6.2:
125
126 * Fix for ``many threads''
127
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
130 error message:
131
132 ptrace: No such process.
133 thread_db_get_info: cannot get thread info: generic error
134
135 This problem has been fixed.
136
137 * "-async" and "-noasync" options removed.
138
139 Support for the broken "-noasync" option has been removed (it caused
140 GDB to dump core).
141
142 * New ``start'' command.
143
144 This command runs the program until the begining of the main procedure.
145
146 * New BSD Kernel Data Access Library (libkvm) interface
147
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:
151
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*
161
162 * Signal trampoline code overhauled
163
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.
169
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.
173
174 * Cygwin support for DWARF 2 added.
175
176 * New native configurations
177
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*
185
186 * END-OF-LIFE frame compatibility module
187
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.
194
195 GDB 6.2 will be the last release to include this frame compatibility
196 module. This change directly impacts the following configurations:
197
198 h8300-*-*
199 mcore-*-*
200 mn10300-*-*
201 ns32k-*-*
202 sh64-*-*
203 v850-*-*
204 xstormy16-*-*
205
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.
208
209 * REMOVED configurations and files
210
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*
220 sonymips mips-sony-*
221 sysv mips*-*-sysv4* (IRIX 5/6 not included)
222
223 *** Changes in GDB 6.1.1:
224
225 * TUI (Text-mode User Interface) built-in (also included in GDB 6.1)
226
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
231 with GDB".
232
233 * Pending breakpoint support (also included in GDB 6.1)
234
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
241 are created.
242
243 Pending breakpoints are very useful for GCJ Java debugging.
244
245 * Fixed ISO-C build problems
246
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).
250
251 * Fixed build problem on IRIX 5
252
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.
255
256 * Added execute permission to gdb/gdbserver/configure
257
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.
261
262 * Fixed build problem on hpux2.0w-hp-hpux11.00 using the HP ANSI C compiler
263
264 Older HPUX ANSI C compilers did not accept variable array sizes. somsolib.c
265 has been updated to use constant array sizes.
266
267 * Fixed a panic in the DWARF Call Frame Info code on Solaris 2.7
268
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.
272
273 * Fixed a problem when examining parameters in shared library code.
274
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.
278
279 *** Changes in GDB 6.1:
280
281 * Removed --with-mmalloc
282
283 Support for the mmalloc memory manager has been removed, as it
284 conflicted with the internal gdb byte cache.
285
286 * Changes in AMD64 configurations
287
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.
292
293 * Revised SPARC target
294
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.
300
301 * New C++ demangler
302
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++
306 programs.
307
308 * DWARF 2 Location Expressions
309
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
312 encountered these.
313
314 * C++ nested types and namespaces
315
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.
325
326 * New native configurations
327
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*
333
334 * New debugging protocols
335
336 M32R with SDI protocol m32r-*-elf*
337
338 * "set prompt-escape-char" command deleted.
339
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.
343
344 * OBSOLETE configurations and files
345
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
349 permanently REMOVED.
350
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*
360 sonymips mips-sony-*
361 sysv mips*-*-sysv4* (IRIX 5/6 not included)
362
363 * REMOVED configurations and files
364
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
382
383 *** Changes in GDB 6.0:
384
385 * Objective-C
386
387 Support for debugging the Objective-C programming language has been
388 integrated into GDB.
389
390 * New backtrace mechanism (includes DWARF 2 Call Frame Information).
391
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
395 backtraces.
396
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
399 DWARF 2 CFI support.
400
401 * Hosted file I/O.
402
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.
406
407 * All targets using the new architecture framework.
408
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,
412 ppc32 on ppc64).
413
414 * GNU/Linux's Thread Local Storage (TLS)
415
416 GDB now includes support for for the GNU/Linux implementation of
417 per-thread variables.
418
419 * GNU/Linux's Native POSIX Thread Library (NPTL)
420
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.
423
424 * Separate debug info.
425
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.
431
432 * DWARF 2 Location Expressions
433
434 DWARF 2 Location Expressions allow the compiler to more completely
435 describe the location of variables (even in optimized code) to the
436 debugger.
437
438 GDB now includes preliminary support for location expressions (support
439 for DW_OP_piece is still missing).
440
441 * Java
442
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".
446
447 * GNU/Linux support for fork, vfork, and exec.
448
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
451 kernel.
452
453 * GDB supports logging output to a file
454
455 There are two new commands, "set logging" and "show logging", which can be
456 used to capture GDB's output to a file.
457
458 * The meaning of "detach" has changed for gdbserver
459
460 The "detach" command will now resume the application, as documented. To
461 disconnect from gdbserver and leave it stopped, use the new "disconnect"
462 command.
463
464 * d10v, m68hc11 `regs' command deprecated
465
466 The `info registers' command has been updated so that it displays the
467 registers using a format identical to the old `regs' command.
468
469 * Profiling support
470
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.
476
477 * Default MI syntax changed to "mi2".
478
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".
482
483 Support for the original "mi0" syntax (included in GDB 5.0) has been
484 removed.
485
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.
490
491 * New native configurations.
492
493 FreeBSD/amd64 x86_64-*-freebsd*
494
495 * Multi-arched targets.
496
497 HP/PA HPUX11 hppa*-*-hpux*
498 Renesas M32R/D w/simulator m32r-*-elf*
499
500 * OBSOLETE configurations and files
501
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
505 permanently REMOVED.
506
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
519
520 * REMOVED configurations and files
521
522 V850EA ISA
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*,
529 m68*-apollo*-bsd*,
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
536
537 * MIPS $fp behavior changed
538
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''.
544
545 *** Changes in GDB 5.3:
546
547 * GNU/Linux shared library multi-threaded performance improved.
548
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''.
554
555 * ``gdbserver'' now supports multi-threaded applications on some targets
556
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*.
561
562 * GDB now supports C/C++ preprocessor macros.
563
564 GDB now expands preprocessor macro invocations in C/C++ expressions,
565 and provides various commands for showing macro definitions and how
566 they expand.
567
568 The new command `macro expand EXPRESSION' expands any macro
569 invocations in expression, and shows the result.
570
571 The new command `show macro MACRO-NAME' shows the definition of the
572 macro named MACRO-NAME, and where it was defined.
573
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.
578
579 * Multi-arched targets.
580
581 DEC Alpha (partial) alpha*-*-*
582 DEC VAX (partial) vax-*-*
583 NEC V850 v850-*-*
584 National Semiconductor NS32000 (partial) ns32k-*-*
585 Motorola 68000 (partial) m68k-*-*
586 Motorola MCORE mcore-*-*
587
588 * New targets.
589
590 Fujitsu FRV architecture added by Red Hat frv*-*-*
591
592
593 * New native configurations
594
595 Alpha NetBSD alpha*-*-netbsd*
596 SH NetBSD sh*-*-netbsdelf*
597 MIPS NetBSD mips*-*-netbsd*
598 UltraSPARC NetBSD sparc64-*-netbsd*
599
600 * OBSOLETE configurations and files
601
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
605 permanently REMOVED.
606
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*,
617 m68*-apollo*-bsd*,
618 m68*-hp-bsd*, m68*-hp-hpux*
619 I960 with MON960 i960-*-coff
620
621 * OBSOLETE languages
622
623 CHILL, a Pascal like language used by telecommunications companies.
624
625 * REMOVED configurations and files
626
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
632
633 testsuite/gdb.hp/gdb.threads-hp/ directory
634
635 * New command "set max-user-call-depth <nnn>"
636
637 This command allows the user to limit the call depth of user-defined
638 commands. The default is 1024.
639
640 * Changes in FreeBSD/i386 native debugging.
641
642 Support for the "generate-core-file" has been added.
643
644 * New commands "dump", "append", and "restore".
645
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).
649
650 * Improved "next/step" support on multi-processor Alpha Tru64.
651
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.
655
656 *** Changes in GDB 5.2.1:
657
658 * New targets.
659
660 Atmel AVR avr*-*-*
661
662 * Bug fixes
663
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.
667
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.
671
672 Dwarf2 .debug_frame & .eh_frame handler improved in many ways.
673 Surprisingly enough, it works now.
674 By Michal Ludvig, imported from mainline.
675
676 i386 hardware watchpoint support:
677 avoid misses on second run for some targets.
678 By Pierre Muller, imported from mainline.
679
680 *** Changes in GDB 5.2:
681
682 * New command "set trust-readonly-sections on[off]".
683
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.
690
691 * New command "generate-core-file" (or "gcore").
692
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>).
697
698 * New command line option
699
700 GDB now accepts --pid or -p followed by a process id.
701
702 * Change in command line behavior -- corefiles vs. process ids.
703
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.
714
715 * Changes in ARM configurations.
716
717 Multi-arch support is enabled for all ARM configurations. The ARM/NetBSD
718 configuration is fully multi-arch.
719
720 * New native configurations
721
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*
726
727 * New targets
728
729 Sanyo XStormy16 xstormy16-elf
730
731 * OBSOLETE configurations and files
732
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
736 permanently REMOVED.
737
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
743
744 testsuite/gdb.hp/gdb.threads-hp/ directory
745
746 * REMOVED configurations and files
747
748 TI TMS320C80 tic80-*-*
749 WDC 65816 w65-*-*
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*
761
762 * Changes to command line processing
763
764 The new `--args' feature can be used to specify command-line arguments
765 for the inferior from gdb's command line.
766
767 * Changes to key bindings
768
769 There is a new `operate-and-get-next' function bound to `C-o'.
770
771 *** Changes in GDB 5.1.1
772
773 Fix compile problem on DJGPP.
774
775 Fix a problem with floating-point registers on the i386 being
776 corrupted.
777
778 Fix to stop GDB crashing on .debug_str debug info.
779
780 Numerous documentation fixes.
781
782 Numerous testsuite fixes.
783
784 *** Changes in GDB 5.1:
785
786 * New native configurations
787
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*
792 ia64 AIX ia64-*-aix*
793 s390 and s390x GNU/Linux {s390,s390x}-*-linux*
794
795 * New targets
796
797 Motorola 68HC11 and 68HC12 m68hc11-elf
798 CRIS cris-axis
799 UltraSparc running GNU/Linux sparc64-*-linux*
800
801 * OBSOLETE configurations and files
802
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-*-*
808 WDC 65816 w65-*-*
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
817
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)
820
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
824 permanently REMOVED.
825
826 * REMOVED configurations and files
827
828 Altos 3068 m68*-altos-*
829 Convex c1-*-*, c2-*-*
830 Pyramid pyramid-*-*
831 ARM RISCix arm-*-* (as host)
832 Tahoe tahoe-*-*
833 ser-ocd.c *-*-*
834
835 * GDB has been converted to ISO C.
836
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
839 present.
840
841 * Other news:
842
843 * "info symbol" works on platforms which use COFF, ECOFF, XCOFF, and NLM.
844
845 * The MI enabled by default.
846
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.
852
853 * Support for debugging Pascal programs.
854
855 GDB now includes support for debugging Pascal programs. The following
856 main features are supported:
857
858 - Pascal-specific data types such as sets;
859
860 - automatic recognition of Pascal sources based on file-name
861 extension;
862
863 - Pascal-style display of data types, variables, and functions;
864
865 - a Pascal expression parser.
866
867 However, some important features are not yet supported.
868
869 - Pascal string operations are not supported at all;
870
871 - there are some problems with boolean types;
872
873 - Pascal type hexadecimal constants are not supported
874 because they conflict with the internal variables format;
875
876 - support for Pascal objects and classes is not full yet;
877
878 - unlike Pascal, GDB is case-sensitive for symbol names.
879
880 * Changes in completion.
881
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.
885
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".
893
894 `set demangle-style' completes on available demangling styles.
895
896 * New platform-independent commands:
897
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.
901
902 * Changes in GNU/Linux native debugging.
903
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.
907
908 Attach/detach is supported for multi-threaded programs.
909
910 Support for SSE registers was added for x86. This doesn't work for
911 multi-threaded programs though.
912
913 * Changes in MIPS configurations.
914
915 Multi-arch support is enabled for all MIPS configurations.
916
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
919 supported.)
920
921 * Unified support for hardware watchpoints in all x86 configurations.
922
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
928 registers.
929
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.
933
934 * Changes in the DJGPP native configuration.
935
936 New command ``info dos sysinfo'' displays assorted information about
937 the CPU, OS, memory, and DPMI server.
938
939 New commands ``info dos gdt'', ``info dos ldt'', and ``info dos idt''
940 display information about segment descriptors stored in GDT, LDT, and
941 IDT.
942
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.
947
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).
951
952 DWARF2 debug info is now supported.
953
954 It is now possible to `step' and `next' through calls to `longjmp'.
955
956 * Changes in documentation.
957
958 All GDB documentation was converted to GFDL, the GNU Free
959 Documentation License.
960
961 Tracepoints-related commands are now fully documented in the GDB
962 manual.
963
964 TUI, the Text-mode User Interface, is now documented in the manual.
965
966 Tracepoints-related commands are now fully documented in the GDB
967 manual.
968
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.
972
973 * GDB's version number moved to ``version.in''
974
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.
978
979 * gdba.el deleted
980
981 GUD support is now a standard part of the EMACS distribution.
982
983 *** Changes in GDB 5.0:
984
985 * Improved support for debugging FP programs on x86 targets
986
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.
991
992 * Improvements and bugfixes in hardware-assisted watchpoints
993
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
997 written.
998
999 * Improvements in the native DJGPP version of GDB
1000
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''.
1004
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.
1010
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.
1016
1017 The DJGPP version now uses termios functions for console I/O, which
1018 enables debugging graphics programs. Interrupting GDB with Ctrl-C
1019 also works.
1020
1021 DOS-style file names with drive letters are now fully supported by
1022 GDB.
1023
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.
1028
1029 * New native configurations
1030
1031 ARM GNU/Linux arm*-*-linux*
1032 PowerPC GNU/Linux powerpc-*-linux*
1033
1034 * New targets
1035
1036 Motorola MCore mcore-*-*
1037 x86 VxWorks i[3456]86-*-vxworks*
1038 PowerPC VxWorks powerpc-*-vxworks*
1039 TI TMS320C80 tic80-*-*
1040
1041 * OBSOLETE configurations
1042
1043 Altos 3068 m68*-altos-*
1044 Convex c1-*-*, c2-*-*
1045 Pyramid pyramid-*-*
1046 ARM RISCix arm-*-* (as host)
1047 Tahoe tahoe-*-*
1048
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.
1053
1054 * Gould support removed
1055
1056 Support for the Gould PowerNode and NP1 has been removed.
1057
1058 * New features for SVR4
1059
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.
1063
1064 * Many C++ enhancements
1065
1066 C++ support has been greatly improved. Overload resolution now works properly
1067 in almost all cases. RTTI support is on the way.
1068
1069 * Remote targets can connect to a sub-program
1070
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:
1075
1076 (gdb) set remotedebug 1
1077 (gdb) target extended-remote |mn10300-elf-sim program-args
1078
1079 * MIPS 64 remote protocol
1080
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.
1084
1085 The command ``set remote-mips64-transfers-32bit-regs on'' has been
1086 added to provide backward compatibility with older versions of GDB.
1087
1088 * ``set remotebinarydownload'' replaced by ``set remote X-packet''
1089
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''.
1093
1094 * Breakpoint commands accept ranges.
1095
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.
1099
1100 * ``apropos'' command added.
1101
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.
1105
1106 * New MI interface
1107
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:
1113
1114 .../configure --enable-gdbmi
1115
1116 *** Changes in GDB-4.18:
1117
1118 * New native configurations
1119
1120 HP-UX 10.20 hppa*-*-hpux10.20
1121 HP-UX 11.x hppa*-*-hpux11.0*
1122 M68K GNU/Linux m68*-*-linux*
1123
1124 * New targets
1125
1126 Fujitsu FR30 fr30-*-elf*
1127 Intel StrongARM strongarm-*-*
1128 Mitsubishi D30V d30v-*-*
1129
1130 * OBSOLETE configurations
1131
1132 Gould PowerNode, NP1 np1-*-*, pn-*-*
1133
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.
1138
1139 * ANSI/ISO C
1140
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
1148 already.
1149
1150 * Readline 2.2
1151
1152 GDB now uses readline 2.2.
1153
1154 * set extension-language
1155
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.
1162
1163 * Setting processor type for PowerPC and RS/6000
1164
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
1168
1169 set processor NAME
1170
1171 sets the PowerPC/RS6000 variant to NAME. GDB knows about the
1172 following PowerPC and RS6000 variants:
1173
1174 ppc-uisa PowerPC UISA - a PPC processor as viewed by user-level code
1175 rs6000 IBM RS6000 ("POWER") architecture, user-level view
1176 403 IBM PowerPC 403
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
1185
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.
1190
1191 * HP-UX support
1192
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.
1198
1199 * Catchpoints
1200
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.
1204
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.
1208
1209 * Debugging across forks
1210
1211 On HP-UX, you can choose which process to debug when a fork() happens
1212 in the inferior.
1213
1214 * TUI
1215
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.
1219
1220 * GDB remote protocol additions
1221
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'.
1226
1227 For 64-bit targets, the memory packets ('M' and 'm') can now contain a
1228 full 64-bit address. The command
1229
1230 set remoteaddresssize 32
1231
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
1234 will be discarded.
1235
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,
1238
1239 maint packet heythere
1240
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
1243 time.
1244
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.
1248
1249 * Tracing can collect general expressions
1250
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.
1254
1255 * mask-address variable for Mips
1256
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.
1260
1261 * Higher serial baud rates
1262
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.)
1266
1267 * i960 simulator
1268
1269 The i960 configuration now includes an initial implementation of a
1270 builtin simulator, contributed by Jim Wilson.
1271
1272
1273 *** Changes in GDB-4.17:
1274
1275 * New native configurations
1276
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
1284
1285 * New targets
1286
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-*-*
1298
1299 * New debugging protocols
1300
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
1307
1308 * DWARF 2
1309
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
1312 information.
1313
1314 * Java frontend
1315
1316 GDB now includes basic Java language support. This support is
1317 only useful with Java compilers that produce native machine code.
1318
1319 * solib-absolute-prefix and solib-search-path
1320
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.
1324
1325 * Live range splitting
1326
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.
1330
1331 * Hurd support
1332
1333 GDB's support for the GNU Hurd, including thread debugging, has been
1334 updated to work with current versions of the Hurd.
1335
1336 * ARM Thumb support
1337
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
1341 accordingly.
1342
1343 * MIPS16 support
1344
1345 GDB's MIPS target configurations now handle the MIP16 16-bit
1346 instruction set.
1347
1348 * Overlay support
1349
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.
1356
1357 * info symbol
1358
1359 The command "info symbol <address>" displays information about
1360 the symbol at the specified address.
1361
1362 * Trace support
1363
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.
1369
1370 * MIPS simulator
1371
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.
1375
1376 * Sparc simulator
1377
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.
1381
1382 * set architecture
1383
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.
1388
1389 *** Changes in GDB-4.16:
1390
1391 * New native configurations
1392
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*
1399
1400 * New targets
1401
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*
1407 Hitachi SH3 sh-*-*
1408 Matra Sparclet sparclet-*-*
1409
1410 * PowerPC simulator
1411
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.
1417
1418 * Solaris 2.5
1419
1420 GDB now works with Solaris 2.5.
1421
1422 * Windows 95/NT native
1423
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.
1429
1430 * dont-repeat command
1431
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.
1436
1437 * Send break instead of ^C
1438
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.
1442
1443 * Remote protocol timeout
1444
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.
1448
1449 * Automatic tracking of dynamic object loading (HPUX and Solaris only)
1450
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.
1456
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.
1460
1461 * Irix 5.x hardware watchpoint support
1462
1463 Irix 5 configurations now support the use of hardware watchpoints.
1464
1465 * Mips protocol "SYN garbage limit"
1466
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.
1471
1472 * Recording and replaying remote debug sessions
1473
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.
1480
1481 * Speedups for remote debugging
1482
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.
1486
1487 * Memory use reductions and statistics collection
1488
1489 GDB now uses less memory and reports statistics about memory usage.
1490 Try the `maint print statistics' command, for example.
1491
1492 *** Changes in GDB-4.15:
1493
1494 * Psymtabs for XCOFF
1495
1496 The symbol reader for AIX GDB now uses partial symbol tables. This
1497 can greatly improve startup time, especially for large executables.
1498
1499 * Remote targets use caching
1500
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.
1506
1507 * Remote targets may have threads
1508
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.
1512
1513 * NetROM support
1514
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
1522
1523 target nrom <netrom-hostname>
1524 load <prog>
1525 target remote <netrom-hostname>:1235
1526
1527 * Macintosh host
1528
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.
1537
1538 * Autoconf
1539
1540 GDB configuration now uses autoconf. This is not user-visible,
1541 but does simplify configuration and building.
1542
1543 * hpux10
1544
1545 GDB now supports hpux10.
1546
1547 *** Changes in GDB-4.14:
1548
1549 * New native configurations
1550
1551 x86 FreeBSD i[345]86-*-freebsd
1552 x86 NetBSD i[345]86-*-netbsd
1553 NS32k NetBSD ns32k-*-netbsd
1554 Sparc NetBSD sparc-*-netbsd
1555
1556 * New targets
1557
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
1562 WDC 65816 w65-*-*
1563
1564 * Alpha OSF/1 support for procfs
1565
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.
1571
1572 * Arguments to user-defined commands
1573
1574 User commands may accept up to 10 arguments separated by whitespace.
1575 Arguments are accessed within the user command via $arg0..$arg9. A
1576 trivial example:
1577 define adder
1578 print $arg0 + $arg1 + $arg2
1579
1580 To execute the command use:
1581 adder 1 2 3
1582
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.
1586
1587 * New `if' and `while' commands
1588
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.
1596
1597 * Fortran source language mode
1598
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
1603 Fortran compilers.
1604
1605 * Better HPUX support
1606
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:
1612
1613 adb -w a.out
1614 __dld_flags?W 0x5
1615 control-d
1616
1617 This will cause the libraries to be mapped private and read-write.
1618 To revert to the normal behavior, do this:
1619
1620 adb -w a.out
1621 __dld_flags?W 0x4
1622 control-d
1623
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
1626 external linkage.
1627
1628 GDB can now also read debug symbols produced by the HP C compiler on
1629 HPPAs (sorry, no C++, Fortran or 68k support).
1630
1631 * Target byte order now dynamically selectable
1632
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.
1639
1640 * New DOS host serial code
1641
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
1644 a PC's serial port.
1645
1646 *** Changes in GDB-4.13:
1647
1648 * New "complete" command
1649
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.
1652
1653 * Trailing space optional in prompt
1654
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.
1657
1658 * Breakpoint hit counts
1659
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
1665 that breakpoint.
1666
1667 * Ability to stop printing at NULL character
1668
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.
1672
1673 * Shared library breakpoints
1674
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.
1677
1678 * Hardware watchpoints
1679
1680 There is a new hardware breakpoint for the watch command for sparclite
1681 targets. See gdb/sparclite/hw_breakpoint.note.
1682
1683 Hardware watchpoints are also now supported under GNU/Linux.
1684
1685 * Annotations
1686
1687 Annotations have been added. These are for use with graphical interfaces,
1688 and are still experimental. Currently only gdba.el uses these.
1689
1690 * Improved Irix 5 support
1691
1692 GDB now works properly with Irix 5.2.
1693
1694 * Improved HPPA support
1695
1696 GDB now works properly with the latest GCC and GAS.
1697
1698 * New native configurations
1699
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*
1704
1705 * New targets
1706
1707 OS/9000 i[34]86-*-os9k
1708 MIPS R4000 mips64*{,el}-*-{ecoff,elf}
1709 Sparc64 sparc64-*-*
1710
1711 * Hitachi SH7000 and E7000-PC ICE support
1712
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.
1715
1716 * Fixes
1717
1718 As usual, a variety of small fixes and improvements, both generic
1719 and configuration-specific. See the ChangeLog for more detail.
1720
1721 *** Changes in GDB-4.12:
1722
1723 * Irix 5 is now supported
1724
1725 * HPPA support
1726
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.
1732
1733
1734 *** Changes in GDB-4.11:
1735
1736 * User visible changes:
1737
1738 * Remote Debugging
1739
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).
1745
1746 * DEC Alpha native support
1747
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.
1752
1753 * Preliminary thread implementation
1754
1755 GDB now has preliminary thread support for both SGI/Irix and LynxOS.
1756
1757 * LynxOS native and target support for 386
1758
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
1761 for details).
1762
1763 * Improvements in C++ mangling/demangling.
1764
1765 This release has much better g++ debugging, specifically in name
1766 mangling/demangling, virtual function calls, print virtual table,
1767 call methods, ...etc.
1768
1769 *** Changes in GDB-4.10:
1770
1771 * User visible changes:
1772
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.
1777
1778 Filename completion now works.
1779
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).
1783
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.
1789
1790 * DEC alpha support
1791
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.
1794
1795
1796 *** Changes in GDB-4.9:
1797
1798 * Testsuite
1799
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.
1803
1804 * C++ demangling
1805
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.
1811
1812 * Simulators
1813
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.
1817
1818 * New targets supported
1819
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
1825
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.
1829
1830 * New remote protocols
1831
1832 MIPS remote debugging protocol.
1833
1834 * New source languages supported
1835
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.
1839
1840
1841 *** Changes in GDB-4.8:
1842
1843 * HP Precision Architecture supported
1844
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).
1851
1852 Many problems in the preliminary version have been fixed.
1853
1854 * Faster and better demangling
1855
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
1862 symbol lookups.
1863
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.
1867
1868 * G++ multiple inheritance compiler problem
1869
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
1876 fix.
1877
1878 The previous G++ debug info problem (mentioned below for the gdb-4.7
1879 release) is fixed in gcc version 2.3.2.
1880
1881 * Improved configure script
1882
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.
1887
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.
1894
1895 * Documentation improvements
1896
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.
1900
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.
1906
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.
1913
1914 * New features
1915
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
1919 the target program.
1920
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.
1923
1924 * New native hosts supported
1925
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
1928
1929 * New targets supported
1930
1931 AMD 29k family via UDI a29k-amd-udi or udi29k
1932
1933 * New file formats supported
1934
1935 BFD now supports reading HP/PA-RISC executables (SOM file format?),
1936 HPUX core files, and SCO 3.2v2 core files.
1937
1938 * Major bug fixes
1939
1940 Attaching to processes now works again; thanks for the many bug reports.
1941
1942 We have also stomped on a bunch of core dumps caused by
1943 printf_filtered("%s") problems.
1944
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.
1948
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.
1951
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
1955 libraries.
1956
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.
1962
1963 * Internal improvements
1964
1965 GDB's internal interfaces have been improved to make it easier to support
1966 debugging of multiple languages in the future.
1967
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.
1973
1974 * New command line options
1975
1976 We now accept --silent as an alias for --quiet.
1977
1978 * Mmalloc licensing
1979
1980 The memory-mapped-malloc library is now licensed under the GNU Library
1981 General Public License.
1982
1983 *** Changes in GDB-4.7:
1984
1985 * Host/native/target split
1986
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.
1992
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.
2000
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.
2004
2005 * New hosts supported
2006
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
2010
2011 * New targets supported
2012
2013 Fujitsu SPARClite sparclite-fujitsu-none or sparclite
2014 68030 and CPU32 m68030-*-*, m68332-*-*
2015
2016 * New native hosts supported
2017
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
2021
2022 * New file formats supported
2023
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.
2027
2028 * New commands
2029
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.
2033
2034 `info handle' is a new alias for `info signals'.
2035
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.
2040
2041 * C++ improvements
2042
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.
2046
2047 Calling of methods and virtual functions has been improved as well.
2048
2049 * Major bug fixes
2050
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
2053 by the compiler.
2054
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.
2057
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.
2064
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.
2069
2070 * AMD 29k support
2071
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.
2077
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.
2082
2083 * Remote interfaces
2084
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.
2092
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.
2095
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.
2100
2101 * Configuration
2102
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.
2106
2107 * Library changes
2108
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.
2113
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.
2118
2119 * Documentation
2120
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).
2127
2128 And, of course, many bugs have been fixed.
2129
2130
2131 *** Changes in GDB-4.6:
2132
2133 * Better support for C++ function names
2134
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.
2140
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.
2146
2147 * G++ symbol mangling problem
2148
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
2155 this problem.)
2156
2157 * New 'maintenance' command
2158
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:
2162
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
2169
2170 The following commands are new:
2171
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
2175
2176 * Change to .gdbinit file processing
2177
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.
2182
2183 * New hosts supported
2184
2185 Solaris-2.0 !!! sparc-sun-solaris2 or sun4sol2
2186
2187 GNU/Linux support i386-unknown-linux or linux
2188
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.
2194 It costs extra.
2195
2196 * New targets supported
2197
2198 Hitachi H8/300 h8300-hitachi-hms or h8300hms
2199
2200 * More smarts about finding #include files
2201
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.
2207
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.)
2211
2212 * Interesting infernals change
2213
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.
2218
2219 * Bug fixes (of course!)
2220
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...
2224
2225 See the ChangeLog for details.
2226
2227 *** Changes in GDB-4.5:
2228
2229 * New machines supported (host and target)
2230
2231 IBM RS6000 running AIX rs6000-ibm-aix or rs6000
2232
2233 SGI Irix-4.x mips-sgi-irix4 or iris4
2234
2235 * New malloc package
2236
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.
2243
2244 * info proc
2245
2246 The 'info proc' command (SVR4 only) has been enhanced quite a bit. See
2247 'help info proc' for details.
2248
2249 * MIPS ecoff symbol table format
2250
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
2253 possible.
2254
2255 * File name changes for MS-DOS
2256
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.
2263
2264 * Cross byte order fixes
2265
2266 Many fixes have been made to support cross debugging of Sparc and MIPS
2267 targets from hosts whose byte order differs.
2268
2269 * New -mapped and -readnow options
2270
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.
2281
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.
2286
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
2290 use is:
2291
2292 gdb -batch -nx -mapped -readnow programname
2293
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.
2297
2298 * longjmp() handling
2299
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.
2304
2305 * Solaris 2.0
2306
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
2309 reading symbols.
2310
2311 * Bug fixes
2312
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.
2316
2317 *** Changes in GDB-4.4:
2318
2319 * New machines supported (host and target)
2320
2321 SCO Unix on i386 IBM PC clones i386-sco-sysv or i386sco
2322 (except core files)
2323 BSD Reno on Vax vax-dec-bsd
2324 Ultrix on Vax vax-dec-ultrix
2325
2326 * New machines supported (target)
2327
2328 AMD 29000 embedded, using EBMON a29k-none-none
2329
2330 * C++ support
2331
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.
2335
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
2341 released.
2342
2343 * New features for SVR4
2344
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.
2348
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.
2352
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).
2355
2356 * Better dynamic linking support in SunOS
2357
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.
2363
2364 * New Getopt
2365
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.
2372
2373 * Bugs fixed
2374
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.
2378
2379
2380 *** Changes in GDB-4.3:
2381
2382 * New machines supported (host and target)
2383
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
2387
2388 * Almost SCO Unix support
2389
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.
2395
2396 * Preliminary ELF and DWARF support
2397
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
2402 reqired (if any).
2403
2404 * New Readline
2405
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 ?).
2409
2410 * Bugs fixed
2411
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.
2415
2416 * State of the MIPS world (in case you wondered):
2417
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.
2421
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
2426 version 2.
2427
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
2432 situation somewhat.
2433
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
2436 methods.
2437
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.
2441
2442
2443 *** Changes in GDB-4.2:
2444
2445 * Improved configuration
2446
2447 Only one copy of `configure' exists now, and it is not self-modifying.
2448 Porting BFD is simpler.
2449
2450 * Stepping improved
2451
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.
2456
2457 * Bug fixing
2458
2459 Lots of small bugs fixed. More remain.
2460
2461 * New host supported (not target)
2462
2463 Intel 386 PC clone running Mach i386-none-mach
2464
2465
2466 *** Changes in GDB-4.1:
2467
2468 * Multiple source language support
2469
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'.
2476
2477 * GDB and Modula-2
2478
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.
2483
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!
2487
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.
2490
2491 * set write on/off
2492
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
2497 effect immediately.
2498
2499 * Automatic SunOS shared library reading
2500
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.
2505
2506 * set listsize
2507
2508 You can specify the number of lines that the `list' command shows.
2509 The default is 10.
2510
2511 * New machines supported (host and target)
2512
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
2516
2517 * New hosts supported (not targets)
2518
2519 IBM RT/PC: romp-ibm-aix or rtpc
2520
2521 * New targets supported (not hosts)
2522
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
2526
2527 * New remote interfaces
2528
2529 AMD 29000 Adapt
2530 AMD 29000 Minimon
2531
2532
2533 *** Changes in GDB-4.0:
2534
2535 * New Facilities
2536
2537 Wide output is wrapped at good places to make the output more readable.
2538
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.
2547
2548 New CPUs supported include the AMD 29000 and Intel 960.
2549
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.
2553
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).
2556
2557
2558 * Control-Variable user interface simplified
2559
2560 All variables that control the operation of the debugger can be set
2561 by the ``set'' command, and displayed by the ``show'' command.
2562
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=>.
2566
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.
2571
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.
2575
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.
2580 Default is ON.
2581
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
2585 GDBHISTFILE.
2586
2587 history size N: The size, in commands, of the command history. The
2588 default is 256, or the value of the environment variable
2589 HISTSIZE.
2590
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.
2594
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.
2598
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.
2602
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
2606 variable TERM.
2607
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
2611 variable TERM.
2612
2613 Note: ``set screensize'' is obsolete. Use ``set height'' and
2614 ``set width'' instead.
2615
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.
2620
2621 print array on/off: Prettyprint arrays. New convenient format! Default
2622 is OFF.
2623
2624 print demangle on/off: Print C++ symbols in "source" form if on,
2625 "raw" form if off.
2626
2627 print asm-demangle on/off: Same, for assembler level printouts
2628 like instructions.
2629
2630 print vtbl on/off: Prettyprint C++ virtual function tables. Default is OFF.
2631
2632
2633 * Support for Epoch Environment.
2634
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
2638 window.
2639
2640
2641 * Support for Shared Libraries
2642
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''.
2651
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.
2655
2656 info sharedlibrary: Status of loaded shared libraries.
2657
2658
2659 * Watchpoints
2660
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.
2667
2668 watch EXP: Set a watchpoint (breakpoint) for an expression.
2669
2670 info watchpoints: Information about your watchpoints.
2671
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).
2675
2676
2677 * C++ multiple inheritance
2678
2679 When used with a GCC version 2 compiler, GDB supports multiple inheritance
2680 for C++ programs.
2681
2682 * C++ exception handling
2683
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
2687 handler's context).
2688
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.
2692
2693 info catch: Lists all exceptions which may be caught in the
2694 current stack frame.
2695
2696
2697 * Minor command changes
2698
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.
2702
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.
2706
2707 * New directory command
2708
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 .".
2714
2715 * Configuring GDB for compilation
2716
2717 For normal use, type ``./configure host''. See README or gdb.texinfo
2718 for more details.
2719
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.
This page took 0.134812 seconds and 5 git commands to generate.