1 What has changed in GDB? 2 (Organized release by release) 3 4*** Changes in GDB 6.2.1: 5 6* Improved i386 prologue analyzer 7 8The i386 prologue analyzer was improved to deal better with the 9prologues generated by GCC 3.3 and later. As a result GDB should 10produce better backtraces for code without DWARF Call Frame Info. 11 12* MIPS `break main; run' gave an heuristic-fence-post warning 13 14When attempting to run even a simple program, a warning about 15heuristic-fence-post being hit would be reported. This problem has 16been fixed. 17 18* MIPS IRIX 'long double' crashed GDB 19 20When examining a long double variable, GDB would get a segmentation 21fault. The crash has been fixed (but GDB 6.2 cannot correctly examine 22IRIX long double values). 23 24* VAX and "next" 25 26A bug in the VAX stack code was causing problems with the "next" 27command. This problem has been fixed. 28 29*** Changes in GDB 6.2: 30 31* Fix for ``many threads'' 32 33On GNU/Linux systems that use the NPTL threads library, a program 34rapidly creating and deleting threads would confuse GDB leading to the 35error message: 36 37 ptrace: No such process. 38 thread_db_get_info: cannot get thread info: generic error 39 40This problem has been fixed. 41 42* "-async" and "-noasync" options removed. 43 44Support for the broken "-noasync" option has been removed (it caused 45GDB to dump core). 46 47* New ``start'' command. 48 49This command runs the program until the begining of the main procedure. 50 51* New BSD Kernel Data Access Library (libkvm) interface 52 53Using ``target kvm'' it is now possible to debug kernel core dumps and 54live kernel memory images on various FreeBSD, NetBSD and OpenBSD 55platforms. Currently supported (native-only) configurations are: 56 57FreeBSD/amd64 x86_64-*-freebsd* 58FreeBSD/i386 i?86-*-freebsd* 59NetBSD/i386 i?86-*-netbsd* 60NetBSD/m68k m68*-*-netbsd* 61NetBSD/sparc sparc-*-netbsd* 62OpenBSD/amd64 x86_64-*-openbsd* 63OpenBSD/i386 i?86-*-openbsd* 64OpenBSD/m68k m68*-openbsd* 65OpenBSD/sparc sparc-*-openbsd* 66 67* Signal trampoline code overhauled 68 69Many generic problems with GDB's signal handling code have been fixed. 70These include: backtraces through non-contiguous stacks; recognition 71of sa_sigaction signal trampolines; backtrace from a NULL pointer 72call; backtrace through a signal trampoline; step into and out of 73signal handlers; and single-stepping in the signal trampoline. 74 75Please note that kernel bugs are a limiting factor here. These 76features have been shown to work on an s390 GNU/Linux system that 77include a 2.6.8-rc1 kernel. Ref PR breakpoints/1702. 78 79* Cygwin support for DWARF 2 added. 80 81* New native configurations 82 83GNU/Linux/hppa hppa*-*-linux* 84OpenBSD/hppa hppa*-*-openbsd* 85OpenBSD/m68k m68*-*-openbsd* 86OpenBSD/m88k m88*-*-openbsd* 87OpenBSD/powerpc powerpc-*-openbsd* 88NetBSD/vax vax-*-netbsd* 89OpenBSD/vax vax-*-openbsd* 90 91* END-OF-LIFE frame compatibility module 92 93GDB's internal frame infrastructure has been completely rewritten. 94The new infrastructure making it possible to support key new features 95including DWARF 2 Call Frame Information. To aid in the task of 96migrating old configurations to this new infrastructure, a 97compatibility module, that allowed old configurations to continue to 98work, was also included. 99 100GDB 6.2 will be the last release to include this frame compatibility 101module. This change directly impacts the following configurations: 102 103h8300-*-* 104mcore-*-* 105mn10300-*-* 106ns32k-*-* 107sh64-*-* 108v850-*-* 109xstormy16-*-* 110 111Unless there is activity to revive these configurations, they will be 112made OBSOLETE in GDB 6.3, and REMOVED from GDB 6.4. 113 114* REMOVED configurations and files 115 116Sun 3, running SunOS 3 m68*-*-sunos3* 117Sun 3, running SunOS 4 m68*-*-sunos4* 118Sun 2, running SunOS 3 m68000-*-sunos3* 119Sun 2, running SunOS 4 m68000-*-sunos4* 120Motorola 680x0 running LynxOS m68*-*-lynxos* 121AT&T 3b1/Unix pc m68*-att-* 122Bull DPX2 (68k, System V release 3) m68*-bull-sysv* 123decstation mips-dec-* mips-little-* 124riscos mips-*-riscos* mips-*-sysv* 125sonymips mips-sony-* 126sysv mips*-*-sysv4* (IRIX 5/6 not included) 127 128*** Changes in GDB 6.1.1: 129 130* TUI (Text-mode User Interface) built-in (also included in GDB 6.1) 131 132The TUI (Text-mode User Interface) is now built as part of a default 133GDB configuration. It is enabled by either selecting the TUI with the 134command line option "-i=tui" or by running the separate "gdbtui" 135program. For more information on the TUI, see the manual "Debugging 136with GDB". 137 138* Pending breakpoint support (also included in GDB 6.1) 139 140Support has been added to allow you to specify breakpoints in shared 141libraries that have not yet been loaded. If a breakpoint location 142cannot be found, and the "breakpoint pending" option is set to auto, 143GDB queries you if you wish to make the breakpoint pending on a future 144shared-library load. If and when GDB resolves the breakpoint symbol, 145the pending breakpoint is removed as one or more regular breakpoints 146are created. 147 148Pending breakpoints are very useful for GCJ Java debugging. 149 150* Fixed ISO-C build problems 151 152The files bfd/elf-bfd.h, gdb/dictionary.c and gdb/types.c contained 153non ISO-C code that stopped them being built using a more strict ISO-C 154compiler (e.g., IBM's C compiler). 155 156* Fixed build problem on IRIX 5 157 158Due to header problems with <sys/proc.h>, the file gdb/proc-api.c 159wasn't able to compile compile on an IRIX 5 system. 160 161* Added execute permission to gdb/gdbserver/configure 162 163The shell script gdb/testsuite/gdb.stabs/configure lacked execute 164permission. This bug would cause configure to fail on a number of 165systems (Solaris, IRIX). Ref: server/519. 166 167* Fixed build problem on hpux2.0w-hp-hpux11.00 using the HP ANSI C compiler 168 169Older HPUX ANSI C compilers did not accept variable array sizes. somsolib.c 170has been updated to use constant array sizes. 171 172* Fixed a panic in the DWARF Call Frame Info code on Solaris 2.7 173 174GCC 3.3.2, on Solaris 2.7, includes the DW_EH_PE_funcrel encoding in 175its generated DWARF Call Frame Info. This encoding was causing GDB to 176panic, that panic has been fixed. Ref: gdb/1628. 177 178* Fixed a problem when examining parameters in shared library code. 179 180When examining parameters in optimized shared library code generated 181by a mainline GCC, GDB would incorrectly report ``Variable "..." is 182not available''. GDB now correctly displays the variable's value. 183 184*** Changes in GDB 6.1: 185 186* Removed --with-mmalloc 187 188Support for the mmalloc memory manager has been removed, as it 189conflicted with the internal gdb byte cache. 190 191* Changes in AMD64 configurations 192 193The AMD64 target now includes the %cs and %ss registers. As a result 194the AMD64 remote protocol has changed; this affects the floating-point 195and SSE registers. If you rely on those registers for your debugging, 196you should upgrade gdbserver on the remote side. 197 198* Revised SPARC target 199 200The SPARC target has been completely revised, incorporating the 201FreeBSD/sparc64 support that was added for GDB 6.0. As a result 202support for LynxOS and SunOS 4 has been dropped. Calling functions 203from within GDB on operating systems with a non-executable stack 204(Solaris, OpenBSD) now works. 205 206* New C++ demangler 207 208GDB has a new C++ demangler which does a better job on the mangled 209names generated by current versions of g++. It also runs faster, so 210with this and other changes gdb should now start faster on large C++ 211programs. 212 213* DWARF 2 Location Expressions 214 215GDB support for location expressions has been extended to support function 216arguments and frame bases. Older versions of GDB could crash when they 217encountered these. 218 219* C++ nested types and namespaces 220 221GDB's support for nested types and namespaces in C++ has been 222improved, especially if you use the DWARF 2 debugging format. (This 223is the default for recent versions of GCC on most platforms.) 224Specifically, if you have a class "Inner" defined within a class or 225namespace "Outer", then GDB realizes that the class's name is 226"Outer::Inner", not simply "Inner". This should greatly reduce the 227frequency of complaints about not finding RTTI symbols. In addition, 228if you are stopped at inside of a function defined within a namespace, 229GDB modifies its name lookup accordingly. 230 231* New native configurations 232 233NetBSD/amd64 x86_64-*-netbsd* 234OpenBSD/amd64 x86_64-*-openbsd* 235OpenBSD/alpha alpha*-*-openbsd* 236OpenBSD/sparc sparc-*-openbsd* 237OpenBSD/sparc64 sparc64-*-openbsd* 238 239* New debugging protocols 240 241M32R with SDI protocol m32r-*-elf* 242 243* "set prompt-escape-char" command deleted. 244 245The command "set prompt-escape-char" has been deleted. This command, 246and its very obscure effet on GDB's prompt, was never documented, 247tested, nor mentioned in the NEWS file. 248 249* OBSOLETE configurations and files 250 251Configurations that have been declared obsolete in this release have 252been commented out. Unless there is activity to revive these 253configurations, the next release of GDB will have their sources 254permanently REMOVED. 255 256Sun 3, running SunOS 3 m68*-*-sunos3* 257Sun 3, running SunOS 4 m68*-*-sunos4* 258Sun 2, running SunOS 3 m68000-*-sunos3* 259Sun 2, running SunOS 4 m68000-*-sunos4* 260Motorola 680x0 running LynxOS m68*-*-lynxos* 261AT&T 3b1/Unix pc m68*-att-* 262Bull DPX2 (68k, System V release 3) m68*-bull-sysv* 263decstation mips-dec-* mips-little-* 264riscos mips-*-riscos* mips-*-sysv* 265sonymips mips-sony-* 266sysv mips*-*-sysv4* (IRIX 5/6 not included) 267 268* REMOVED configurations and files 269 270SGI Irix-4.x mips-sgi-irix4 or iris4 271SGI Iris (MIPS) running Irix V3: mips-sgi-irix or iris 272Z8000 simulator z8k-zilog-none or z8ksim 273Matsushita MN10200 w/simulator mn10200-*-* 274H8/500 simulator h8500-hitachi-hms or h8500hms 275HP/PA running BSD hppa*-*-bsd* 276HP/PA running OSF/1 hppa*-*-osf* 277HP/PA Pro target hppa*-*-pro* 278PMAX (MIPS) running Mach 3.0 mips*-*-mach3* 279386BSD i[3456]86-*-bsd* 280Sequent family i[3456]86-sequent-sysv4* 281 i[3456]86-sequent-sysv* 282 i[3456]86-sequent-bsd* 283SPARC running LynxOS sparc-*-lynxos* 284SPARC running SunOS 4 sparc-*-sunos4* 285Tsqware Sparclet sparclet-*-* 286Fujitsu SPARClite sparclite-fujitsu-none or sparclite 287 288*** Changes in GDB 6.0: 289 290* Objective-C 291 292Support for debugging the Objective-C programming language has been 293integrated into GDB. 294 295* New backtrace mechanism (includes DWARF 2 Call Frame Information). 296 297DWARF 2's Call Frame Information makes available compiler generated 298information that more exactly describes the program's run-time stack. 299By using this information, GDB is able to provide more robust stack 300backtraces. 301 302The i386, amd64 (nee, x86-64), Alpha, m68hc11, ia64, and m32r targets 303have been updated to use a new backtrace mechanism which includes 304DWARF 2 CFI support. 305 306* Hosted file I/O. 307 308GDB's remote protocol has been extended to include support for hosted 309file I/O (where the remote target uses GDB's file system). See GDB's 310remote protocol documentation for details. 311 312* All targets using the new architecture framework. 313 314All of GDB's targets have been updated to use the new internal 315architecture framework. The way is now open for future GDB releases 316to include cross-architecture native debugging support (i386 on amd64, 317ppc32 on ppc64). 318 319* GNU/Linux's Thread Local Storage (TLS) 320 321GDB now includes support for for the GNU/Linux implementation of 322per-thread variables. 323 324* GNU/Linux's Native POSIX Thread Library (NPTL) 325 326GDB's thread code has been updated to work with either the new 327GNU/Linux NPTL thread library or the older "LinuxThreads" library. 328 329* Separate debug info. 330 331GDB, in conjunction with BINUTILS, now supports a mechanism for 332automatically loading debug information from a separate file. Instead 333of shipping full debug and non-debug versions of system libraries, 334system integrators can now instead ship just the stripped libraries 335and optional debug files. 336 337* DWARF 2 Location Expressions 338 339DWARF 2 Location Expressions allow the compiler to more completely 340describe the location of variables (even in optimized code) to the 341debugger. 342 343GDB now includes preliminary support for location expressions (support 344for DW_OP_piece is still missing). 345 346* Java 347 348A number of long standing bugs that caused GDB to die while starting a 349Java application have been fixed. GDB's Java support is now 350considered "useable". 351 352* GNU/Linux support for fork, vfork, and exec. 353 354The "catch fork", "catch exec", "catch vfork", and "set follow-fork-mode" 355commands are now implemented for GNU/Linux. They require a 2.5.x or later 356kernel. 357 358* GDB supports logging output to a file 359 360There are two new commands, "set logging" and "show logging", which can be 361used to capture GDB's output to a file. 362 363* The meaning of "detach" has changed for gdbserver 364 365The "detach" command will now resume the application, as documented. To 366disconnect from gdbserver and leave it stopped, use the new "disconnect" 367command. 368 369* d10v, m68hc11 `regs' command deprecated 370 371The `info registers' command has been updated so that it displays the 372registers using a format identical to the old `regs' command. 373 374* Profiling support 375 376A new command, "maint set profile on/off", has been added. This command can 377be used to enable or disable profiling while running GDB, to profile a 378session or a set of commands. In addition there is a new configure switch, 379"--enable-profiling", which will cause GDB to be compiled with profiling 380data, for more informative profiling results. 381 382* Default MI syntax changed to "mi2". 383 384The default MI (machine interface) syntax, enabled by the command line 385option "-i=mi", has been changed to "mi2". The previous MI syntax, 386"mi1", can be enabled by specifying the option "-i=mi1". 387 388Support for the original "mi0" syntax (included in GDB 5.0) has been 389removed. 390 391Fix for gdb/192: removed extraneous space when displaying frame level. 392Fix for gdb/672: update changelist is now output in mi list format. 393Fix for gdb/702: a -var-assign that updates the value now shows up 394 in a subsequent -var-update. 395 396* New native configurations. 397 398FreeBSD/amd64 x86_64-*-freebsd* 399 400* Multi-arched targets. 401 402HP/PA HPUX11 hppa*-*-hpux* 403Renesas M32R/D w/simulator m32r-*-elf* 404 405* OBSOLETE configurations and files 406 407Configurations that have been declared obsolete in this release have 408been commented out. Unless there is activity to revive these 409configurations, the next release of GDB will have their sources 410permanently REMOVED. 411 412Z8000 simulator z8k-zilog-none or z8ksim 413Matsushita MN10200 w/simulator mn10200-*-* 414H8/500 simulator h8500-hitachi-hms or h8500hms 415HP/PA running BSD hppa*-*-bsd* 416HP/PA running OSF/1 hppa*-*-osf* 417HP/PA Pro target hppa*-*-pro* 418PMAX (MIPS) running Mach 3.0 mips*-*-mach3* 419Sequent family i[3456]86-sequent-sysv4* 420 i[3456]86-sequent-sysv* 421 i[3456]86-sequent-bsd* 422Tsqware Sparclet sparclet-*-* 423Fujitsu SPARClite sparclite-fujitsu-none or sparclite 424 425* REMOVED configurations and files 426 427V850EA ISA 428Motorola Delta 88000 running Sys V m88k-motorola-sysv or delta88 429IBM AIX PS/2 i[3456]86-*-aix 430i386 running Mach 3.0 i[3456]86-*-mach3* 431i386 running Mach i[3456]86-*-mach* 432i386 running OSF/1 i[3456]86-*osf1mk* 433HP/Apollo 68k Family m68*-apollo*-sysv*, 434 m68*-apollo*-bsd*, 435 m68*-hp-bsd*, m68*-hp-hpux* 436Argonaut Risc Chip (ARC) arc-*-* 437Mitsubishi D30V d30v-*-* 438Fujitsu FR30 fr30-*-elf* 439OS/9000 i[34]86-*-os9k 440I960 with MON960 i960-*-coff 441 442* MIPS $fp behavior changed 443 444The convenience variable $fp, for the MIPS, now consistently returns 445the address of the current frame's base. Previously, depending on the 446context, $fp could refer to either $sp or the current frame's base 447address. See ``8.10 Registers'' in the manual ``Debugging with GDB: 448The GNU Source-Level Debugger''. 449 450*** Changes in GDB 5.3: 451 452* GNU/Linux shared library multi-threaded performance improved. 453 454When debugging a multi-threaded application on GNU/Linux, GDB now uses 455`/proc', in preference to `ptrace' for memory reads. This may result 456in an improvement in the start-up time of multi-threaded, shared 457library applications when run under GDB. One GDB user writes: ``loads 458shared libs like mad''. 459 460* ``gdbserver'' now supports multi-threaded applications on some targets 461 462Support for debugging multi-threaded applications which use 463the GNU/Linux LinuxThreads package has been added for 464arm*-*-linux*-gnu*, i[3456]86-*-linux*-gnu*, mips*-*-linux*-gnu*, 465powerpc*-*-linux*-gnu*, and sh*-*-linux*-gnu*. 466 467* GDB now supports C/C++ preprocessor macros. 468 469GDB now expands preprocessor macro invocations in C/C++ expressions, 470and provides various commands for showing macro definitions and how 471they expand. 472 473The new command `macro expand EXPRESSION' expands any macro 474invocations in expression, and shows the result. 475 476The new command `show macro MACRO-NAME' shows the definition of the 477macro named MACRO-NAME, and where it was defined. 478 479Most compilers don't include information about macros in the debugging 480information by default. In GCC 3.1, for example, you need to compile 481your program with the options `-gdwarf-2 -g3'. If the macro 482information is present in the executable, GDB will read it. 483 484* Multi-arched targets. 485 486DEC Alpha (partial) alpha*-*-* 487DEC VAX (partial) vax-*-* 488NEC V850 v850-*-* 489National Semiconductor NS32000 (partial) ns32k-*-* 490Motorola 68000 (partial) m68k-*-* 491Motorola MCORE mcore-*-* 492 493* New targets. 494 495Fujitsu FRV architecture added by Red Hat frv*-*-* 496 497 498* New native configurations 499 500Alpha NetBSD alpha*-*-netbsd* 501SH NetBSD sh*-*-netbsdelf* 502MIPS NetBSD mips*-*-netbsd* 503UltraSPARC NetBSD sparc64-*-netbsd* 504 505* OBSOLETE configurations and files 506 507Configurations that have been declared obsolete in this release have 508been commented out. Unless there is activity to revive these 509configurations, the next release of GDB will have their sources 510permanently REMOVED. 511 512Mitsubishi D30V d30v-*-* 513OS/9000 i[34]86-*-os9k 514IBM AIX PS/2 i[3456]86-*-aix 515Fujitsu FR30 fr30-*-elf* 516Motorola Delta 88000 running Sys V m88k-motorola-sysv or delta88 517Argonaut Risc Chip (ARC) arc-*-* 518i386 running Mach 3.0 i[3456]86-*-mach3* 519i386 running Mach i[3456]86-*-mach* 520i386 running OSF/1 i[3456]86-*osf1mk* 521HP/Apollo 68k Family m68*-apollo*-sysv*, 522 m68*-apollo*-bsd*, 523 m68*-hp-bsd*, m68*-hp-hpux* 524I960 with MON960 i960-*-coff 525 526* OBSOLETE languages 527 528CHILL, a Pascal like language used by telecommunications companies. 529 530* REMOVED configurations and files 531 532AMD 29k family via UDI a29k-amd-udi, udi29k 533A29K VxWorks a29k-*-vxworks 534AMD 29000 embedded, using EBMON a29k-none-none 535AMD 29000 embedded with COFF a29k-none-coff 536AMD 29000 embedded with a.out a29k-none-aout 537 538testsuite/gdb.hp/gdb.threads-hp/ directory 539 540* New command "set max-user-call-depth <nnn>" 541 542This command allows the user to limit the call depth of user-defined 543commands. The default is 1024. 544 545* Changes in FreeBSD/i386 native debugging. 546 547Support for the "generate-core-file" has been added. 548 549* New commands "dump", "append", and "restore". 550 551These commands allow data to be copied from target memory 552to a bfd-format or binary file (dump and append), and back 553from a file into memory (restore). 554 555* Improved "next/step" support on multi-processor Alpha Tru64. 556 557The previous single-step mechanism could cause unpredictable problems, 558including the random appearance of SIGSEGV or SIGTRAP signals. The use 559of a software single-step mechanism prevents this. 560 561*** Changes in GDB 5.2.1: 562 563* New targets. 564 565Atmel AVR avr*-*-* 566 567* Bug fixes 568 569gdb/182: gdb/323: gdb/237: On alpha, gdb was reporting: 570mdebugread.c:2443: gdb-internal-error: sect_index_data not initialized 571Fix, by Joel Brobecker imported from mainline. 572 573gdb/439: gdb/291: On some ELF object files, gdb was reporting: 574dwarf2read.c:1072: gdb-internal-error: sect_index_text not initialize 575Fix, by Fred Fish, imported from mainline. 576 577Dwarf2 .debug_frame & .eh_frame handler improved in many ways. 578Surprisingly enough, it works now. 579By Michal Ludvig, imported from mainline. 580 581i386 hardware watchpoint support: 582avoid misses on second run for some targets. 583By Pierre Muller, imported from mainline. 584 585*** Changes in GDB 5.2: 586 587* New command "set trust-readonly-sections on[off]". 588 589This command is a hint that tells gdb that read-only sections 590really are read-only (ie. that their contents will not change). 591In this mode, gdb will go to the object file rather than the 592target to read memory from read-only sections (such as ".text"). 593This can be a significant performance improvement on some 594(notably embedded) targets. 595 596* New command "generate-core-file" (or "gcore"). 597 598This new gdb command allows the user to drop a core file of the child 599process state at any time. So far it's been implemented only for 600GNU/Linux and Solaris, but should be relatively easily ported to other 601hosts. Argument is core file name (defaults to core.<pid>). 602 603* New command line option 604 605GDB now accepts --pid or -p followed by a process id. 606 607* Change in command line behavior -- corefiles vs. process ids. 608 609There is a subtle behavior in the way in which GDB handles 610command line arguments. The first non-flag argument is always 611a program to debug, but the second non-flag argument may either 612be a corefile or a process id. Previously, GDB would attempt to 613open the second argument as a corefile, and if that failed, would 614issue a superfluous error message and then attempt to attach it as 615a process. Now, if the second argument begins with a non-digit, 616it will be treated as a corefile. If it begins with a digit, 617GDB will attempt to attach it as a process, and if no such process 618is found, will then attempt to open it as a corefile. 619 620* Changes in ARM configurations. 621 622Multi-arch support is enabled for all ARM configurations. The ARM/NetBSD 623configuration is fully multi-arch. 624 625* New native configurations 626 627ARM NetBSD arm*-*-netbsd* 628x86 OpenBSD i[3456]86-*-openbsd* 629AMD x86-64 running GNU/Linux x86_64-*-linux-* 630Sparc64 running FreeBSD sparc64-*-freebsd* 631 632* New targets 633 634Sanyo XStormy16 xstormy16-elf 635 636* OBSOLETE configurations and files 637 638Configurations that have been declared obsolete in this release have 639been commented out. Unless there is activity to revive these 640configurations, the next release of GDB will have their sources 641permanently REMOVED. 642 643AMD 29k family via UDI a29k-amd-udi, udi29k 644A29K VxWorks a29k-*-vxworks 645AMD 29000 embedded, using EBMON a29k-none-none 646AMD 29000 embedded with COFF a29k-none-coff 647AMD 29000 embedded with a.out a29k-none-aout 648 649testsuite/gdb.hp/gdb.threads-hp/ directory 650 651* REMOVED configurations and files 652 653TI TMS320C80 tic80-*-* 654WDC 65816 w65-*-* 655PowerPC Solaris powerpcle-*-solaris* 656PowerPC Windows NT powerpcle-*-cygwin32 657PowerPC Netware powerpc-*-netware* 658Harris/CXUX m88k m88*-harris-cxux* 659Most ns32k hosts and targets ns32k-*-mach3* ns32k-umax-* 660 ns32k-utek-sysv* ns32k-utek-* 661SunOS 4.0.Xi on i386 i[3456]86-*-sunos* 662Ultracomputer (29K) running Sym1 a29k-nyu-sym1 a29k-*-kern* 663Sony NEWS (68K) running NEWSOS 3.x m68*-sony-sysv news 664ISI Optimum V (3.05) under 4.3bsd. m68*-isi-* 665Apple Macintosh (MPW) host and target N/A host, powerpc-*-macos* 666 667* Changes to command line processing 668 669The new `--args' feature can be used to specify command-line arguments 670for the inferior from gdb's command line. 671 672* Changes to key bindings 673 674There is a new `operate-and-get-next' function bound to `C-o'. 675 676*** Changes in GDB 5.1.1 677 678Fix compile problem on DJGPP. 679 680Fix a problem with floating-point registers on the i386 being 681corrupted. 682 683Fix to stop GDB crashing on .debug_str debug info. 684 685Numerous documentation fixes. 686 687Numerous testsuite fixes. 688 689*** Changes in GDB 5.1: 690 691* New native configurations 692 693Alpha FreeBSD alpha*-*-freebsd* 694x86 FreeBSD 3.x and 4.x i[3456]86*-freebsd[34]* 695MIPS GNU/Linux mips*-*-linux* 696MIPS SGI Irix 6.x mips*-sgi-irix6* 697ia64 AIX ia64-*-aix* 698s390 and s390x GNU/Linux {s390,s390x}-*-linux* 699 700* New targets 701 702Motorola 68HC11 and 68HC12 m68hc11-elf 703CRIS cris-axis 704UltraSparc running GNU/Linux sparc64-*-linux* 705 706* OBSOLETE configurations and files 707 708x86 FreeBSD before 2.2 i[3456]86*-freebsd{1,2.[01]}*, 709Harris/CXUX m88k m88*-harris-cxux* 710Most ns32k hosts and targets ns32k-*-mach3* ns32k-umax-* 711 ns32k-utek-sysv* ns32k-utek-* 712TI TMS320C80 tic80-*-* 713WDC 65816 w65-*-* 714Ultracomputer (29K) running Sym1 a29k-nyu-sym1 a29k-*-kern* 715PowerPC Solaris powerpcle-*-solaris* 716PowerPC Windows NT powerpcle-*-cygwin32 717PowerPC Netware powerpc-*-netware* 718SunOS 4.0.Xi on i386 i[3456]86-*-sunos* 719Sony NEWS (68K) running NEWSOS 3.x m68*-sony-sysv news 720ISI Optimum V (3.05) under 4.3bsd. m68*-isi-* 721Apple Macintosh (MPW) host N/A 722 723stuff.c (Program to stuff files into a specially prepared space in kdb) 724kdb-start.c (Main loop for the standalone kernel debugger) 725 726Configurations that have been declared obsolete in this release have 727been commented out. Unless there is activity to revive these 728configurations, the next release of GDB will have their sources 729permanently REMOVED. 730 731* REMOVED configurations and files 732 733Altos 3068 m68*-altos-* 734Convex c1-*-*, c2-*-* 735Pyramid pyramid-*-* 736ARM RISCix arm-*-* (as host) 737Tahoe tahoe-*-* 738ser-ocd.c *-*-* 739 740* GDB has been converted to ISO C. 741 742GDB's source code has been converted to ISO C. In particular, the 743sources are fully protoized, and rely on standard headers being 744present. 745 746* Other news: 747 748* "info symbol" works on platforms which use COFF, ECOFF, XCOFF, and NLM. 749 750* The MI enabled by default. 751 752The new machine oriented interface (MI) introduced in GDB 5.0 has been 753revised and enabled by default. Packages which use GDB as a debugging 754engine behind a UI or another front end are encouraged to switch to 755using the GDB/MI interface, instead of the old annotations interface 756which is now deprecated. 757 758* Support for debugging Pascal programs. 759 760GDB now includes support for debugging Pascal programs. The following 761main features are supported: 762 763 - Pascal-specific data types such as sets; 764 765 - automatic recognition of Pascal sources based on file-name 766 extension; 767 768 - Pascal-style display of data types, variables, and functions; 769 770 - a Pascal expression parser. 771 772However, some important features are not yet supported. 773 774 - Pascal string operations are not supported at all; 775 776 - there are some problems with boolean types; 777 778 - Pascal type hexadecimal constants are not supported 779 because they conflict with the internal variables format; 780 781 - support for Pascal objects and classes is not full yet; 782 783 - unlike Pascal, GDB is case-sensitive for symbol names. 784 785* Changes in completion. 786 787Commands such as `shell', `run' and `set args', which pass arguments 788to inferior programs, now complete on file names, similar to what 789users expect at the shell prompt. 790 791Commands which accept locations, such as `disassemble', `print', 792`breakpoint', `until', etc. now complete on filenames as well as 793program symbols. Thus, if you type "break foob TAB", and the source 794files linked into the programs include `foobar.c', that file name will 795be one of the candidates for completion. However, file names are not 796considered for completion after you typed a colon that delimits a file 797name from a name of a function in that file, as in "break foo.c:bar". 798 799`set demangle-style' completes on available demangling styles. 800 801* New platform-independent commands: 802 803It is now possible to define a post-hook for a command as well as a 804hook that runs before the command. For more details, see the 805documentation of `hookpost' in the GDB manual. 806 807* Changes in GNU/Linux native debugging. 808 809Support for debugging multi-threaded programs has been completely 810revised for all platforms except m68k and sparc. You can now debug as 811many threads as your system allows you to have. 812 813Attach/detach is supported for multi-threaded programs. 814 815Support for SSE registers was added for x86. This doesn't work for 816multi-threaded programs though. 817 818* Changes in MIPS configurations. 819 820Multi-arch support is enabled for all MIPS configurations. 821 822GDB can now be built as native debugger on SGI Irix 6.x systems for 823debugging n32 executables. (Debugging 64-bit executables is not yet 824supported.) 825 826* Unified support for hardware watchpoints in all x86 configurations. 827 828Most (if not all) native x86 configurations support hardware-assisted 829breakpoints and watchpoints in a unified manner. This support 830implements debug register sharing between watchpoints, which allows to 831put a virtually infinite number of watchpoints on the same address, 832and also supports watching regions up to 16 bytes with several debug 833registers. 834 835The new maintenance command `maintenance show-debug-regs' toggles 836debugging print-outs in functions that insert, remove, and test 837watchpoints and hardware breakpoints. 838 839* Changes in the DJGPP native configuration. 840 841New command ``info dos sysinfo'' displays assorted information about 842the CPU, OS, memory, and DPMI server. 843 844New commands ``info dos gdt'', ``info dos ldt'', and ``info dos idt'' 845display information about segment descriptors stored in GDT, LDT, and 846IDT. 847 848New commands ``info dos pde'' and ``info dos pte'' display entries 849from Page Directory and Page Tables (for now works with CWSDPMI only). 850New command ``info dos address-pte'' displays the Page Table entry for 851a given linear address. 852 853GDB can now pass command lines longer than 126 characters to the 854program being debugged (requires an update to the libdbg.a library 855which is part of the DJGPP development kit). 856 857DWARF2 debug info is now supported. 858 859It is now possible to `step' and `next' through calls to `longjmp'. 860 861* Changes in documentation. 862 863All GDB documentation was converted to GFDL, the GNU Free 864Documentation License. 865 866Tracepoints-related commands are now fully documented in the GDB 867manual. 868 869TUI, the Text-mode User Interface, is now documented in the manual. 870 871Tracepoints-related commands are now fully documented in the GDB 872manual. 873 874The "GDB Internals" manual now has an index. It also includes 875documentation of `ui_out' functions, GDB coding standards, x86 876hardware watchpoints, and memory region attributes. 877 878* GDB's version number moved to ``version.in'' 879 880The Makefile variable VERSION has been replaced by the file 881``version.in''. People creating GDB distributions should update the 882contents of this file. 883 884* gdba.el deleted 885 886GUD support is now a standard part of the EMACS distribution. 887 888*** Changes in GDB 5.0: 889 890* Improved support for debugging FP programs on x86 targets 891 892Unified and much-improved support for debugging floating-point 893programs on all x86 targets. In particular, ``info float'' now 894displays the FP registers in the same format on all x86 targets, with 895greater level of detail. 896 897* Improvements and bugfixes in hardware-assisted watchpoints 898 899It is now possible to watch array elements, struct members, and 900bitfields with hardware-assisted watchpoints. Data-read watchpoints 901on x86 targets no longer erroneously trigger when the address is 902written. 903 904* Improvements in the native DJGPP version of GDB 905 906The distribution now includes all the scripts and auxiliary files 907necessary to build the native DJGPP version on MS-DOS/MS-Windows 908machines ``out of the box''. 909 910The DJGPP version can now debug programs that use signals. It is 911possible to catch signals that happened in the debuggee, deliver 912signals to it, interrupt it with Ctrl-C, etc. (Previously, a signal 913would kill the program being debugged.) Programs that hook hardware 914interrupts (keyboard, timer, etc.) can also be debugged. 915 916It is now possible to debug DJGPP programs that redirect their 917standard handles or switch them to raw (as opposed to cooked) mode, or 918even close them. The command ``run < foo > bar'' works as expected, 919and ``info terminal'' reports useful information about the debuggee's 920terminal, including raw/cooked mode, redirection, etc. 921 922The DJGPP version now uses termios functions for console I/O, which 923enables debugging graphics programs. Interrupting GDB with Ctrl-C 924also works. 925 926DOS-style file names with drive letters are now fully supported by 927GDB. 928 929It is now possible to debug DJGPP programs that switch their working 930directory. It is also possible to rerun the debuggee any number of 931times without restarting GDB; thus, you can use the same setup, 932breakpoints, etc. for many debugging sessions. 933 934* New native configurations 935 936ARM GNU/Linux arm*-*-linux* 937PowerPC GNU/Linux powerpc-*-linux* 938 939* New targets 940 941Motorola MCore mcore-*-* 942x86 VxWorks i[3456]86-*-vxworks* 943PowerPC VxWorks powerpc-*-vxworks* 944TI TMS320C80 tic80-*-* 945 946* OBSOLETE configurations 947 948Altos 3068 m68*-altos-* 949Convex c1-*-*, c2-*-* 950Pyramid pyramid-*-* 951ARM RISCix arm-*-* (as host) 952Tahoe tahoe-*-* 953 954Configurations that have been declared obsolete will be commented out, 955but the code will be left in place. If there is no activity to revive 956these configurations before the next release of GDB, the sources will 957be permanently REMOVED. 958 959* Gould support removed 960 961Support for the Gould PowerNode and NP1 has been removed. 962 963* New features for SVR4 964 965On SVR4 native platforms (such as Solaris), if you attach to a process 966without first loading a symbol file, GDB will now attempt to locate and 967load symbols from the running process's executable file. 968 969* Many C++ enhancements 970 971C++ support has been greatly improved. Overload resolution now works properly 972in almost all cases. RTTI support is on the way. 973 974* Remote targets can connect to a sub-program 975 976A popen(3) style serial-device has been added. This device starts a 977sub-process (such as a stand-alone simulator) and then communicates 978with that. The sub-program to run is specified using the syntax 979``|<program> <args>'' vis: 980 981 (gdb) set remotedebug 1 982 (gdb) target extended-remote |mn10300-elf-sim program-args 983 984* MIPS 64 remote protocol 985 986A long standing bug in the mips64 remote protocol where by GDB 987expected certain 32 bit registers (ex SR) to be transfered as 32 988instead of 64 bits has been fixed. 989 990The command ``set remote-mips64-transfers-32bit-regs on'' has been 991added to provide backward compatibility with older versions of GDB. 992 993* ``set remotebinarydownload'' replaced by ``set remote X-packet'' 994 995The command ``set remotebinarydownload'' command has been replaced by 996``set remote X-packet''. Other commands in ``set remote'' family 997include ``set remote P-packet''. 998 999* Breakpoint commands accept ranges. 1000 1001The breakpoint commands ``enable'', ``disable'', and ``delete'' now 1002accept a range of breakpoints, e.g. ``5-7''. The tracepoint command 1003``tracepoint passcount'' also accepts a range of tracepoints. 1004 1005* ``apropos'' command added. 1006 1007The ``apropos'' command searches through command names and 1008documentation strings, printing out matches, making it much easier to 1009try to find a command that does what you are looking for. 1010 1011* New MI interface 1012 1013A new machine oriented interface (MI) has been added to GDB. This 1014interface is designed for debug environments running GDB as a separate 1015process. This is part of the long term libGDB project. See the 1016"GDB/MI" chapter of the GDB manual for further information. It can be 1017enabled by configuring with: 1018 1019 .../configure --enable-gdbmi 1020 1021*** Changes in GDB-4.18: 1022 1023* New native configurations 1024 1025HP-UX 10.20 hppa*-*-hpux10.20 1026HP-UX 11.x hppa*-*-hpux11.0* 1027M68K GNU/Linux m68*-*-linux* 1028 1029* New targets 1030 1031Fujitsu FR30 fr30-*-elf* 1032Intel StrongARM strongarm-*-* 1033Mitsubishi D30V d30v-*-* 1034 1035* OBSOLETE configurations 1036 1037Gould PowerNode, NP1 np1-*-*, pn-*-* 1038 1039Configurations that have been declared obsolete will be commented out, 1040but the code will be left in place. If there is no activity to revive 1041these configurations before the next release of GDB, the sources will 1042be permanently REMOVED. 1043 1044* ANSI/ISO C 1045 1046As a compatibility experiment, GDB's source files buildsym.h and 1047buildsym.c have been converted to pure standard C, no longer 1048containing any K&R compatibility code. We believe that all systems in 1049use today either come with a standard C compiler, or have a GCC port 1050available. If this is not true, please report the affected 1051configuration to bug-gdb@gnu.org immediately. See the README file for 1052information about getting a standard C compiler if you don't have one 1053already. 1054 1055* Readline 2.2 1056 1057GDB now uses readline 2.2. 1058 1059* set extension-language 1060 1061You can now control the mapping between filename extensions and source 1062languages by using the `set extension-language' command. For instance, 1063you can ask GDB to treat .c files as C++ by saying 1064 set extension-language .c c++ 1065The command `info extensions' lists all of the recognized extensions 1066and their associated languages. 1067 1068* Setting processor type for PowerPC and RS/6000 1069 1070When GDB is configured for a powerpc*-*-* or an rs6000*-*-* target, 1071you can use the `set processor' command to specify what variant of the 1072PowerPC family you are debugging. The command 1073 1074 set processor NAME 1075 1076sets the PowerPC/RS6000 variant to NAME. GDB knows about the 1077following PowerPC and RS6000 variants: 1078 1079 ppc-uisa PowerPC UISA - a PPC processor as viewed by user-level code 1080 rs6000 IBM RS6000 ("POWER") architecture, user-level view 1081 403 IBM PowerPC 403 1082 403GC IBM PowerPC 403GC 1083 505 Motorola PowerPC 505 1084 860 Motorola PowerPC 860 or 850 1085 601 Motorola PowerPC 601 1086 602 Motorola PowerPC 602 1087 603 Motorola/IBM PowerPC 603 or 603e 1088 604 Motorola PowerPC 604 or 604e 1089 750 Motorola/IBM PowerPC 750 or 750 1090 1091At the moment, this command just tells GDB what to name the 1092special-purpose processor registers. Since almost all the affected 1093registers are inaccessible to user-level programs, this command is 1094only useful for remote debugging in its present form. 1095 1096* HP-UX support 1097 1098Thanks to a major code donation from Hewlett-Packard, GDB now has much 1099more extensive support for HP-UX. Added features include shared 1100library support, kernel threads and hardware watchpoints for 11.00, 1101support for HP's ANSI C and C++ compilers, and a compatibility mode 1102for xdb and dbx commands. 1103 1104* Catchpoints 1105 1106HP's donation includes the new concept of catchpoints, which is a 1107generalization of the old catch command. On HP-UX, it is now possible 1108to catch exec, fork, and vfork, as well as library loading. 1109 1110This means that the existing catch command has changed; its first 1111argument now specifies the type of catch to be set up. See the 1112output of "help catch" for a list of catchpoint types. 1113 1114* Debugging across forks 1115 1116On HP-UX, you can choose which process to debug when a fork() happens 1117in the inferior. 1118 1119* TUI 1120 1121HP has donated a curses-based terminal user interface (TUI). To get 1122it, build with --enable-tui. Although this can be enabled for any 1123configuration, at present it only works for native HP debugging. 1124 1125* GDB remote protocol additions 1126 1127A new protocol packet 'X' that writes binary data is now available. 1128Default behavior is to try 'X', then drop back to 'M' if the stub 1129fails to respond. The settable variable `remotebinarydownload' 1130allows explicit control over the use of 'X'. 1131 1132For 64-bit targets, the memory packets ('M' and 'm') can now contain a 1133full 64-bit address. The command 1134 1135 set remoteaddresssize 32 1136 1137can be used to revert to the old behaviour. For existing remote stubs 1138the change should not be noticed, as the additional address information 1139will be discarded. 1140 1141In order to assist in debugging stubs, you may use the maintenance 1142command `packet' to send any text string to the stub. For instance, 1143 1144 maint packet heythere 1145 1146sends the packet "$heythere#<checksum>". Note that it is very easy to 1147disrupt a debugging session by sending the wrong packet at the wrong 1148time. 1149 1150The compare-sections command allows you to compare section data on the 1151target to what is in the executable file without uploading or 1152downloading, by comparing CRC checksums. 1153 1154* Tracing can collect general expressions 1155 1156You may now collect general expressions at tracepoints. This requires 1157further additions to the target-side stub; see tracepoint.c and 1158doc/agentexpr.texi for further details. 1159 1160* mask-address variable for Mips 1161 1162For Mips targets, you may control the zeroing of the upper 32 bits of 1163a 64-bit address by entering `set mask-address on'. This is mainly 1164of interest to users of embedded R4xxx and R5xxx processors. 1165 1166* Higher serial baud rates 1167 1168GDB's serial code now allows you to specify baud rates 57600, 115200, 1169230400, and 460800 baud. (Note that your host system may not be able 1170to achieve all of these rates.) 1171 1172* i960 simulator 1173 1174The i960 configuration now includes an initial implementation of a 1175builtin simulator, contributed by Jim Wilson. 1176 1177 1178*** Changes in GDB-4.17: 1179 1180* New native configurations 1181 1182Alpha GNU/Linux alpha*-*-linux* 1183Unixware 2.x i[3456]86-unixware2* 1184Irix 6.x mips*-sgi-irix6* 1185PowerPC GNU/Linux powerpc-*-linux* 1186PowerPC Solaris powerpcle-*-solaris* 1187Sparc GNU/Linux sparc-*-linux* 1188Motorola sysV68 R3V7.1 m68k-motorola-sysv 1189 1190* New targets 1191 1192Argonaut Risc Chip (ARC) arc-*-* 1193Hitachi H8/300S h8300*-*-* 1194Matsushita MN10200 w/simulator mn10200-*-* 1195Matsushita MN10300 w/simulator mn10300-*-* 1196MIPS NEC VR4100 mips64*vr4100*{,el}-*-elf* 1197MIPS NEC VR5000 mips64*vr5000*{,el}-*-elf* 1198MIPS Toshiba TX39 mips64*tx39*{,el}-*-elf* 1199Mitsubishi D10V w/simulator d10v-*-* 1200Mitsubishi M32R/D w/simulator m32r-*-elf* 1201Tsqware Sparclet sparclet-*-* 1202NEC V850 w/simulator v850-*-* 1203 1204* New debugging protocols 1205 1206ARM with RDI protocol arm*-*-* 1207M68K with dBUG monitor m68*-*-{aout,coff,elf} 1208DDB and LSI variants of PMON protocol mips*-*-* 1209PowerPC with DINK32 monitor powerpc{,le}-*-eabi 1210PowerPC with SDS protocol powerpc{,le}-*-eabi 1211Macraigor OCD (Wiggler) devices powerpc{,le}-*-eabi 1212 1213* DWARF 2 1214 1215All configurations can now understand and use the DWARF 2 debugging 1216format. The choice is automatic, if the symbol file contains DWARF 2 1217information. 1218 1219* Java frontend 1220 1221GDB now includes basic Java language support. This support is 1222only useful with Java compilers that produce native machine code. 1223 1224* solib-absolute-prefix and solib-search-path 1225 1226For SunOS and SVR4 shared libraries, you may now set the prefix for 1227loading absolute shared library symbol files, and the search path for 1228locating non-absolute shared library symbol files. 1229 1230* Live range splitting 1231 1232GDB can now effectively debug code for which GCC has performed live 1233range splitting as part of its optimization. See gdb/doc/LRS for 1234more details on the expected format of the stabs information. 1235 1236* Hurd support 1237 1238GDB's support for the GNU Hurd, including thread debugging, has been 1239updated to work with current versions of the Hurd. 1240 1241* ARM Thumb support 1242 1243GDB's ARM target configuration now handles the ARM7T (Thumb) 16-bit 1244instruction set. ARM GDB automatically detects when Thumb 1245instructions are in use, and adjusts disassembly and backtracing 1246accordingly. 1247 1248* MIPS16 support 1249 1250GDB's MIPS target configurations now handle the MIP16 16-bit 1251instruction set. 1252 1253* Overlay support 1254 1255GDB now includes support for overlays; if an executable has been 1256linked such that multiple sections are based at the same address, GDB 1257will decide which section to use for symbolic info. You can choose to 1258control the decision manually, using overlay commands, or implement 1259additional target-side support and use "overlay load-target" to bring 1260in the overlay mapping. Do "help overlay" for more detail. 1261 1262* info symbol 1263 1264The command "info symbol <address>" displays information about 1265the symbol at the specified address. 1266 1267* Trace support 1268 1269The standard remote protocol now includes an extension that allows 1270asynchronous collection and display of trace data. This requires 1271extensive support in the target-side debugging stub. Tracing mode 1272includes a new interaction mode in GDB and new commands: see the 1273file tracepoint.c for more details. 1274 1275* MIPS simulator 1276 1277Configurations for embedded MIPS now include a simulator contributed 1278by Cygnus Solutions. The simulator supports the instruction sets 1279of most MIPS variants. 1280 1281* Sparc simulator 1282 1283Sparc configurations may now include the ERC32 simulator contributed 1284by the European Space Agency. The simulator is not built into 1285Sparc targets by default; configure with --enable-sim to include it. 1286 1287* set architecture 1288 1289For target configurations that may include multiple variants of a 1290basic architecture (such as MIPS and SH), you may now set the 1291architecture explicitly. "set arch" sets, "info arch" lists 1292the possible architectures. 1293 1294*** Changes in GDB-4.16: 1295 1296* New native configurations 1297 1298Windows 95, x86 Windows NT i[345]86-*-cygwin32 1299M68K NetBSD m68k-*-netbsd* 1300PowerPC AIX 4.x powerpc-*-aix* 1301PowerPC MacOS powerpc-*-macos* 1302PowerPC Windows NT powerpcle-*-cygwin32 1303RS/6000 AIX 4.x rs6000-*-aix4* 1304 1305* New targets 1306 1307ARM with RDP protocol arm-*-* 1308I960 with MON960 i960-*-coff 1309MIPS VxWorks mips*-*-vxworks* 1310MIPS VR4300 with PMON mips64*vr4300{,el}-*-elf* 1311PowerPC with PPCBUG monitor powerpc{,le}-*-eabi* 1312Hitachi SH3 sh-*-* 1313Matra Sparclet sparclet-*-* 1314 1315* PowerPC simulator 1316 1317The powerpc-eabi configuration now includes the PSIM simulator, 1318contributed by Andrew Cagney, with assistance from Mike Meissner. 1319PSIM is a very elaborate model of the PowerPC, including not only 1320basic instruction set execution, but also details of execution unit 1321performance and I/O hardware. See sim/ppc/README for more details. 1322 1323* Solaris 2.5 1324 1325GDB now works with Solaris 2.5. 1326 1327* Windows 95/NT native 1328 1329GDB will now work as a native debugger on Windows 95 and Windows NT. 1330To build it from source, you must use the "gnu-win32" environment, 1331which uses a DLL to emulate enough of Unix to run the GNU tools. 1332Further information, binaries, and sources are available at 1333ftp.cygnus.com, under pub/gnu-win32. 1334 1335* dont-repeat command 1336 1337If a user-defined command includes the command `dont-repeat', then the 1338command will not be repeated if the user just types return. This is 1339useful if the command is time-consuming to run, so that accidental 1340extra keystrokes don't run the same command many times. 1341 1342* Send break instead of ^C 1343 1344The standard remote protocol now includes an option to send a break 1345rather than a ^C to the target in order to interrupt it. By default, 1346GDB will send ^C; to send a break, set the variable `remotebreak' to 1. 1347 1348* Remote protocol timeout 1349 1350The standard remote protocol includes a new variable `remotetimeout' 1351that allows you to set the number of seconds before GDB gives up trying 1352to read from the target. The default value is 2. 1353 1354* Automatic tracking of dynamic object loading (HPUX and Solaris only) 1355 1356By default GDB will automatically keep track of objects as they are 1357loaded and unloaded by the dynamic linker. By using the command `set 1358stop-on-solib-events 1' you can arrange for GDB to stop the inferior 1359when shared library events occur, thus allowing you to set breakpoints 1360in shared libraries which are explicitly loaded by the inferior. 1361 1362Note this feature does not work on hpux8. On hpux9 you must link 1363/usr/lib/end.o into your program. This feature should work 1364automatically on hpux10. 1365 1366* Irix 5.x hardware watchpoint support 1367 1368Irix 5 configurations now support the use of hardware watchpoints. 1369 1370* Mips protocol "SYN garbage limit" 1371 1372When debugging a Mips target using the `target mips' protocol, you 1373may set the number of characters that GDB will ignore by setting 1374the `syn-garbage-limit'. A value of -1 means that GDB will ignore 1375every character. The default value is 1050. 1376 1377* Recording and replaying remote debug sessions 1378 1379If you set `remotelogfile' to the name of a file, gdb will write to it 1380a recording of a remote debug session. This recording may then be 1381replayed back to gdb using "gdbreplay". See gdbserver/README for 1382details. This is useful when you have a problem with GDB while doing 1383remote debugging; you can make a recording of the session and send it 1384to someone else, who can then recreate the problem. 1385 1386* Speedups for remote debugging 1387 1388GDB includes speedups for downloading and stepping MIPS systems using 1389the IDT monitor, fast downloads to the Hitachi SH E7000 emulator, 1390and more efficient S-record downloading. 1391 1392* Memory use reductions and statistics collection 1393 1394GDB now uses less memory and reports statistics about memory usage. 1395Try the `maint print statistics' command, for example. 1396 1397*** Changes in GDB-4.15: 1398 1399* Psymtabs for XCOFF 1400 1401The symbol reader for AIX GDB now uses partial symbol tables. This 1402can greatly improve startup time, especially for large executables. 1403 1404* Remote targets use caching 1405 1406Remote targets now use a data cache to speed up communication with the 1407remote side. The data cache could lead to incorrect results because 1408it doesn't know about volatile variables, thus making it impossible to 1409debug targets which use memory mapped I/O devices. `set remotecache 1410off' turns the the data cache off. 1411 1412* Remote targets may have threads 1413 1414The standard remote protocol now includes support for multiple threads 1415in the target system, using new protocol commands 'H' and 'T'. See 1416gdb/remote.c for details. 1417 1418* NetROM support 1419 1420If GDB is configured with `--enable-netrom', then it will include 1421support for the NetROM ROM emulator from XLNT Designs. The NetROM 1422acts as though it is a bank of ROM on the target board, but you can 1423write into it over the network. GDB's support consists only of 1424support for fast loading into the emulated ROM; to debug, you must use 1425another protocol, such as standard remote protocol. The usual 1426sequence is something like 1427 1428 target nrom <netrom-hostname> 1429 load <prog> 1430 target remote <netrom-hostname>:1235 1431 1432* Macintosh host 1433 1434GDB now includes support for the Apple Macintosh, as a host only. It 1435may be run as either an MPW tool or as a standalone application, and 1436it can debug through the serial port. All the usual GDB commands are 1437available, but to the target command, you must supply "serial" as the 1438device type instead of "/dev/ttyXX". See mpw-README in the main 1439directory for more information on how to build. The MPW configuration 1440scripts */mpw-config.in support only a few targets, and only the 1441mips-idt-ecoff target has been tested. 1442 1443* Autoconf 1444 1445GDB configuration now uses autoconf. This is not user-visible, 1446but does simplify configuration and building. 1447 1448* hpux10 1449 1450GDB now supports hpux10. 1451 1452*** Changes in GDB-4.14: 1453 1454* New native configurations 1455 1456x86 FreeBSD i[345]86-*-freebsd 1457x86 NetBSD i[345]86-*-netbsd 1458NS32k NetBSD ns32k-*-netbsd 1459Sparc NetBSD sparc-*-netbsd 1460 1461* New targets 1462 1463A29K VxWorks a29k-*-vxworks 1464HP PA PRO embedded (WinBond W89K & Oki OP50N) hppa*-*-pro* 1465CPU32 EST-300 emulator m68*-*-est* 1466PowerPC ELF powerpc-*-elf 1467WDC 65816 w65-*-* 1468 1469* Alpha OSF/1 support for procfs 1470 1471GDB now supports procfs under OSF/1-2.x and higher, which makes it 1472possible to attach to running processes. As the mounting of the /proc 1473filesystem is optional on the Alpha, GDB automatically determines 1474the availability of /proc during startup. This can lead to problems 1475if /proc is unmounted after GDB has been started. 1476 1477* Arguments to user-defined commands 1478 1479User commands may accept up to 10 arguments separated by whitespace. 1480Arguments are accessed within the user command via $arg0..$arg9. A 1481trivial example: 1482define adder 1483 print $arg0 + $arg1 + $arg2 1484 1485To execute the command use: 1486adder 1 2 3 1487 1488Defines the command "adder" which prints the sum of its three arguments. 1489Note the arguments are text substitutions, so they may reference variables, 1490use complex expressions, or even perform inferior function calls. 1491 1492* New `if' and `while' commands 1493 1494This makes it possible to write more sophisticated user-defined 1495commands. Both commands take a single argument, which is the 1496expression to evaluate, and must be followed by the commands to 1497execute, one per line, if the expression is nonzero, the list being 1498terminated by the word `end'. The `if' command list may include an 1499`else' word, which causes the following commands to be executed only 1500if the expression is zero. 1501 1502* Fortran source language mode 1503 1504GDB now includes partial support for Fortran 77. It will recognize 1505Fortran programs and can evaluate a subset of Fortran expressions, but 1506variables and functions may not be handled correctly. GDB will work 1507with G77, but does not yet know much about symbols emitted by other 1508Fortran compilers. 1509 1510* Better HPUX support 1511 1512Most debugging facilities now work on dynamic executables for HPPAs 1513running hpux9 or later. You can attach to running dynamically linked 1514processes, but by default the dynamic libraries will be read-only, so 1515for instance you won't be able to put breakpoints in them. To change 1516that behavior do the following before running the program: 1517 1518 adb -w a.out 1519 __dld_flags?W 0x5 1520 control-d 1521 1522This will cause the libraries to be mapped private and read-write. 1523To revert to the normal behavior, do this: 1524 1525 adb -w a.out 1526 __dld_flags?W 0x4 1527 control-d 1528 1529You cannot set breakpoints or examine data in the library until after 1530the library is loaded if the function/data symbols do not have 1531external linkage. 1532 1533GDB can now also read debug symbols produced by the HP C compiler on 1534HPPAs (sorry, no C++, Fortran or 68k support). 1535 1536* Target byte order now dynamically selectable 1537 1538You can choose which byte order to use with a target system, via the 1539commands "set endian big" and "set endian little", and you can see the 1540current setting by using "show endian". You can also give the command 1541"set endian auto", in which case GDB will use the byte order 1542associated with the executable. Currently, only embedded MIPS 1543configurations support dynamic selection of target byte order. 1544 1545* New DOS host serial code 1546 1547This version uses DPMI interrupts to handle buffered I/O, so you 1548no longer need to run asynctsr when debugging boards connected to 1549a PC's serial port. 1550 1551*** Changes in GDB-4.13: 1552 1553* New "complete" command 1554 1555This lists all the possible completions for the rest of the line, if it 1556were to be given as a command itself. This is intended for use by emacs. 1557 1558* Trailing space optional in prompt 1559 1560"set prompt" no longer adds a space for you after the prompt you set. This 1561allows you to set a prompt which ends in a space or one that does not. 1562 1563* Breakpoint hit counts 1564 1565"info break" now displays a count of the number of times the breakpoint 1566has been hit. This is especially useful in conjunction with "ignore"; you 1567can ignore a large number of breakpoint hits, look at the breakpoint info 1568to see how many times the breakpoint was hit, then run again, ignoring one 1569less than that number, and this will get you quickly to the last hit of 1570that breakpoint. 1571 1572* Ability to stop printing at NULL character 1573 1574"set print null-stop" will cause GDB to stop printing the characters of 1575an array when the first NULL is encountered. This is useful when large 1576arrays actually contain only short strings. 1577 1578* Shared library breakpoints 1579 1580In SunOS 4.x, SVR4, and Alpha OSF/1 configurations, you can now set 1581breakpoints in shared libraries before the executable is run. 1582 1583* Hardware watchpoints 1584 1585There is a new hardware breakpoint for the watch command for sparclite 1586targets. See gdb/sparclite/hw_breakpoint.note. 1587 1588Hardware watchpoints are also now supported under GNU/Linux. 1589 1590* Annotations 1591 1592Annotations have been added. These are for use with graphical interfaces, 1593and are still experimental. Currently only gdba.el uses these. 1594 1595* Improved Irix 5 support 1596 1597GDB now works properly with Irix 5.2. 1598 1599* Improved HPPA support 1600 1601GDB now works properly with the latest GCC and GAS. 1602 1603* New native configurations 1604 1605Sequent PTX4 i[34]86-sequent-ptx4 1606HPPA running OSF/1 hppa*-*-osf* 1607Atari TT running SVR4 m68*-*-sysv4* 1608RS/6000 LynxOS rs6000-*-lynxos* 1609 1610* New targets 1611 1612OS/9000 i[34]86-*-os9k 1613MIPS R4000 mips64*{,el}-*-{ecoff,elf} 1614Sparc64 sparc64-*-* 1615 1616* Hitachi SH7000 and E7000-PC ICE support 1617 1618There is now support for communicating with the Hitachi E7000-PC ICE. 1619This is available automatically when GDB is configured for the SH. 1620 1621* Fixes 1622 1623As usual, a variety of small fixes and improvements, both generic 1624and configuration-specific. See the ChangeLog for more detail. 1625 1626*** Changes in GDB-4.12: 1627 1628* Irix 5 is now supported 1629 1630* HPPA support 1631 1632GDB-4.12 on the HPPA has a number of changes which make it unable 1633to debug the output from the currently released versions of GCC and 1634GAS (GCC 2.5.8 and GAS-2.2 or PAGAS-1.36). Until the next major release 1635of GCC and GAS, versions of these tools designed to work with GDB-4.12 1636can be retrieved via anonymous ftp from jaguar.cs.utah.edu:/dist. 1637 1638 1639*** Changes in GDB-4.11: 1640 1641* User visible changes: 1642 1643* Remote Debugging 1644 1645The "set remotedebug" option is now consistent between the mips remote 1646target, remote targets using the gdb-specific protocol, UDI (AMD's 1647debug protocol for the 29k) and the 88k bug monitor. It is now an 1648integer specifying a debug level (normally 0 or 1, but 2 means more 1649debugging info for the mips target). 1650 1651* DEC Alpha native support 1652 1653GDB now works on the DEC Alpha. GCC 2.4.5 does not produce usable 1654debug info, but GDB works fairly well with the DEC compiler and should 1655work with a future GCC release. See the README file for a few 1656Alpha-specific notes. 1657 1658* Preliminary thread implementation 1659 1660GDB now has preliminary thread support for both SGI/Irix and LynxOS. 1661 1662* LynxOS native and target support for 386 1663 1664This release has been hosted on LynxOS 2.2, and also can be configured 1665to remotely debug programs running under LynxOS (see gdb/gdbserver/README 1666for details). 1667 1668* Improvements in C++ mangling/demangling. 1669 1670This release has much better g++ debugging, specifically in name 1671mangling/demangling, virtual function calls, print virtual table, 1672call methods, ...etc. 1673 1674*** Changes in GDB-4.10: 1675 1676 * User visible changes: 1677 1678Remote debugging using the GDB-specific (`target remote') protocol now 1679supports the `load' command. This is only useful if you have some 1680other way of getting the stub to the target system, and you can put it 1681somewhere in memory where it won't get clobbered by the download. 1682 1683Filename completion now works. 1684 1685When run under emacs mode, the "info line" command now causes the 1686arrow to point to the line specified. Also, "info line" prints 1687addresses in symbolic form (as well as hex). 1688 1689All vxworks based targets now support a user settable option, called 1690vxworks-timeout. This option represents the number of seconds gdb 1691should wait for responses to rpc's. You might want to use this if 1692your vxworks target is, perhaps, a slow software simulator or happens 1693to be on the far side of a thin network line. 1694 1695 * DEC alpha support 1696 1697This release contains support for using a DEC alpha as a GDB host for 1698cross debugging. Native alpha debugging is not supported yet. 1699 1700 1701*** Changes in GDB-4.9: 1702 1703 * Testsuite 1704 1705This is the first GDB release which is accompanied by a matching testsuite. 1706The testsuite requires installation of dejagnu, which should be available 1707via ftp from most sites that carry GNU software. 1708 1709 * C++ demangling 1710 1711'Cfront' style demangling has had its name changed to 'ARM' style, to 1712emphasize that it was written from the specifications in the C++ Annotated 1713Reference Manual, not necessarily to be compatible with AT&T cfront. Despite 1714disclaimers, it still generated too much confusion with users attempting to 1715use gdb with AT&T cfront. 1716 1717 * Simulators 1718 1719GDB now uses a standard remote interface to a simulator library. 1720So far, the library contains simulators for the Zilog Z8001/2, the 1721Hitachi H8/300, H8/500 and Super-H. 1722 1723 * New targets supported 1724 1725H8/300 simulator h8300-hitachi-hms or h8300hms 1726H8/500 simulator h8500-hitachi-hms or h8500hms 1727SH simulator sh-hitachi-hms or sh 1728Z8000 simulator z8k-zilog-none or z8ksim 1729IDT MIPS board over serial line mips-idt-ecoff 1730 1731Cross-debugging to GO32 targets is supported. It requires a custom 1732version of the i386-stub.c module which is integrated with the 1733GO32 memory extender. 1734 1735 * New remote protocols 1736 1737MIPS remote debugging protocol. 1738 1739 * New source languages supported 1740 1741This version includes preliminary support for Chill, a Pascal like language 1742used by telecommunications companies. Chill support is also being integrated 1743into the GNU compiler, but we don't know when it will be publically available. 1744 1745 1746*** Changes in GDB-4.8: 1747 1748 * HP Precision Architecture supported 1749 1750GDB now supports HP PA-RISC machines running HPUX. A preliminary 1751version of this support was available as a set of patches from the 1752University of Utah. GDB does not support debugging of programs 1753compiled with the HP compiler, because HP will not document their file 1754format. Instead, you must use GCC (version 2.3.2 or later) and PA-GAS 1755(as available from jaguar.cs.utah.edu:/dist/pa-gas.u4.tar.Z). 1756 1757Many problems in the preliminary version have been fixed. 1758 1759 * Faster and better demangling 1760 1761We have improved template demangling and fixed numerous bugs in the GNU style 1762demangler. It can now handle type modifiers such as `static' or `const'. Wide 1763character types (wchar_t) are now supported. Demangling of each symbol is now 1764only done once, and is cached when the symbol table for a file is read in. 1765This results in a small increase in memory usage for C programs, a moderate 1766increase in memory usage for C++ programs, and a fantastic speedup in 1767symbol lookups. 1768 1769`Cfront' style demangling still doesn't work with AT&T cfront. It was written 1770from the specifications in the Annotated Reference Manual, which AT&T's 1771compiler does not actually implement. 1772 1773 * G++ multiple inheritance compiler problem 1774 1775In the 2.3.2 release of gcc/g++, how the compiler resolves multiple 1776inheritance lattices was reworked to properly discover ambiguities. We 1777recently found an example which causes this new algorithm to fail in a 1778very subtle way, producing bad debug information for those classes. 1779The file 'gcc.patch' (in this directory) can be applied to gcc to 1780circumvent the problem. A future GCC release will contain a complete 1781fix. 1782 1783The previous G++ debug info problem (mentioned below for the gdb-4.7 1784release) is fixed in gcc version 2.3.2. 1785 1786 * Improved configure script 1787 1788The `configure' script will now attempt to guess your system type if 1789you don't supply a host system type. The old scheme of supplying a 1790host system triplet is preferable over using this. All the magic is 1791done in the new `config.guess' script. Examine it for details. 1792 1793We have also brought our configure script much more in line with the FSF's 1794version. It now supports the --with-xxx options. In particular, 1795`--with-minimal-bfd' can be used to make the GDB binary image smaller. 1796The resulting GDB will not be able to read arbitrary object file formats -- 1797only the format ``expected'' to be used on the configured target system. 1798We hope to make this the default in a future release. 1799 1800 * Documentation improvements 1801 1802There's new internal documentation on how to modify GDB, and how to 1803produce clean changes to the code. We implore people to read it 1804before submitting changes. 1805 1806The GDB manual uses new, sexy Texinfo conditionals, rather than arcane 1807M4 macros. The new texinfo.tex is provided in this release. Pre-built 1808`info' files are also provided. To build `info' files from scratch, 1809you will need the latest `makeinfo' release, which will be available in 1810a future texinfo-X.Y release. 1811 1812*NOTE* The new texinfo.tex can cause old versions of TeX to hang. 1813We're not sure exactly which versions have this problem, but it has 1814been seen in 3.0. We highly recommend upgrading to TeX version 3.141 1815or better. If that isn't possible, there is a patch in 1816`texinfo/tex3patch' that will modify `texinfo/texinfo.tex' to work 1817around this problem. 1818 1819 * New features 1820 1821GDB now supports array constants that can be used in expressions typed in by 1822the user. The syntax is `{element, element, ...}'. Ie: you can now type 1823`print {1, 2, 3}', and it will build up an array in memory malloc'd in 1824the target program. 1825 1826The new directory `gdb/sparclite' contains a program that demonstrates 1827how the sparc-stub.c remote stub runs on a Fujitsu SPARClite processor. 1828 1829 * New native hosts supported 1830 1831HP/PA-RISC under HPUX using GNU tools hppa1.1-hp-hpux 1832386 CPUs running SCO Unix 3.2v4 i386-unknown-sco3.2v4 1833 1834 * New targets supported 1835 1836AMD 29k family via UDI a29k-amd-udi or udi29k 1837 1838 * New file formats supported 1839 1840BFD now supports reading HP/PA-RISC executables (SOM file format?), 1841HPUX core files, and SCO 3.2v2 core files. 1842 1843 * Major bug fixes 1844 1845Attaching to processes now works again; thanks for the many bug reports. 1846 1847We have also stomped on a bunch of core dumps caused by 1848printf_filtered("%s") problems. 1849 1850We eliminated a copyright problem on the rpc and ptrace header files 1851for VxWorks, which was discovered at the last minute during the 4.7 1852release. You should now be able to build a VxWorks GDB. 1853 1854You can now interrupt gdb while an attached process is running. This 1855will cause the attached process to stop, and give control back to GDB. 1856 1857We fixed problems caused by using too many file descriptors 1858for reading symbols from object files and libraries. This was 1859especially a problem for programs that used many (~100) shared 1860libraries. 1861 1862The `step' command now only enters a subroutine if there is line number 1863information for the subroutine. Otherwise it acts like the `next' 1864command. Previously, `step' would enter subroutines if there was 1865any debugging information about the routine. This avoids problems 1866when using `cc -g1' on MIPS machines. 1867 1868 * Internal improvements 1869 1870GDB's internal interfaces have been improved to make it easier to support 1871debugging of multiple languages in the future. 1872 1873GDB now uses a common structure for symbol information internally. 1874Minimal symbols (derived from linkage symbols in object files), partial 1875symbols (from a quick scan of debug information), and full symbols 1876contain a common subset of information, making it easier to write 1877shared code that handles any of them. 1878 1879 * New command line options 1880 1881We now accept --silent as an alias for --quiet. 1882 1883 * Mmalloc licensing 1884 1885The memory-mapped-malloc library is now licensed under the GNU Library 1886General Public License. 1887 1888*** Changes in GDB-4.7: 1889 1890 * Host/native/target split 1891 1892GDB has had some major internal surgery to untangle the support for 1893hosts and remote targets. Now, when you configure GDB for a remote 1894target, it will no longer load in all of the support for debugging 1895local programs on the host. When fully completed and tested, this will 1896ensure that arbitrary host/target combinations are possible. 1897 1898The primary conceptual shift is to separate the non-portable code in 1899GDB into three categories. Host specific code is required any time GDB 1900is compiled on that host, regardless of the target. Target specific 1901code relates to the peculiarities of the target, but can be compiled on 1902any host. Native specific code is everything else: it can only be 1903built when the host and target are the same system. Child process 1904handling and core file support are two common `native' examples. 1905 1906GDB's use of /proc for controlling Unix child processes is now cleaner. 1907It has been split out into a single module under the `target_ops' vector, 1908plus two native-dependent functions for each system that uses /proc. 1909 1910 * New hosts supported 1911 1912HP/Apollo 68k (under the BSD domain) m68k-apollo-bsd or apollo68bsd 1913386 CPUs running various BSD ports i386-unknown-bsd or 386bsd 1914386 CPUs running SCO Unix i386-unknown-scosysv322 or i386sco 1915 1916 * New targets supported 1917 1918Fujitsu SPARClite sparclite-fujitsu-none or sparclite 191968030 and CPU32 m68030-*-*, m68332-*-* 1920 1921 * New native hosts supported 1922 1923386 CPUs running various BSD ports i386-unknown-bsd or 386bsd 1924 (386bsd is not well tested yet) 1925386 CPUs running SCO Unix i386-unknown-scosysv322 or sco 1926 1927 * New file formats supported 1928 1929BFD now supports COFF files for the Zilog Z8000 microprocessor. It 1930supports reading of `a.out.adobe' object files, which are an a.out 1931format extended with minimal information about multiple sections. 1932 1933 * New commands 1934 1935`show copying' is the same as the old `info copying'. 1936`show warranty' is the same as `info warrantee'. 1937These were renamed for consistency. The old commands continue to work. 1938 1939`info handle' is a new alias for `info signals'. 1940 1941You can now define pre-command hooks, which attach arbitrary command 1942scripts to any command. The commands in the hook will be executed 1943prior to the user's command. You can also create a hook which will be 1944executed whenever the program stops. See gdb.texinfo. 1945 1946 * C++ improvements 1947 1948We now deal with Cfront style name mangling, and can even extract type 1949info from mangled symbols. GDB can automatically figure out which 1950symbol mangling style your C++ compiler uses. 1951 1952Calling of methods and virtual functions has been improved as well. 1953 1954 * Major bug fixes 1955 1956The crash that occured when debugging Sun Ansi-C compiled binaries is 1957fixed. This was due to mishandling of the extra N_SO stabs output 1958by the compiler. 1959 1960We also finally got Ultrix 4.2 running in house, and fixed core file 1961support, with help from a dozen people on the net. 1962 1963John M. Farrell discovered that the reason that single-stepping was so 1964slow on all of the Mips based platforms (primarily SGI and DEC) was 1965that we were trying to demangle and lookup a symbol used for internal 1966purposes on every instruction that was being stepped through. Changing 1967the name of that symbol so that it couldn't be mistaken for a C++ 1968mangled symbol sped things up a great deal. 1969 1970Rich Pixley sped up symbol lookups in general by getting much smarter 1971about when C++ symbol mangling is necessary. This should make symbol 1972completion (TAB on the command line) much faster. It's not as fast as 1973we'd like, but it's significantly faster than gdb-4.6. 1974 1975 * AMD 29k support 1976 1977A new user controllable variable 'call_scratch_address' can 1978specify the location of a scratch area to be used when GDB 1979calls a function in the target. This is necessary because the 1980usual method of putting the scratch area on the stack does not work 1981in systems that have separate instruction and data spaces. 1982 1983We integrated changes to support the 29k UDI (Universal Debugger 1984Interface), but discovered at the last minute that we didn't have all 1985of the appropriate copyright paperwork. We are working with AMD to 1986resolve this, and hope to have it available soon. 1987 1988 * Remote interfaces 1989 1990We have sped up the remote serial line protocol, especially for targets 1991with lots of registers. It now supports a new `expedited status' ('T') 1992message which can be used in place of the existing 'S' status message. 1993This allows the remote stub to send only the registers that GDB 1994needs to make a quick decision about single-stepping or conditional 1995breakpoints, eliminating the need to fetch the entire register set for 1996each instruction being stepped through. 1997 1998The GDB remote serial protocol now implements a write-through cache for 1999registers, only re-reading the registers if the target has run. 2000 2001There is also a new remote serial stub for SPARC processors. You can 2002find it in gdb-4.7/gdb/sparc-stub.c. This was written to support the 2003Fujitsu SPARClite processor, but will run on any stand-alone SPARC 2004processor with a serial port. 2005 2006 * Configuration 2007 2008Configure.in files have become much easier to read and modify. A new 2009`table driven' format makes it more obvious what configurations are 2010supported, and what files each one uses. 2011 2012 * Library changes 2013 2014There is a new opcodes library which will eventually contain all of the 2015disassembly routines and opcode tables. At present, it only contains 2016Sparc and Z8000 routines. This will allow the assembler, debugger, and 2017disassembler (binutils/objdump) to share these routines. 2018 2019The libiberty library is now copylefted under the GNU Library General 2020Public License. This allows more liberal use, and was done so libg++ 2021can use it. This makes no difference to GDB, since the Library License 2022grants all the rights from the General Public License. 2023 2024 * Documentation 2025 2026The file gdb-4.7/gdb/doc/stabs.texinfo is a (relatively) complete 2027reference to the stabs symbol info used by the debugger. It is (as far 2028as we know) the only published document on this fascinating topic. We 2029encourage you to read it, compare it to the stabs information on your 2030system, and send improvements on the document in general (to 2031bug-gdb@prep.ai.mit.edu). 2032 2033And, of course, many bugs have been fixed. 2034 2035 2036*** Changes in GDB-4.6: 2037 2038 * Better support for C++ function names 2039 2040GDB now accepts as input the "demangled form" of C++ overloaded function 2041names and member function names, and can do command completion on such names 2042(using TAB, TAB-TAB, and ESC-?). The names have to be quoted with a pair of 2043single quotes. Examples are 'func (int, long)' and 'obj::operator==(obj&)'. 2044Make use of command completion, it is your friend. 2045 2046GDB also now accepts a variety of C++ mangled symbol formats. They are 2047the GNU g++ style, the Cfront (ARM) style, and the Lucid (lcc) style. 2048You can tell GDB which format to use by doing a 'set demangle-style {gnu, 2049lucid, cfront, auto}'. 'gnu' is the default. Do a 'set demangle-style foo' 2050for the list of formats. 2051 2052 * G++ symbol mangling problem 2053 2054Recent versions of gcc have a bug in how they emit debugging information for 2055C++ methods (when using dbx-style stabs). The file 'gcc.patch' (in this 2056directory) can be applied to gcc to fix the problem. Alternatively, if you 2057can't fix gcc, you can #define GCC_MANGLE_BUG when compling gdb/symtab.c. The 2058usual symptom is difficulty with setting breakpoints on methods. GDB complains 2059about the method being non-existent. (We believe that version 2.2.2 of GCC has 2060this problem.) 2061 2062 * New 'maintenance' command 2063 2064All of the commands related to hacking GDB internals have been moved out of 2065the main command set, and now live behind the 'maintenance' command. This 2066can also be abbreviated as 'mt'. The following changes were made: 2067 2068 dump-me -> maintenance dump-me 2069 info all-breakpoints -> maintenance info breakpoints 2070 printmsyms -> maintenance print msyms 2071 printobjfiles -> maintenance print objfiles 2072 printpsyms -> maintenance print psymbols 2073 printsyms -> maintenance print symbols 2074 2075The following commands are new: 2076 2077 maintenance demangle Call internal GDB demangler routine to 2078 demangle a C++ link name and prints the result. 2079 maintenance print type Print a type chain for a given symbol 2080 2081 * Change to .gdbinit file processing 2082 2083We now read the $HOME/.gdbinit file before processing the argv arguments 2084(e.g. reading symbol files or core files). This allows global parameters to 2085be set, which will apply during the symbol reading. The ./.gdbinit is still 2086read after argv processing. 2087 2088 * New hosts supported 2089 2090Solaris-2.0 !!! sparc-sun-solaris2 or sun4sol2 2091 2092GNU/Linux support i386-unknown-linux or linux 2093 2094We are also including code to support the HP/PA running BSD and HPUX. This 2095is almost guaranteed not to work, as we didn't have time to test or build it 2096for this release. We are including it so that the more adventurous (or 2097masochistic) of you can play with it. We also had major problems with the 2098fact that the compiler that we got from HP doesn't support the -g option. 2099It costs extra. 2100 2101 * New targets supported 2102 2103Hitachi H8/300 h8300-hitachi-hms or h8300hms 2104 2105 * More smarts about finding #include files 2106 2107GDB now remembers the compilation directory for all include files, and for 2108all files from which C is generated (like yacc and lex sources). This 2109greatly improves GDB's ability to find yacc/lex sources, and include files, 2110especially if you are debugging your program from a directory different from 2111the one that contains your sources. 2112 2113We also fixed a bug which caused difficulty with listing and setting 2114breakpoints in include files which contain C code. (In the past, you had to 2115try twice in order to list an include file that you hadn't looked at before.) 2116 2117 * Interesting infernals change 2118 2119GDB now deals with arbitrary numbers of sections, where the symbols for each 2120section must be relocated relative to that section's landing place in the 2121target's address space. This work was needed to support ELF with embedded 2122stabs used by Solaris-2.0. 2123 2124 * Bug fixes (of course!) 2125 2126There have been loads of fixes for the following things: 2127 mips, rs6000, 29k/udi, m68k, g++, type handling, elf/dwarf, m88k, 2128 i960, stabs, DOS(GO32), procfs, etc... 2129 2130See the ChangeLog for details. 2131 2132*** Changes in GDB-4.5: 2133 2134 * New machines supported (host and target) 2135 2136IBM RS6000 running AIX rs6000-ibm-aix or rs6000 2137 2138SGI Irix-4.x mips-sgi-irix4 or iris4 2139 2140 * New malloc package 2141 2142GDB now uses a new memory manager called mmalloc, based on gmalloc. 2143Mmalloc is capable of handling mutiple heaps of memory. It is also 2144capable of saving a heap to a file, and then mapping it back in later. 2145This can be used to greatly speedup the startup of GDB by using a 2146pre-parsed symbol table which lives in a mmalloc managed heap. For 2147more details, please read mmalloc/mmalloc.texi. 2148 2149 * info proc 2150 2151The 'info proc' command (SVR4 only) has been enhanced quite a bit. See 2152'help info proc' for details. 2153 2154 * MIPS ecoff symbol table format 2155 2156The code that reads MIPS symbol table format is now supported on all hosts. 2157Thanks to MIPS for releasing the sym.h and symconst.h files to make this 2158possible. 2159 2160 * File name changes for MS-DOS 2161 2162Many files in the config directories have been renamed to make it easier to 2163support GDB on MS-DOSe systems (which have very restrictive file name 2164conventions :-( ). MS-DOSe host support (under DJ Delorie's GO32 2165environment) is close to working but has some remaining problems. Note 2166that debugging of DOS programs is not supported, due to limitations 2167in the ``operating system'', but it can be used to host cross-debugging. 2168 2169 * Cross byte order fixes 2170 2171Many fixes have been made to support cross debugging of Sparc and MIPS 2172targets from hosts whose byte order differs. 2173 2174 * New -mapped and -readnow options 2175 2176If memory-mapped files are available on your system through the 'mmap' 2177system call, you can use the -mapped option on the `file' or 2178`symbol-file' commands to cause GDB to write the symbols from your 2179program into a reusable file. If the program you are debugging is 2180called `/path/fred', the mapped symbol file will be `./fred.syms'. 2181Future GDB debugging sessions will notice the presence of this file, 2182and will quickly map in symbol information from it, rather than reading 2183the symbol table from the executable program. Using the '-mapped' 2184option in a GDB `file' or `symbol-file' command has the same effect as 2185starting GDB with the '-mapped' command-line option. 2186 2187You can cause GDB to read the entire symbol table immediately by using 2188the '-readnow' option with any of the commands that load symbol table 2189information (or on the GDB command line). This makes the command 2190slower, but makes future operations faster. 2191 2192The -mapped and -readnow options are typically combined in order to 2193build a `fred.syms' file that contains complete symbol information. 2194A simple GDB invocation to do nothing but build a `.syms' file for future 2195use is: 2196 2197 gdb -batch -nx -mapped -readnow programname 2198 2199The `.syms' file is specific to the host machine on which GDB is run. 2200It holds an exact image of GDB's internal symbol table. It cannot be 2201shared across multiple host platforms. 2202 2203 * longjmp() handling 2204 2205GDB is now capable of stepping and nexting over longjmp(), _longjmp(), and 2206siglongjmp() without losing control. This feature has not yet been ported to 2207all systems. It currently works on many 386 platforms, all MIPS-based 2208platforms (SGI, DECstation, etc), and Sun3/4. 2209 2210 * Solaris 2.0 2211 2212Preliminary work has been put in to support the new Solaris OS from Sun. At 2213this time, it can control and debug processes, but it is not capable of 2214reading symbols. 2215 2216 * Bug fixes 2217 2218As always, many many bug fixes. The major areas were with g++, and mipsread. 2219People using the MIPS-based platforms should experience fewer mysterious 2220crashes and trashed symbol tables. 2221 2222*** Changes in GDB-4.4: 2223 2224 * New machines supported (host and target) 2225 2226SCO Unix on i386 IBM PC clones i386-sco-sysv or i386sco 2227 (except core files) 2228BSD Reno on Vax vax-dec-bsd 2229Ultrix on Vax vax-dec-ultrix 2230 2231 * New machines supported (target) 2232 2233AMD 29000 embedded, using EBMON a29k-none-none 2234 2235 * C++ support 2236 2237GDB continues to improve its handling of C++. `References' work better. 2238The demangler has also been improved, and now deals with symbols mangled as 2239per the Annotated C++ Reference Guide. 2240 2241GDB also now handles `stabs' symbol information embedded in MIPS 2242`ecoff' symbol tables. Since the ecoff format was not easily 2243extensible to handle new languages such as C++, this appeared to be a 2244good way to put C++ debugging info into MIPS binaries. This option 2245will be supported in the GNU C compiler, version 2, when it is 2246released. 2247 2248 * New features for SVR4 2249 2250GDB now handles SVR4 shared libraries, in the same fashion as SunOS 2251shared libraries. Debugging dynamically linked programs should present 2252only minor differences from debugging statically linked programs. 2253 2254The `info proc' command will print out information about any process 2255on an SVR4 system (including the one you are debugging). At the moment, 2256it prints the address mappings of the process. 2257 2258If you bring up GDB on another SVR4 system, please send mail to 2259bug-gdb@prep.ai.mit.edu to let us know what changes were reqired (if any). 2260 2261 * Better dynamic linking support in SunOS 2262 2263Reading symbols from shared libraries which contain debugging symbols 2264now works properly. However, there remain issues such as automatic 2265skipping of `transfer vector' code during function calls, which 2266make it harder to debug code in a shared library, than to debug the 2267same code linked statically. 2268 2269 * New Getopt 2270 2271GDB is now using the latest `getopt' routines from the FSF. This 2272version accepts the -- prefix for options with long names. GDB will 2273continue to accept the old forms (-option and +option) as well. 2274Various single letter abbreviations for options have been explicity 2275added to the option table so that they won't get overshadowed in the 2276future by other options that begin with the same letter. 2277 2278 * Bugs fixed 2279 2280The `cleanup_undefined_types' bug that many of you noticed has been squashed. 2281Many assorted bugs have been handled. Many more remain to be handled. 2282See the various ChangeLog files (primarily in gdb and bfd) for details. 2283 2284 2285*** Changes in GDB-4.3: 2286 2287 * New machines supported (host and target) 2288 2289Amiga 3000 running Amix m68k-cbm-svr4 or amix 2290NCR 3000 386 running SVR4 i386-ncr-svr4 or ncr3000 2291Motorola Delta 88000 running Sys V m88k-motorola-sysv or delta88 2292 2293 * Almost SCO Unix support 2294 2295We had hoped to support: 2296SCO Unix on i386 IBM PC clones i386-sco-sysv or i386sco 2297(except for core file support), but we discovered very late in the release 2298that it has problems with process groups that render gdb unusable. Sorry 2299about that. I encourage people to fix it and post the fixes. 2300 2301 * Preliminary ELF and DWARF support 2302 2303GDB can read ELF object files on System V Release 4, and can handle 2304debugging records for C, in DWARF format, in ELF files. This support 2305is preliminary. If you bring up GDB on another SVR4 system, please 2306send mail to bug-gdb@prep.ai.mit.edu to let us know what changes were 2307reqired (if any). 2308 2309 * New Readline 2310 2311GDB now uses the latest `readline' library. One user-visible change 2312is that two tabs will list possible command completions, which previously 2313required typing M-? (meta-question mark, or ESC ?). 2314 2315 * Bugs fixed 2316 2317The `stepi' bug that many of you noticed has been squashed. 2318Many bugs in C++ have been handled. Many more remain to be handled. 2319See the various ChangeLog files (primarily in gdb and bfd) for details. 2320 2321 * State of the MIPS world (in case you wondered): 2322 2323GDB can understand the symbol tables emitted by the compilers 2324supplied by most vendors of MIPS-based machines, including DEC. These 2325symbol tables are in a format that essentially nobody else uses. 2326 2327Some versions of gcc come with an assembler post-processor called 2328mips-tfile. This program is required if you want to do source-level 2329debugging of gcc-compiled programs. I believe FSF does not ship 2330mips-tfile with gcc version 1, but it will eventually come with gcc 2331version 2. 2332 2333Debugging of g++ output remains a problem. g++ version 1.xx does not 2334really support it at all. (If you're lucky, you should be able to get 2335line numbers and stack traces to work, but no parameters or local 2336variables.) With some work it should be possible to improve the 2337situation somewhat. 2338 2339When gcc version 2 is released, you will have somewhat better luck. 2340However, even then you will get confusing results for inheritance and 2341methods. 2342 2343We will eventually provide full debugging of g++ output on 2344DECstations. This will probably involve some kind of stabs-in-ecoff 2345encapulation, but the details have not been worked out yet. 2346 2347 2348*** Changes in GDB-4.2: 2349 2350 * Improved configuration 2351 2352Only one copy of `configure' exists now, and it is not self-modifying. 2353Porting BFD is simpler. 2354 2355 * Stepping improved 2356 2357The `step' and `next' commands now only stop at the first instruction 2358of a source line. This prevents the multiple stops that used to occur 2359in switch statements, for-loops, etc. `Step' continues to stop if a 2360function that has debugging information is called within the line. 2361 2362 * Bug fixing 2363 2364Lots of small bugs fixed. More remain. 2365 2366 * New host supported (not target) 2367 2368Intel 386 PC clone running Mach i386-none-mach 2369 2370 2371*** Changes in GDB-4.1: 2372 2373 * Multiple source language support 2374 2375GDB now has internal scaffolding to handle several source languages. 2376It determines the type of each source file from its filename extension, 2377and will switch expression parsing and number formatting to match the 2378language of the function in the currently selected stack frame. 2379You can also specifically set the language to be used, with 2380`set language c' or `set language modula-2'. 2381 2382 * GDB and Modula-2 2383 2384GDB now has preliminary support for the GNU Modula-2 compiler, 2385currently under development at the State University of New York at 2386Buffalo. Development of both GDB and the GNU Modula-2 compiler will 2387continue through the fall of 1991 and into 1992. 2388 2389Other Modula-2 compilers are currently not supported, and attempting to 2390debug programs compiled with them will likely result in an error as the 2391symbol table is read. Feel free to work on it, though! 2392 2393There are hooks in GDB for strict type checking and range checking, 2394in the `Modula-2 philosophy', but they do not currently work. 2395 2396 * set write on/off 2397 2398GDB can now write to executable and core files (e.g. patch 2399a variable's value). You must turn this switch on, specify 2400the file ("exec foo" or "core foo"), *then* modify it, e.g. 2401by assigning a new value to a variable. Modifications take 2402effect immediately. 2403 2404 * Automatic SunOS shared library reading 2405 2406When you run your program, GDB automatically determines where its 2407shared libraries (if any) have been loaded, and reads their symbols. 2408The `share' command is no longer needed. This also works when 2409examining core files. 2410 2411 * set listsize 2412 2413You can specify the number of lines that the `list' command shows. 2414The default is 10. 2415 2416 * New machines supported (host and target) 2417 2418SGI Iris (MIPS) running Irix V3: mips-sgi-irix or iris 2419Sony NEWS (68K) running NEWSOS 3.x: m68k-sony-sysv or news 2420Ultracomputer (29K) running Sym1: a29k-nyu-sym1 or ultra3 2421 2422 * New hosts supported (not targets) 2423 2424IBM RT/PC: romp-ibm-aix or rtpc 2425 2426 * New targets supported (not hosts) 2427 2428AMD 29000 embedded with COFF a29k-none-coff 2429AMD 29000 embedded with a.out a29k-none-aout 2430Ultracomputer remote kernel debug a29k-nyu-kern 2431 2432 * New remote interfaces 2433 2434AMD 29000 Adapt 2435AMD 29000 Minimon 2436 2437 2438*** Changes in GDB-4.0: 2439 2440 * New Facilities 2441 2442Wide output is wrapped at good places to make the output more readable. 2443 2444Gdb now supports cross-debugging from a host machine of one type to a 2445target machine of another type. Communication with the target system 2446is over serial lines. The ``target'' command handles connecting to the 2447remote system; the ``load'' command will download a program into the 2448remote system. Serial stubs for the m68k and i386 are provided. Gdb 2449also supports debugging of realtime processes running under VxWorks, 2450using SunRPC Remote Procedure Calls over TCP/IP to talk to a debugger 2451stub on the target system. 2452 2453New CPUs supported include the AMD 29000 and Intel 960. 2454 2455GDB now reads object files and symbol tables via a ``binary file'' 2456library, which allows a single copy of GDB to debug programs of multiple 2457object file types such as a.out and coff. 2458 2459There is now a GDB reference card in "doc/refcard.tex". (Make targets 2460refcard.dvi and refcard.ps are available to format it). 2461 2462 2463 * Control-Variable user interface simplified 2464 2465All variables that control the operation of the debugger can be set 2466by the ``set'' command, and displayed by the ``show'' command. 2467 2468For example, ``set prompt new-gdb=>'' will change your prompt to new-gdb=>. 2469``Show prompt'' produces the response: 2470Gdb's prompt is new-gdb=>. 2471 2472What follows are the NEW set commands. The command ``help set'' will 2473print a complete list of old and new set commands. ``help set FOO'' 2474will give a longer description of the variable FOO. ``show'' will show 2475all of the variable descriptions and their current settings. 2476 2477confirm on/off: Enables warning questions for operations that are 2478 hard to recover from, e.g. rerunning the program while 2479 it is already running. Default is ON. 2480 2481editing on/off: Enables EMACS style command line editing 2482 of input. Previous lines can be recalled with 2483 control-P, the current line can be edited with control-B, 2484 you can search for commands with control-R, etc. 2485 Default is ON. 2486 2487history filename NAME: NAME is where the gdb command history 2488 will be stored. The default is .gdb_history, 2489 or the value of the environment variable 2490 GDBHISTFILE. 2491 2492history size N: The size, in commands, of the command history. The 2493 default is 256, or the value of the environment variable 2494 HISTSIZE. 2495 2496history save on/off: If this value is set to ON, the history file will 2497 be saved after exiting gdb. If set to OFF, the 2498 file will not be saved. The default is OFF. 2499 2500history expansion on/off: If this value is set to ON, then csh-like 2501 history expansion will be performed on 2502 command line input. The default is OFF. 2503 2504radix N: Sets the default radix for input and output. It can be set 2505 to 8, 10, or 16. Note that the argument to "radix" is interpreted 2506 in the current radix, so "set radix 10" is always a no-op. 2507 2508height N: This integer value is the number of lines on a page. Default 2509 is 24, the current `stty rows'' setting, or the ``li#'' 2510 setting from the termcap entry matching the environment 2511 variable TERM. 2512 2513width N: This integer value is the number of characters on a line. 2514 Default is 80, the current `stty cols'' setting, or the ``co#'' 2515 setting from the termcap entry matching the environment 2516 variable TERM. 2517 2518Note: ``set screensize'' is obsolete. Use ``set height'' and 2519``set width'' instead. 2520 2521print address on/off: Print memory addresses in various command displays, 2522 such as stack traces and structure values. Gdb looks 2523 more ``symbolic'' if you turn this off; it looks more 2524 ``machine level'' with it on. Default is ON. 2525 2526print array on/off: Prettyprint arrays. New convenient format! Default 2527 is OFF. 2528 2529print demangle on/off: Print C++ symbols in "source" form if on, 2530 "raw" form if off. 2531 2532print asm-demangle on/off: Same, for assembler level printouts 2533 like instructions. 2534 2535print vtbl on/off: Prettyprint C++ virtual function tables. Default is OFF. 2536 2537 2538 * Support for Epoch Environment. 2539 2540The epoch environment is a version of Emacs v18 with windowing. One 2541new command, ``inspect'', is identical to ``print'', except that if you 2542are running in the epoch environment, the value is printed in its own 2543window. 2544 2545 2546 * Support for Shared Libraries 2547 2548GDB can now debug programs and core files that use SunOS shared libraries. 2549Symbols from a shared library cannot be referenced 2550before the shared library has been linked with the program (this 2551happens after you type ``run'' and before the function main() is entered). 2552At any time after this linking (including when examining core files 2553from dynamically linked programs), gdb reads the symbols from each 2554shared library when you type the ``sharedlibrary'' command. 2555It can be abbreviated ``share''. 2556 2557sharedlibrary REGEXP: Load shared object library symbols for files 2558 matching a unix regular expression. No argument 2559 indicates to load symbols for all shared libraries. 2560 2561info sharedlibrary: Status of loaded shared libraries. 2562 2563 2564 * Watchpoints 2565 2566A watchpoint stops execution of a program whenever the value of an 2567expression changes. Checking for this slows down execution 2568tremendously whenever you are in the scope of the expression, but is 2569quite useful for catching tough ``bit-spreader'' or pointer misuse 2570problems. Some machines such as the 386 have hardware for doing this 2571more quickly, and future versions of gdb will use this hardware. 2572 2573watch EXP: Set a watchpoint (breakpoint) for an expression. 2574 2575info watchpoints: Information about your watchpoints. 2576 2577delete N: Deletes watchpoint number N (same as breakpoints). 2578disable N: Temporarily turns off watchpoint number N (same as breakpoints). 2579enable N: Re-enables watchpoint number N (same as breakpoints). 2580 2581 2582 * C++ multiple inheritance 2583 2584When used with a GCC version 2 compiler, GDB supports multiple inheritance 2585for C++ programs. 2586 2587 * C++ exception handling 2588 2589Gdb now supports limited C++ exception handling. Besides the existing 2590ability to breakpoint on an exception handler, gdb can breakpoint on 2591the raising of an exception (before the stack is peeled back to the 2592handler's context). 2593 2594catch FOO: If there is a FOO exception handler in the dynamic scope, 2595 set a breakpoint to catch exceptions which may be raised there. 2596 Multiple exceptions (``catch foo bar baz'') may be caught. 2597 2598info catch: Lists all exceptions which may be caught in the 2599 current stack frame. 2600 2601 2602 * Minor command changes 2603 2604The command ``call func (arg, arg, ...)'' now acts like the print 2605command, except it does not print or save a value if the function's result 2606is void. This is similar to dbx usage. 2607 2608The ``up'' and ``down'' commands now always print the frame they end up 2609at; ``up-silently'' and `down-silently'' can be used in scripts to change 2610frames without printing. 2611 2612 * New directory command 2613 2614'dir' now adds directories to the FRONT of the source search path. 2615The path starts off empty. Source files that contain debug information 2616about the directory in which they were compiled can be found even 2617with an empty path; Sun CC and GCC include this information. If GDB can't 2618find your source file in the current directory, type "dir .". 2619 2620 * Configuring GDB for compilation 2621 2622For normal use, type ``./configure host''. See README or gdb.texinfo 2623for more details. 2624 2625GDB now handles cross debugging. If you are remotely debugging between 2626two different machines, type ``./configure host -target=targ''. 2627Host is the machine where GDB will run; targ is the machine 2628where the program that you are debugging will run. 2629