1 What has changed in GDB? 2 (Organized release by release) 3 4*** Changes in GDB 8.3 5 6* GDB and GDBserver now support access to additional registers on 7 PowerPC GNU/Linux targets: PPR, DSCR, TAR, EBB/PMU registers, and 8 HTM registers. 9 10* GDB now has experimental support for the compilation and injection of 11 C++ source code into the inferior. This beta release does not include 12 support for several language features, such as templates, constructors, 13 and operators. 14 15 This feature requires GCC 7.1 or higher built with libcp1.so 16 (the C++ plug-in). 17 18* GDB and GDBserver now support IPv6 connections. IPv6 addresses 19 can be passed using the '[ADDRESS]:PORT' notation, or the regular 20 'ADDRESS:PORT' method. 21 22* DWARF index cache: GDB can now automatically save indices of DWARF 23 symbols on disk to speed up further loading of the same binaries. 24 25* Ada task switching is now supported on aarch64-elf targets when 26 debugging a program using the Ravenscar Profile. For more information, 27 see the "Tasking Support when using the Ravenscar Profile" section 28 in the GDB user manual. 29 30* GDB in batch mode now exits with status 1 if the last command to be 31 executed failed. 32 33* The RISC-V target now supports target descriptions. 34 35* System call catchpoints now support system call aliases on FreeBSD. 36 When the ABI of a system call changes in FreeBSD, this is 37 implemented by leaving a compatibility system call using the old ABI 38 at the existing number and allocating a new system call number for 39 the new ABI. For example, FreeBSD 12 altered the layout of 'struct 40 kevent' used by the 'kevent' system call. As a result, FreeBSD 12 41 kernels ship with both 'kevent' and 'freebsd11_kevent' system calls. 42 The 'freebsd11_kevent' system call is assigned an alias of 'kevent' 43 so that a system call catchpoint for the 'kevent' system call will 44 catch invocations of both the 'kevent' and 'freebsd11_kevent' 45 binaries. This ensures that 'kevent' system calls are caught for 46 binaries using either the old or new ABIs. 47 48* Terminal styling is now available for the CLI and the TUI. GNU 49 Source Highlight can additionally be used to provide styling of 50 source code snippets. See the "set style" commands, below, for more 51 information. 52 53* Removed support for old demangling styles arm, edg, gnu, hp and 54 lucid. 55 56* New commands 57 58set debug compile-cplus-types 59show debug compile-cplus-types 60 Control the display of debug output about type conversion in the 61 C++ compile feature. Commands have no effect while compiliong 62 for other languages. 63 64set debug skip 65show debug skip 66 Control whether debug output about files/functions skipping is 67 displayed. 68 69frame apply [all | COUNT | -COUNT | level LEVEL...] [FLAG]... COMMAND 70 Apply a command to some frames. 71 FLAG arguments allow to control what output to produce and how to handle 72 errors raised when applying COMMAND to a frame. 73 74taas COMMAND 75 Apply a command to all threads (ignoring errors and empty output). 76 Shortcut for 'thread apply all -s COMMAND'. 77 78faas COMMAND 79 Apply a command to all frames (ignoring errors and empty output). 80 Shortcut for 'frame apply all -s COMMAND'. 81 82tfaas COMMAND 83 Apply a command to all frames of all threads (ignoring errors and empty 84 output). 85 Shortcut for 'thread apply all -s frame apply all -s COMMAND'. 86 87maint set dwarf unwinders (on|off) 88maint show dwarf unwinders 89 Control whether DWARF unwinders can be used. 90 91info proc files 92 Display a list of open files for a process. 93 94* Changed commands 95 96Changes to the "frame", "select-frame", and "info frame" CLI commands. 97 These commands all now take a frame specification which 98 is either a frame level, or one of the keywords 'level', 'address', 99 'function', or 'view' followed by a parameter. Selecting a frame by 100 address, or viewing a frame outside the current backtrace now 101 requires the use of a keyword. Selecting a frame by level is 102 unchanged. The MI comment "-stack-select-frame" is unchanged. 103 104target remote FILENAME 105target extended-remote FILENAME 106 If FILENAME is a Unix domain socket, GDB will attempt to connect 107 to this socket instead of opening FILENAME as a character device. 108 109info args [-q] [-t TYPEREGEXP] [NAMEREGEXP] 110info functions [-q] [-t TYPEREGEXP] [NAMEREGEXP] 111info locals [-q] [-t TYPEREGEXP] [NAMEREGEXP] 112info variables [-q] [-t TYPEREGEXP] [NAMEREGEXP] 113 These commands can now print only the searched entities 114 matching the provided regexp(s), giving a condition 115 on the entity names or entity types. The flag -q disables 116 printing headers or informations messages. 117 118info functions 119info types 120info variables 121rbreak 122 These commands now determine the syntax for the shown entities 123 according to the language chosen by `set language'. In particular, 124 `set language auto' means to automatically choose the language of 125 the shown entities. 126 127thread apply [all | COUNT | -COUNT] [FLAG]... COMMAND 128 The 'thread apply' command accepts new FLAG arguments. 129 FLAG arguments allow to control what output to produce and how to handle 130 errors raised when applying COMMAND to a thread. 131 132set tui tab-width NCHARS 133show tui tab-width NCHARS 134 "set tui tab-width" replaces the "tabset" command, which has been deprecated. 135 136set style enabled [on|off] 137show style enabled 138 Enable or disable terminal styling. Styling is enabled by default 139 on most hosts, but disabled by default when in batch mode. 140 141set style sources [on|off] 142show style sources 143 Enable or disable source code styling. Source code styling is 144 enabled by default, but only takes effect if styling in general is 145 enabled, and if GDB was linked with GNU Source Highlight. 146 147set style filename foreground COLOR 148set style filename background COLOR 149set style filename intensity VALUE 150 Control the styling of file names. 151 152set style function foreground COLOR 153set style function background COLOR 154set style function intensity VALUE 155 Control the styling of function names. 156 157set style variable foreground COLOR 158set style variable background COLOR 159set style variable intensity VALUE 160 Control the styling of variable names. 161 162set style address foreground COLOR 163set style address background COLOR 164set style address intensity VALUE 165 Control the styling of addresses. 166 167* MI changes 168 169 ** The '-data-disassemble' MI command now accepts an '-a' option to 170 disassemble the whole function surrounding the given program 171 counter value or function name. Support for this feature can be 172 verified by using the "-list-features" command, which should 173 contain "data-disassemble-a-option". 174 175 ** Command responses and notifications that include a frame now include 176 the frame's architecture in a new "arch" attribute. 177 178* New native configurations 179 180GNU/Linux/RISC-V riscv*-*-linux* 181FreeBSD/riscv riscv*-*-freebsd* 182 183* New targets 184 185GNU/Linux/RISC-V riscv*-*-linux* 186CSKY ELF csky*-*-elf 187CSKY GNU/LINUX csky*-*-linux 188FreeBSD/riscv riscv*-*-freebsd* 189NXP S12Z s12z-*-elf 190GNU/Linux/OpenRISC or1k*-*-linux* 191 192* Removed targets 193 194GDB no longer supports native debugging on versions of MS-Windows 195before Windows XP. 196 197* Python API 198 199 ** GDB no longer supports Python versions less than 2.6. 200 201 ** The gdb.Inferior type has a new 'progspace' property, which is the program 202 space associated to that inferior. 203 204 ** The gdb.Progspace type has a new 'objfiles' method, which returns the list 205 of objfiles associated to that program space. 206 207 ** gdb.SYMBOL_LOC_COMMON_BLOCK, gdb.SYMBOL_MODULE_DOMAIN, and 208 gdb.SYMBOL_COMMON_BLOCK_DOMAIN were added to reflect changes to 209 the gdb core. 210 211 ** gdb.SYMBOL_VARIABLES_DOMAIN, gdb.SYMBOL_FUNCTIONS_DOMAIN, and 212 gdb.SYMBOL_TYPES_DOMAIN are now deprecated. These were never 213 correct and did not work properly. 214 215 ** The gdb.Value type has a new constructor, which is used to construct a 216 gdb.Value from a Python buffer object and a gdb.Type. 217 218* Configure changes 219 220--enable-ubsan 221 222 Enable or disable the undefined behavior sanitizer. This is 223 disabled by default, but passing --enable-ubsan=yes or 224 --enable-ubsan=auto to configure will enable it. Enabling this can 225 cause a performance penalty. The undefined behavior sanitizer was 226 first introduced in GCC 4.9. 227 228*** Changes in GDB 8.2 229 230* The 'set disassembler-options' command now supports specifying options 231 for the MIPS target. 232 233* The 'symbol-file' command now accepts an '-o' option to add a relative 234 offset to all sections. 235 236* Similarly, the 'add-symbol-file' command also accepts an '-o' option to add 237 a relative offset to all sections, but it allows to override the load 238 address of individual sections using '-s'. 239 240* The 'add-symbol-file' command no longer requires the second argument 241 (address of the text section). 242 243* The endianness used with the 'set endian auto' mode in the absence of 244 an executable selected for debugging is now the last endianness chosen 245 either by one of the 'set endian big' and 'set endian little' commands 246 or by inferring from the last executable used, rather than the startup 247 default. 248 249* The pager now allows a "c" response, meaning to disable the pager 250 for the rest of the current command. 251 252* The commands 'info variables/functions/types' now show the source line 253 numbers of symbol definitions when available. 254 255* 'info proc' now works on running processes on FreeBSD systems and core 256 files created on FreeBSD systems. 257 258* C expressions can now use _Alignof, and C++ expressions can now use 259 alignof. 260 261* Support for SVE on AArch64 Linux. Note that GDB does not detect changes to 262 the vector length while the process is running. 263 264* New commands 265 266set debug fbsd-nat 267show debug fbsd-nat 268 Control display of debugging info regarding the FreeBSD native target. 269 270set|show varsize-limit 271 This new setting allows the user to control the maximum size of Ada 272 objects being printed when those objects have a variable type, 273 instead of that maximum size being hardcoded to 65536 bytes. 274 275set|show record btrace cpu 276 Controls the processor to be used for enabling errata workarounds for 277 branch trace decode. 278 279maint check libthread-db 280 Run integrity checks on the current inferior's thread debugging 281 library 282 283maint set check-libthread-db (on|off) 284maint show check-libthread-db 285 Control whether to run integrity checks on inferior specific thread 286 debugging libraries as they are loaded. The default is not to 287 perform such checks. 288 289* Python API 290 291 ** Type alignment is now exposed via the "align" attribute of a gdb.Type. 292 293 ** The commands attached to a breakpoint can be set by assigning to 294 the breakpoint's "commands" field. 295 296 ** gdb.execute can now execute multi-line gdb commands. 297 298 ** The new functions gdb.convenience_variable and 299 gdb.set_convenience_variable can be used to get and set the value 300 of convenience variables. 301 302 ** A gdb.Parameter will no longer print the "set" help text on an 303 ordinary "set"; instead by default a "set" will be silent unless 304 the get_set_string method returns a non-empty string. 305 306* New targets 307 308RiscV ELF riscv*-*-elf 309 310* Removed targets and native configurations 311 312m88k running OpenBSD m88*-*-openbsd* 313SH-5/SH64 ELF sh64-*-elf*, SH-5/SH64 support in sh* 314SH-5/SH64 running GNU/Linux SH-5/SH64 support in sh*-*-linux* 315SH-5/SH64 running OpenBSD SH-5/SH64 support in sh*-*-openbsd* 316 317* Aarch64/Linux hardware watchpoints improvements 318 319 Hardware watchpoints on unaligned addresses are now properly 320 supported when running Linux kernel 4.10 or higher: read and access 321 watchpoints are no longer spuriously missed, and all watchpoints 322 lengths between 1 and 8 bytes are supported. On older kernels, 323 watchpoints set on unaligned addresses are no longer missed, with 324 the tradeoff that there is a possibility of false hits being 325 reported. 326 327* Configure changes 328 329--enable-codesign=CERT 330 This can be used to invoke "codesign -s CERT" after building gdb. 331 This option is useful on macOS, where code signing is required for 332 gdb to work properly. 333 334--disable-gdbcli has been removed 335 This is now silently accepted, but does nothing. 336 337*** Changes in GDB 8.1 338 339* GDB now supports dynamically creating arbitrary register groups specified 340 in XML target descriptions. This allows for finer grain grouping of 341 registers on systems with a large amount of registers. 342 343* The 'ptype' command now accepts a '/o' flag, which prints the 344 offsets and sizes of fields in a struct, like the pahole(1) tool. 345 346* New "--readnever" command line option instructs GDB to not read each 347 symbol file's symbolic debug information. This makes startup faster 348 but at the expense of not being able to perform symbolic debugging. 349 This option is intended for use cases where symbolic debugging will 350 not be used, e.g., when you only need to dump the debuggee's core. 351 352* GDB now uses the GNU MPFR library, if available, to emulate target 353 floating-point arithmetic during expression evaluation when the target 354 uses different floating-point formats than the host. At least version 355 3.1 of GNU MPFR is required. 356 357* GDB now supports access to the guarded-storage-control registers and the 358 software-based guarded-storage broadcast control registers on IBM z14. 359 360* On Unix systems, GDB now supports transmitting environment variables 361 that are to be set or unset to GDBserver. These variables will 362 affect the environment to be passed to the remote inferior. 363 364 To inform GDB of environment variables that are to be transmitted to 365 GDBserver, use the "set environment" command. Only user set 366 environment variables are sent to GDBserver. 367 368 To inform GDB of environment variables that are to be unset before 369 the remote inferior is started by the GDBserver, use the "unset 370 environment" command. 371 372* Completion improvements 373 374 ** GDB can now complete function parameters in linespecs and 375 explicit locations without quoting. When setting breakpoints, 376 quoting around functions names to help with TAB-completion is 377 generally no longer necessary. For example, this now completes 378 correctly: 379 380 (gdb) b function(in[TAB] 381 (gdb) b function(int) 382 383 Related, GDB is no longer confused with completing functions in 384 C++ anonymous namespaces: 385 386 (gdb) b (anon[TAB] 387 (gdb) b (anonymous namespace)::[TAB][TAB] 388 (anonymous namespace)::a_function() 389 (anonymous namespace)::b_function() 390 391 ** GDB now has much improved linespec and explicit locations TAB 392 completion support, that better understands what you're 393 completing and offers better suggestions. For example, GDB no 394 longer offers data symbols as possible completions when you're 395 setting a breakpoint. 396 397 ** GDB now TAB-completes label symbol names. 398 399 ** The "complete" command now mimics TAB completion accurately. 400 401* New command line options (gcore) 402 403-a 404 Dump all memory mappings. 405 406* Breakpoints on C++ functions are now set on all scopes by default 407 408 By default, breakpoints on functions/methods are now interpreted as 409 specifying all functions with the given name ignoring missing 410 leading scopes (namespaces and classes). 411 412 For example, assuming a C++ program with symbols named: 413 414 A::B::func() 415 B::func() 416 417 both commands "break func()" and "break B::func()" set a breakpoint 418 on both symbols. 419 420 You can use the new flag "-qualified" to override this. This makes 421 GDB interpret the specified function name as a complete 422 fully-qualified name instead. For example, using the same C++ 423 program, the "break -q B::func" command sets a breakpoint on 424 "B::func", only. A parameter has been added to the Python 425 gdb.Breakpoint constructor to achieve the same result when creating 426 a breakpoint from Python. 427 428* Breakpoints on functions marked with C++ ABI tags 429 430 GDB can now set breakpoints on functions marked with C++ ABI tags 431 (e.g., [abi:cxx11]). See here for a description of ABI tags: 432 https://developers.redhat.com/blog/2015/02/05/gcc5-and-the-c11-abi/ 433 434 Functions with a C++11 abi tag are demangled/displayed like this: 435 436 function[abi:cxx11](int) 437 ^^^^^^^^^^^ 438 439 You can now set a breakpoint on such functions simply as if they had 440 no tag, like: 441 442 (gdb) b function(int) 443 444 Or if you need to disambiguate between tags, like: 445 446 (gdb) b function[abi:other_tag](int) 447 448 Tab completion was adjusted accordingly as well. 449 450* Python Scripting 451 452 ** New events gdb.new_inferior, gdb.inferior_deleted, and 453 gdb.new_thread are emitted. See the manual for further 454 description of these. 455 456 ** A new function, "gdb.rbreak" has been added to the Python API. 457 This function allows the setting of a large number of breakpoints 458 via a regex pattern in Python. See the manual for further details. 459 460 ** Python breakpoints can now accept explicit locations. See the 461 manual for a further description of this feature. 462 463 464* New features in the GDB remote stub, GDBserver 465 466 ** GDBserver is now able to start inferior processes with a 467 specified initial working directory. 468 469 The user can set the desired working directory to be used from 470 GDB using the new "set cwd" command. 471 472 ** New "--selftest" command line option runs some GDBserver self 473 tests. These self tests are disabled in releases. 474 475 ** On Unix systems, GDBserver now does globbing expansion and variable 476 substitution in inferior command line arguments. 477 478 This is done by starting inferiors using a shell, like GDB does. 479 See "set startup-with-shell" in the user manual for how to disable 480 this from GDB when using "target extended-remote". When using 481 "target remote", you can disable the startup with shell by using the 482 new "--no-startup-with-shell" GDBserver command line option. 483 484 ** On Unix systems, GDBserver now supports receiving environment 485 variables that are to be set or unset from GDB. These variables 486 will affect the environment to be passed to the inferior. 487 488* When catching an Ada exception raised with a message, GDB now prints 489 the message in the catchpoint hit notification. In GDB/MI mode, that 490 information is provided as an extra field named "exception-message" 491 in the *stopped notification. 492 493* Trait objects can now be inspected When debugging Rust code. This 494 requires compiler support which will appear in Rust 1.24. 495 496* New remote packets 497 498QEnvironmentHexEncoded 499 Inform GDBserver of an environment variable that is to be passed to 500 the inferior when starting it. 501 502QEnvironmentUnset 503 Inform GDBserver of an environment variable that is to be unset 504 before starting the remote inferior. 505 506QEnvironmentReset 507 Inform GDBserver that the environment should be reset (i.e., 508 user-set environment variables should be unset). 509 510QStartupWithShell 511 Indicates whether the inferior must be started with a shell or not. 512 513QSetWorkingDir 514 Tell GDBserver that the inferior to be started should use a specific 515 working directory. 516 517* The "maintenance print c-tdesc" command now takes an optional 518 argument which is the file name of XML target description. 519 520* The "maintenance selftest" command now takes an optional argument to 521 filter the tests to be run. 522 523* The "enable", and "disable" commands now accept a range of 524 breakpoint locations, e.g. "enable 1.3-5". 525 526* New commands 527 528set|show cwd 529 Set and show the current working directory for the inferior. 530 531set|show compile-gcc 532 Set and show compilation command used for compiling and injecting code 533 with the 'compile' commands. 534 535set debug separate-debug-file 536show debug separate-debug-file 537 Control the display of debug output about separate debug file search. 538 539set dump-excluded-mappings 540show dump-excluded-mappings 541 Control whether mappings marked with the VM_DONTDUMP flag should be 542 dumped when generating a core file. 543 544maint info selftests 545 List the registered selftests. 546 547starti 548 Start the debugged program stopping at the first instruction. 549 550set|show debug or1k 551 Control display of debugging messages related to OpenRISC targets. 552 553set|show print type nested-type-limit 554 Set and show the limit of nesting level for nested types that the 555 type printer will show. 556 557* TUI Single-Key mode now supports two new shortcut keys: `i' for stepi and 558 `o' for nexti. 559 560* Safer/improved support for debugging with no debug info 561 562 GDB no longer assumes functions with no debug information return 563 'int'. 564 565 This means that GDB now refuses to call such functions unless you 566 tell it the function's type, by either casting the call to the 567 declared return type, or by casting the function to a function 568 pointer of the right type, and calling that: 569 570 (gdb) p getenv ("PATH") 571 'getenv' has unknown return type; cast the call to its declared return type 572 (gdb) p (char *) getenv ("PATH") 573 $1 = 0x7fffffffe "/usr/local/bin:/"... 574 (gdb) p ((char * (*) (const char *)) getenv) ("PATH") 575 $2 = 0x7fffffffe "/usr/local/bin:/"... 576 577 Similarly, GDB no longer assumes that global variables with no debug 578 info have type 'int', and refuses to print the variable's value 579 unless you tell it the variable's type: 580 581 (gdb) p var 582 'var' has unknown type; cast it to its declared type 583 (gdb) p (float) var 584 $3 = 3.14 585 586* New native configurations 587 588FreeBSD/aarch64 aarch64*-*-freebsd* 589FreeBSD/arm arm*-*-freebsd* 590 591* New targets 592 593FreeBSD/aarch64 aarch64*-*-freebsd* 594FreeBSD/arm arm*-*-freebsd* 595OpenRISC ELF or1k*-*-elf 596 597* Removed targets and native configurations 598 599Solaris 2.0-9 i?86-*-solaris2.[0-9], sparc*-*-solaris2.[0-9] 600 601*** Changes in GDB 8.0 602 603* GDB now supports access to the PKU register on GNU/Linux. The register is 604 added by the Memory Protection Keys for Userspace feature which will be 605 available in future Intel CPUs. 606 607* GDB now supports C++11 rvalue references. 608 609* Python Scripting 610 611 ** New functions to start, stop and access a running btrace recording. 612 ** Rvalue references are now supported in gdb.Type. 613 614* GDB now supports recording and replaying rdrand and rdseed Intel 64 615 instructions. 616 617* Building GDB and GDBserver now requires a C++11 compiler. 618 619 For example, GCC 4.8 or later. 620 621 It is no longer possible to build GDB or GDBserver with a C 622 compiler. The --disable-build-with-cxx configure option has been 623 removed. 624 625* Building GDB and GDBserver now requires GNU make >= 3.81. 626 627 It is no longer supported to build GDB or GDBserver with another 628 implementation of the make program or an earlier version of GNU make. 629 630* Native debugging on MS-Windows supports command-line redirection 631 632 Command-line arguments used for starting programs on MS-Windows can 633 now include redirection symbols supported by native Windows shells, 634 such as '<', '>', '>>', '2>&1', etc. This affects GDB commands such 635 as "run", "start", and "set args", as well as the corresponding MI 636 features. 637 638* Support for thread names on MS-Windows. 639 640 GDB now catches and handles the special exception that programs 641 running on MS-Windows use to assign names to threads in the 642 debugger. 643 644* Support for Java programs compiled with gcj has been removed. 645 646* User commands now accept an unlimited number of arguments. 647 Previously, only up to 10 was accepted. 648 649* The "eval" command now expands user-defined command arguments. 650 651 This makes it easier to process a variable number of arguments: 652 653 define mycommand 654 set $i = 0 655 while $i < $argc 656 eval "print $arg%d", $i 657 set $i = $i + 1 658 end 659 end 660 661* Target descriptions can now describe registers for sparc32 and sparc64. 662 663* GDB now supports DWARF version 5 (debug information format). 664 Its .debug_names index is not yet supported. 665 666* New native configurations 667 668FreeBSD/mips mips*-*-freebsd 669 670* New targets 671 672Synopsys ARC arc*-*-elf32 673FreeBSD/mips mips*-*-freebsd 674 675* Removed targets and native configurations 676 677Alpha running FreeBSD alpha*-*-freebsd* 678Alpha running GNU/kFreeBSD alpha*-*-kfreebsd*-gnu 679 680* New commands 681 682flash-erase 683 Erases all the flash memory regions reported by the target. 684 685maint print arc arc-instruction address 686 Print internal disassembler information about instruction at a given address. 687 688* New options 689 690set disassembler-options 691show disassembler-options 692 Controls the passing of target specific information to the disassembler. 693 If it is necessary to specify more than one disassembler option then 694 multiple options can be placed together into a comma separated list. 695 The default value is the empty string. Currently, the only supported 696 targets are ARM, PowerPC and S/390. 697 698* New MI commands 699 700-target-flash-erase 701 Erases all the flash memory regions reported by the target. This is 702 equivalent to the CLI command flash-erase. 703 704-file-list-shared-libraries 705 List the shared libraries in the program. This is 706 equivalent to the CLI command "info shared". 707 708-catch-handlers 709 Catchpoints stopping the program when Ada exceptions are 710 handled. This is equivalent to the CLI command "catch handlers". 711 712*** Changes in GDB 7.12 713 714* GDB and GDBserver now build with a C++ compiler by default. 715 716 The --enable-build-with-cxx configure option is now enabled by 717 default. One must now explicitly configure with 718 --disable-build-with-cxx in order to build with a C compiler. This 719 option will be removed in a future release. 720 721* GDBserver now supports recording btrace without maintaining an active 722 GDB connection. 723 724* GDB now supports a negative repeat count in the 'x' command to examine 725 memory backward from the given address. For example: 726 727 (gdb) bt 728 #0 Func1 (n=42, p=0x40061c "hogehoge") at main.cpp:4 729 #1 0x400580 in main (argc=1, argv=0x7fffffffe5c8) at main.cpp:8 730 (gdb) x/-5i 0x0000000000400580 731 0x40056a <main(int, char**)+8>: mov %edi,-0x4(%rbp) 732 0x40056d <main(int, char**)+11>: mov %rsi,-0x10(%rbp) 733 0x400571 <main(int, char**)+15>: mov $0x40061c,%esi 734 0x400576 <main(int, char**)+20>: mov $0x2a,%edi 735 0x40057b <main(int, char**)+25>: 736 callq 0x400536 <Func1(int, char const*)> 737 738* Fortran: Support structures with fields of dynamic types and 739 arrays of dynamic types. 740 741* The symbol dumping maintenance commands have new syntax. 742maint print symbols [-pc address] [--] [filename] 743maint print symbols [-objfile objfile] [-source source] [--] [filename] 744maint print psymbols [-objfile objfile] [-pc address] [--] [filename] 745maint print psymbols [-objfile objfile] [-source source] [--] [filename] 746maint print msymbols [-objfile objfile] [--] [filename] 747 748* GDB now supports multibit bitfields and enums in target register 749 descriptions. 750 751* New Python-based convenience function $_as_string(val), which returns 752 the textual representation of a value. This function is especially 753 useful to obtain the text label of an enum value. 754 755* Intel MPX bound violation handling. 756 757 Segmentation faults caused by a Intel MPX boundary violation 758 now display the kind of violation (upper or lower), the memory 759 address accessed and the memory bounds, along with the usual 760 signal received and code location. 761 762 For example: 763 764 Program received signal SIGSEGV, Segmentation fault 765 Upper bound violation while accessing address 0x7fffffffc3b3 766 Bounds: [lower = 0x7fffffffc390, upper = 0x7fffffffc3a3] 767 0x0000000000400d7c in upper () at i386-mpx-sigsegv.c:68 768 769* Rust language support. 770 GDB now supports debugging programs written in the Rust programming 771 language. See https://www.rust-lang.org/ for more information about 772 Rust. 773 774* Support for running interpreters on specified input/output devices 775 776 GDB now supports a new mechanism that allows frontends to provide 777 fully featured GDB console views, as a better alternative to 778 building such views on top of the "-interpreter-exec console" 779 command. See the new "new-ui" command below. With that command, 780 frontends can now start GDB in the traditional command-line mode 781 running in an embedded terminal emulator widget, and create a 782 separate MI interpreter running on a specified i/o device. In this 783 way, GDB handles line editing, history, tab completion, etc. in the 784 console all by itself, and the GUI uses the separate MI interpreter 785 for its own control and synchronization, invisible to the command 786 line. 787 788* The "catch syscall" command catches groups of related syscalls. 789 790 The "catch syscall" command now supports catching a group of related 791 syscalls using the 'group:' or 'g:' prefix. 792 793* New commands 794 795skip -file file 796skip -gfile file-glob-pattern 797skip -function function 798skip -rfunction regular-expression 799 A generalized form of the skip command, with new support for 800 glob-style file names and regular expressions for function names. 801 Additionally, a file spec and a function spec may now be combined. 802 803maint info line-table REGEXP 804 Display the contents of GDB's internal line table data struture. 805 806maint selftest 807 Run any GDB unit tests that were compiled in. 808 809new-ui INTERP TTY 810 Start a new user interface instance running INTERP as interpreter, 811 using the TTY file for input/output. 812 813* Python Scripting 814 815 ** gdb.Breakpoint objects have a new attribute "pending", which 816 indicates whether the breakpoint is pending. 817 ** Three new breakpoint-related events have been added: 818 gdb.breakpoint_created, gdb.breakpoint_modified, and 819 gdb.breakpoint_deleted. 820 821signal-event EVENTID 822 Signal ("set") the given MS-Windows event object. This is used in 823 conjunction with the Windows JIT debugging (AeDebug) support, where 824 the OS suspends a crashing process until a debugger can attach to 825 it. Resuming the crashing process, in order to debug it, is done by 826 signalling an event. 827 828* Support for tracepoints and fast tracepoints on s390-linux and s390x-linux 829 was added in GDBserver, including JIT compiling fast tracepoint's 830 conditional expression bytecode into native code. 831 832* Support for various remote target protocols and ROM monitors has 833 been removed: 834 835 target m32rsdi Remote M32R debugging over SDI 836 target mips MIPS remote debugging protocol 837 target pmon PMON ROM monitor 838 target ddb NEC's DDB variant of PMON for Vr4300 839 target rockhopper NEC RockHopper variant of PMON 840 target lsi LSI variant of PMO 841 842* Support for tracepoints and fast tracepoints on powerpc-linux, 843 powerpc64-linux, and powerpc64le-linux was added in GDBserver, 844 including JIT compiling fast tracepoint's conditional expression 845 bytecode into native code. 846 847* MI async record =record-started now includes the method and format used for 848 recording. For example: 849 850 =record-started,thread-group="i1",method="btrace",format="bts" 851 852* MI async record =thread-selected now includes the frame field. For example: 853 854 =thread-selected,id="3",frame={level="0",addr="0x00000000004007c0"} 855 856* New targets 857 858Andes NDS32 nds32*-*-elf 859 860*** Changes in GDB 7.11 861 862* GDB now supports debugging kernel-based threads on FreeBSD. 863 864* Per-inferior thread numbers 865 866 Thread numbers are now per inferior instead of global. If you're 867 debugging multiple inferiors, GDB displays thread IDs using a 868 qualified INF_NUM.THR_NUM form. For example: 869 870 (gdb) info threads 871 Id Target Id Frame 872 1.1 Thread 0x7ffff7fc2740 (LWP 8155) (running) 873 1.2 Thread 0x7ffff7fc1700 (LWP 8168) (running) 874 * 2.1 Thread 0x7ffff7fc2740 (LWP 8157) (running) 875 2.2 Thread 0x7ffff7fc1700 (LWP 8190) (running) 876 877 As consequence, thread numbers as visible in the $_thread 878 convenience variable and in Python's InferiorThread.num attribute 879 are no longer unique between inferiors. 880 881 GDB now maintains a second thread ID per thread, referred to as the 882 global thread ID, which is the new equivalent of thread numbers in 883 previous releases. See also $_gthread below. 884 885 For backwards compatibility, MI's thread IDs always refer to global 886 IDs. 887 888* Commands that accept thread IDs now accept the qualified 889 INF_NUM.THR_NUM form as well. For example: 890 891 (gdb) thread 2.1 892 [Switching to thread 2.1 (Thread 0x7ffff7fc2740 (LWP 8157))] (running) 893 (gdb) 894 895* In commands that accept a list of thread IDs, you can now refer to 896 all threads of an inferior using a star wildcard. GDB accepts 897 "INF_NUM.*", to refer to all threads of inferior INF_NUM, and "*" to 898 refer to all threads of the current inferior. For example, "info 899 threads 2.*". 900 901* You can use "info threads -gid" to display the global thread ID of 902 all threads. 903 904* The new convenience variable $_gthread holds the global number of 905 the current thread. 906 907* The new convenience variable $_inferior holds the number of the 908 current inferior. 909 910* GDB now displays the ID and name of the thread that hit a breakpoint 911 or received a signal, if your program is multi-threaded. For 912 example: 913 914 Thread 3 "bar" hit Breakpoint 1 at 0x40087a: file program.c, line 20. 915 Thread 1 "main" received signal SIGINT, Interrupt. 916 917* Record btrace now supports non-stop mode. 918 919* Support for tracepoints on aarch64-linux was added in GDBserver. 920 921* The 'record instruction-history' command now indicates speculative execution 922 when using the Intel Processor Trace recording format. 923 924* GDB now allows users to specify explicit locations, bypassing 925 the linespec parser. This feature is also available to GDB/MI 926 clients. 927 928* Multi-architecture debugging is supported on AArch64 GNU/Linux. 929 GDB now is able to debug both AArch64 applications and ARM applications 930 at the same time. 931 932* Support for fast tracepoints on aarch64-linux was added in GDBserver, 933 including JIT compiling fast tracepoint's conditional expression bytecode 934 into native code. 935 936* GDB now supports displaced stepping on AArch64 GNU/Linux. 937 938* "info threads", "info inferiors", "info display", "info checkpoints" 939 and "maint info program-spaces" now list the corresponding items in 940 ascending ID order, for consistency with all other "info" commands. 941 942* In Ada, the overloads selection menu has been enhanced to display the 943 parameter types and the return types for the matching overloaded subprograms. 944 945* New commands 946 947maint set target-non-stop (on|off|auto) 948maint show target-non-stop 949 Control whether GDB targets always operate in non-stop mode even if 950 "set non-stop" is "off". The default is "auto", meaning non-stop 951 mode is enabled if supported by the target. 952 953maint set bfd-sharing 954maint show bfd-sharing 955 Control the reuse of bfd objects. 956 957set debug bfd-cache 958show debug bfd-cache 959 Control display of debugging info regarding bfd caching. 960 961set debug fbsd-lwp 962show debug fbsd-lwp 963 Control display of debugging info regarding FreeBSD threads. 964 965set remote multiprocess-extensions-packet 966show remote multiprocess-extensions-packet 967 Set/show the use of the remote protocol multiprocess extensions. 968 969set remote thread-events 970show remote thread-events 971 Set/show the use of thread create/exit events. 972 973set ada print-signatures on|off 974show ada print-signatures" 975 Control whether parameter types and return types are displayed in overloads 976 selection menus. It is activaled (@code{on}) by default. 977 978set max-value-size 979show max-value-size 980 Controls the maximum size of memory, in bytes, that GDB will 981 allocate for value contents. Prevents incorrect programs from 982 causing GDB to allocate overly large buffers. Default is 64k. 983 984* The "disassemble" command accepts a new modifier: /s. 985 It prints mixed source+disassembly like /m with two differences: 986 - disassembled instructions are now printed in program order, and 987 - and source for all relevant files is now printed. 988 The "/m" option is now considered deprecated: its "source-centric" 989 output hasn't proved useful in practice. 990 991* The "record instruction-history" command accepts a new modifier: /s. 992 It behaves exactly like /m and prints mixed source+disassembly. 993 994* The "set scheduler-locking" command supports a new mode "replay". 995 It behaves like "off" in record mode and like "on" in replay mode. 996 997* Support for various ROM monitors has been removed: 998 999 target dbug dBUG ROM monitor for Motorola ColdFire 1000 target picobug Motorola picobug monitor 1001 target dink32 DINK32 ROM monitor for PowerPC 1002 target m32r Renesas M32R/D ROM monitor 1003 target mon2000 mon2000 ROM monitor 1004 target ppcbug PPCBUG ROM monitor for PowerPC 1005 1006* Support for reading/writing memory and extracting values on architectures 1007 whose memory is addressable in units of any integral multiple of 8 bits. 1008 1009catch handlers 1010 Allows to break when an Ada exception is handled. 1011 1012* New remote packets 1013 1014exec stop reason 1015 Indicates that an exec system call was executed. 1016 1017exec-events feature in qSupported 1018 The qSupported packet allows GDB to request support for exec 1019 events using the new 'gdbfeature' exec-event, and the qSupported 1020 response can contain the corresponding 'stubfeature'. Set and 1021 show commands can be used to display whether these features are enabled. 1022 1023vCtrlC 1024 Equivalent to interrupting with the ^C character, but works in 1025 non-stop mode. 1026 1027thread created stop reason (T05 create:...) 1028 Indicates that the thread was just created and is stopped at entry. 1029 1030thread exit stop reply (w exitcode;tid) 1031 Indicates that the thread has terminated. 1032 1033QThreadEvents 1034 Enables/disables thread create and exit event reporting. For 1035 example, this is used in non-stop mode when GDB stops a set of 1036 threads and synchronously waits for the their corresponding stop 1037 replies. Without exit events, if one of the threads exits, GDB 1038 would hang forever not knowing that it should no longer expect a 1039 stop for that same thread. 1040 1041N stop reply 1042 Indicates that there are no resumed threads left in the target (all 1043 threads are stopped). The remote stub reports support for this stop 1044 reply to GDB's qSupported query. 1045 1046QCatchSyscalls 1047 Enables/disables catching syscalls from the inferior process. 1048 The remote stub reports support for this packet to GDB's qSupported query. 1049 1050syscall_entry stop reason 1051 Indicates that a syscall was just called. 1052 1053syscall_return stop reason 1054 Indicates that a syscall just returned. 1055 1056* Extended-remote exec events 1057 1058 ** GDB now has support for exec events on extended-remote Linux targets. 1059 For such targets with Linux kernels 2.5.46 and later, this enables 1060 follow-exec-mode and exec catchpoints. 1061 1062set remote exec-event-feature-packet 1063show remote exec-event-feature-packet 1064 Set/show the use of the remote exec event feature. 1065 1066 * Thread names in remote protocol 1067 1068 The reply to qXfer:threads:read may now include a name attribute for each 1069 thread. 1070 1071* Target remote mode fork and exec events 1072 1073 ** GDB now has support for fork and exec events on target remote mode 1074 Linux targets. For such targets with Linux kernels 2.5.46 and later, 1075 this enables follow-fork-mode, detach-on-fork, follow-exec-mode, and 1076 fork and exec catchpoints. 1077 1078* Remote syscall events 1079 1080 ** GDB now has support for catch syscall on remote Linux targets, 1081 currently enabled on x86/x86_64 architectures. 1082 1083set remote catch-syscall-packet 1084show remote catch-syscall-packet 1085 Set/show the use of the remote catch syscall feature. 1086 1087* MI changes 1088 1089 ** The -var-set-format command now accepts the zero-hexadecimal 1090 format. It outputs data in hexadecimal format with zero-padding on the 1091 left. 1092 1093* Python Scripting 1094 1095 ** gdb.InferiorThread objects have a new attribute "global_num", 1096 which refers to the thread's global thread ID. The existing 1097 "num" attribute now refers to the thread's per-inferior number. 1098 See "Per-inferior thread numbers" above. 1099 ** gdb.InferiorThread objects have a new attribute "inferior", which 1100 is the Inferior object the thread belongs to. 1101 1102*** Changes in GDB 7.10 1103 1104* Support for process record-replay and reverse debugging on aarch64*-linux* 1105 targets has been added. GDB now supports recording of A64 instruction set 1106 including advance SIMD instructions. 1107 1108* Support for Sun's version of the "stabs" debug file format has been removed. 1109 1110* GDB now honors the content of the file /proc/PID/coredump_filter 1111 (PID is the process ID) on GNU/Linux systems. This file can be used 1112 to specify the types of memory mappings that will be included in a 1113 corefile. For more information, please refer to the manual page of 1114 "core(5)". GDB also has a new command: "set use-coredump-filter 1115 on|off". It allows to set whether GDB will read the content of the 1116 /proc/PID/coredump_filter file when generating a corefile. 1117 1118* The "info os" command on GNU/Linux can now display information on 1119 cpu information : 1120 "info os cpus" Listing of all cpus/cores on the system 1121 1122* GDB has two new commands: "set serial parity odd|even|none" and 1123 "show serial parity". These allows to set or show parity for the 1124 remote serial I/O. 1125 1126* The "info source" command now displays the producer string if it was 1127 present in the debug info. This typically includes the compiler version 1128 and may include things like its command line arguments. 1129 1130* The "info dll", an alias of the "info sharedlibrary" command, 1131 is now available on all platforms. 1132 1133* Directory names supplied to the "set sysroot" commands may be 1134 prefixed with "target:" to tell GDB to access shared libraries from 1135 the target system, be it local or remote. This replaces the prefix 1136 "remote:". The default sysroot has been changed from "" to 1137 "target:". "remote:" is automatically converted to "target:" for 1138 backward compatibility. 1139 1140* The system root specified by "set sysroot" will be prepended to the 1141 filename of the main executable (if reported to GDB as absolute by 1142 the operating system) when starting processes remotely, and when 1143 attaching to already-running local or remote processes. 1144 1145* GDB now supports automatic location and retrieval of executable 1146 files from remote targets. Remote debugging can now be initiated 1147 using only a "target remote" or "target extended-remote" command 1148 (no "set sysroot" or "file" commands are required). See "New remote 1149 packets" below. 1150 1151* The "dump" command now supports verilog hex format. 1152 1153* GDB now supports the vector ABI on S/390 GNU/Linux targets. 1154 1155* On GNU/Linux, GDB and gdbserver are now able to access executable 1156 and shared library files without a "set sysroot" command when 1157 attaching to processes running in different mount namespaces from 1158 the debugger. This makes it possible to attach to processes in 1159 containers as simply as "gdb -p PID" or "gdbserver --attach PID". 1160 See "New remote packets" below. 1161 1162* The "tui reg" command now provides completion for all of the 1163 available register groups, including target specific groups. 1164 1165* The HISTSIZE environment variable is no longer read when determining 1166 the size of GDB's command history. GDB now instead reads the dedicated 1167 GDBHISTSIZE environment variable. Setting GDBHISTSIZE to "-1" or to "" now 1168 disables truncation of command history. Non-numeric values of GDBHISTSIZE 1169 are ignored. 1170 1171* Guile Scripting 1172 1173 ** Memory ports can now be unbuffered. 1174 1175* Python Scripting 1176 1177 ** gdb.Objfile objects have a new attribute "username", 1178 which is the name of the objfile as specified by the user, 1179 without, for example, resolving symlinks. 1180 ** You can now write frame unwinders in Python. 1181 ** gdb.Type objects have a new method "optimized_out", 1182 returning optimized out gdb.Value instance of this type. 1183 ** gdb.Value objects have new methods "reference_value" and 1184 "const_value" which return a reference to the value and a 1185 "const" version of the value respectively. 1186 1187* New commands 1188 1189maint print symbol-cache 1190 Print the contents of the symbol cache. 1191 1192maint print symbol-cache-statistics 1193 Print statistics of symbol cache usage. 1194 1195maint flush-symbol-cache 1196 Flush the contents of the symbol cache. 1197 1198record btrace bts 1199record bts 1200 Start branch trace recording using Branch Trace Store (BTS) format. 1201 1202compile print 1203 Evaluate expression by using the compiler and print result. 1204 1205tui enable 1206tui disable 1207 Explicit commands for enabling and disabling tui mode. 1208 1209show mpx bound 1210set mpx bound on i386 and amd64 1211 Support for bound table investigation on Intel MPX enabled applications. 1212 1213record btrace pt 1214record pt 1215 Start branch trace recording using Intel Processor Trace format. 1216 1217maint info btrace 1218 Print information about branch tracing internals. 1219 1220maint btrace packet-history 1221 Print the raw branch tracing data. 1222 1223maint btrace clear-packet-history 1224 Discard the stored raw branch tracing data. 1225 1226maint btrace clear 1227 Discard all branch tracing data. It will be fetched and processed 1228 anew by the next "record" command. 1229 1230* New options 1231 1232set debug dwarf-die 1233 Renamed from "set debug dwarf2-die". 1234show debug dwarf-die 1235 Renamed from "show debug dwarf2-die". 1236 1237set debug dwarf-read 1238 Renamed from "set debug dwarf2-read". 1239show debug dwarf-read 1240 Renamed from "show debug dwarf2-read". 1241 1242maint set dwarf always-disassemble 1243 Renamed from "maint set dwarf2 always-disassemble". 1244maint show dwarf always-disassemble 1245 Renamed from "maint show dwarf2 always-disassemble". 1246 1247maint set dwarf max-cache-age 1248 Renamed from "maint set dwarf2 max-cache-age". 1249maint show dwarf max-cache-age 1250 Renamed from "maint show dwarf2 max-cache-age". 1251 1252set debug dwarf-line 1253show debug dwarf-line 1254 Control display of debugging info regarding DWARF line processing. 1255 1256set max-completions 1257show max-completions 1258 Set the maximum number of candidates to be considered during 1259 completion. The default value is 200. This limit allows GDB 1260 to avoid generating large completion lists, the computation of 1261 which can cause the debugger to become temporarily unresponsive. 1262 1263set history remove-duplicates 1264show history remove-duplicates 1265 Control the removal of duplicate history entries. 1266 1267maint set symbol-cache-size 1268maint show symbol-cache-size 1269 Control the size of the symbol cache. 1270 1271set|show record btrace bts buffer-size 1272 Set and show the size of the ring buffer used for branch tracing in 1273 BTS format. 1274 The obtained size may differ from the requested size. Use "info 1275 record" to see the obtained buffer size. 1276 1277set debug linux-namespaces 1278show debug linux-namespaces 1279 Control display of debugging info regarding Linux namespaces. 1280 1281set|show record btrace pt buffer-size 1282 Set and show the size of the ring buffer used for branch tracing in 1283 Intel Processor Trace format. 1284 The obtained size may differ from the requested size. Use "info 1285 record" to see the obtained buffer size. 1286 1287maint set|show btrace pt skip-pad 1288 Set and show whether PAD packets are skipped when computing the 1289 packet history. 1290 1291* The command 'thread apply all' can now support new option '-ascending' 1292 to call its specified command for all threads in ascending order. 1293 1294* Python/Guile scripting 1295 1296 ** GDB now supports auto-loading of Python/Guile scripts contained in the 1297 special section named `.debug_gdb_scripts'. 1298 1299* New remote packets 1300 1301qXfer:btrace-conf:read 1302 Return the branch trace configuration for the current thread. 1303 1304Qbtrace-conf:bts:size 1305 Set the requested ring buffer size for branch tracing in BTS format. 1306 1307Qbtrace:pt 1308 Enable Intel Procesor Trace-based branch tracing for the current 1309 process. The remote stub reports support for this packet to GDB's 1310 qSupported query. 1311 1312Qbtrace-conf:pt:size 1313 Set the requested ring buffer size for branch tracing in Intel Processor 1314 Trace format. 1315 1316swbreak stop reason 1317 Indicates a memory breakpoint instruction was executed, irrespective 1318 of whether it was GDB that planted the breakpoint or the breakpoint 1319 is hardcoded in the program. This is required for correct non-stop 1320 mode operation. 1321 1322hwbreak stop reason 1323 Indicates the target stopped for a hardware breakpoint. This is 1324 required for correct non-stop mode operation. 1325 1326vFile:fstat: 1327 Return information about files on the remote system. 1328 1329qXfer:exec-file:read 1330 Return the full absolute name of the file that was executed to 1331 create a process running on the remote system. 1332 1333vFile:setfs: 1334 Select the filesystem on which vFile: operations with filename 1335 arguments will operate. This is required for GDB to be able to 1336 access files on remote targets where the remote stub does not 1337 share a common filesystem with the inferior(s). 1338 1339fork stop reason 1340 Indicates that a fork system call was executed. 1341 1342vfork stop reason 1343 Indicates that a vfork system call was executed. 1344 1345vforkdone stop reason 1346 Indicates that a vfork child of the specified process has executed 1347 an exec or exit, allowing the vfork parent to resume execution. 1348 1349fork-events and vfork-events features in qSupported 1350 The qSupported packet allows GDB to request support for fork and 1351 vfork events using new 'gdbfeatures' fork-events and vfork-events, 1352 and the qSupported response can contain the corresponding 1353 'stubfeatures'. Set and show commands can be used to display 1354 whether these features are enabled. 1355 1356* Extended-remote fork events 1357 1358 ** GDB now has support for fork events on extended-remote Linux 1359 targets. For targets with Linux kernels 2.5.60 and later, this 1360 enables follow-fork-mode and detach-on-fork for both fork and 1361 vfork, as well as fork and vfork catchpoints. 1362 1363* The info record command now shows the recording format and the 1364 branch tracing configuration for the current thread when using 1365 the btrace record target. 1366 For the BTS format, it shows the ring buffer size. 1367 1368* GDB now has support for DTrace USDT (Userland Static Defined 1369 Tracing) probes. The supported targets are x86_64-*-linux-gnu. 1370 1371* GDB now supports access to vector registers on S/390 GNU/Linux 1372 targets. 1373 1374* Removed command line options 1375 1376-xdb HP-UX XDB compatibility mode. 1377 1378* Removed targets and native configurations 1379 1380HP/PA running HP-UX hppa*-*-hpux* 1381Itanium running HP-UX ia64-*-hpux* 1382 1383* New configure options 1384 1385--with-intel-pt 1386 This configure option allows the user to build GDB with support for 1387 Intel Processor Trace (default: auto). This requires libipt. 1388 1389--with-libipt-prefix=PATH 1390 Specify the path to the version of libipt that GDB should use. 1391 $PATH/include should contain the intel-pt.h header and 1392 $PATH/lib should contain the libipt.so library. 1393 1394*** Changes in GDB 7.9.1 1395 1396* Python Scripting 1397 1398 ** Xmethods can now specify a result type. 1399 1400*** Changes in GDB 7.9 1401 1402* GDB now supports hardware watchpoints on x86 GNU Hurd. 1403 1404* Python Scripting 1405 1406 ** You can now access frame registers from Python scripts. 1407 ** New attribute 'producer' for gdb.Symtab objects. 1408 ** gdb.Objfile objects have a new attribute "progspace", 1409 which is the gdb.Progspace object of the containing program space. 1410 ** gdb.Objfile objects have a new attribute "owner". 1411 ** gdb.Objfile objects have a new attribute "build_id", 1412 which is the build ID generated when the file was built. 1413 ** gdb.Objfile objects have a new method "add_separate_debug_file". 1414 ** A new event "gdb.clear_objfiles" has been added, triggered when 1415 selecting a new file to debug. 1416 ** You can now add attributes to gdb.Objfile and gdb.Progspace objects. 1417 ** New function gdb.lookup_objfile. 1418 1419 New events which are triggered when GDB modifies the state of the 1420 inferior. 1421 1422 ** gdb.events.inferior_call_pre: Function call is about to be made. 1423 ** gdb.events.inferior_call_post: Function call has just been made. 1424 ** gdb.events.memory_changed: A memory location has been altered. 1425 ** gdb.events.register_changed: A register has been altered. 1426 1427* New Python-based convenience functions: 1428 1429 ** $_caller_is(name [, number_of_frames]) 1430 ** $_caller_matches(regexp [, number_of_frames]) 1431 ** $_any_caller_is(name [, number_of_frames]) 1432 ** $_any_caller_matches(regexp [, number_of_frames]) 1433 1434* GDB now supports the compilation and injection of source code into 1435 the inferior. GDB will use GCC 5.0 or higher built with libcc1.so 1436 to compile the source code to object code, and if successful, inject 1437 and execute that code within the current context of the inferior. 1438 Currently the C language is supported. The commands used to 1439 interface with this new feature are: 1440 1441 compile code [-raw|-r] [--] [source code] 1442 compile file [-raw|-r] filename 1443 1444* New commands 1445 1446demangle [-l language] [--] name 1447 Demangle "name" in the specified language, or the current language 1448 if elided. This command is renamed from the "maint demangle" command. 1449 The latter is kept as a no-op to avoid "maint demangle" being interpreted 1450 as "maint demangler-warning". 1451 1452queue-signal signal-name-or-number 1453 Queue a signal to be delivered to the thread when it is resumed. 1454 1455add-auto-load-scripts-directory directory 1456 Add entries to the list of directories from which to load auto-loaded 1457 scripts. 1458 1459maint print user-registers 1460 List all currently available "user" registers. 1461 1462compile code [-r|-raw] [--] [source code] 1463 Compile, inject, and execute in the inferior the executable object 1464 code produced by compiling the provided source code. 1465 1466compile file [-r|-raw] filename 1467 Compile and inject into the inferior the executable object code 1468 produced by compiling the source code stored in the filename 1469 provided. 1470 1471* On resume, GDB now always passes the signal the program had stopped 1472 for to the thread the signal was sent to, even if the user changed 1473 threads before resuming. Previously GDB would often (but not 1474 always) deliver the signal to the thread that happens to be current 1475 at resume time. 1476 1477* Conversely, the "signal" command now consistently delivers the 1478 requested signal to the current thread. GDB now asks for 1479 confirmation if the program had stopped for a signal and the user 1480 switched threads meanwhile. 1481 1482* "breakpoint always-inserted" modes "off" and "auto" merged. 1483 1484 Now, when 'breakpoint always-inserted mode' is set to "off", GDB 1485 won't remove breakpoints from the target until all threads stop, 1486 even in non-stop mode. The "auto" mode has been removed, and "off" 1487 is now the default mode. 1488 1489* New options 1490 1491set debug symbol-lookup 1492show debug symbol-lookup 1493 Control display of debugging info regarding symbol lookup. 1494 1495* MI changes 1496 1497 ** The -list-thread-groups command outputs an exit-code field for 1498 inferiors that have exited. 1499 1500* New targets 1501 1502MIPS SDE mips*-sde*-elf* 1503 1504* Removed targets 1505 1506Support for these obsolete configurations has been removed. 1507 1508Alpha running OSF/1 (or Tru64) alpha*-*-osf* 1509SGI Irix-5.x mips-*-irix5* 1510SGI Irix-6.x mips-*-irix6* 1511VAX running (4.2 - 4.3 Reno) BSD vax-*-bsd* 1512VAX running Ultrix vax-*-ultrix* 1513 1514* The "dll-symbols" command, and its two aliases ("add-shared-symbol-files" 1515 and "assf"), have been removed. Use the "sharedlibrary" command, or 1516 its alias "share", instead. 1517 1518*** Changes in GDB 7.8 1519 1520* New command line options 1521 1522-D data-directory 1523 This is an alias for the --data-directory option. 1524 1525* GDB supports printing and modifying of variable length automatic arrays 1526 as specified in ISO C99. 1527 1528* The ARM simulator now supports instruction level tracing 1529 with or without disassembly. 1530 1531* Guile scripting 1532 1533 GDB now has support for scripting using Guile. Whether this is 1534 available is determined at configure time. 1535 Guile version 2.0 or greater is required. 1536 Guile version 2.0.9 is well tested, earlier 2.0 versions are not. 1537 1538* New commands (for set/show, see "New options" below) 1539 1540guile [code] 1541gu [code] 1542 Invoke CODE by passing it to the Guile interpreter. 1543 1544guile-repl 1545gr 1546 Start a Guile interactive prompt (or "repl" for "read-eval-print loop"). 1547 1548info auto-load guile-scripts [regexp] 1549 Print the list of automatically loaded Guile scripts. 1550 1551* The source command is now capable of sourcing Guile scripts. 1552 This feature is dependent on the debugger being built with Guile support. 1553 1554* New options 1555 1556set print symbol-loading (off|brief|full) 1557show print symbol-loading 1558 Control whether to print informational messages when loading symbol 1559 information for a file. The default is "full", but when debugging 1560 programs with large numbers of shared libraries the amount of output 1561 becomes less useful. 1562 1563set guile print-stack (none|message|full) 1564show guile print-stack 1565 Show a stack trace when an error is encountered in a Guile script. 1566 1567set auto-load guile-scripts (on|off) 1568show auto-load guile-scripts 1569 Control auto-loading of Guile script files. 1570 1571maint ada set ignore-descriptive-types (on|off) 1572maint ada show ignore-descriptive-types 1573 Control whether the debugger should ignore descriptive types in Ada 1574 programs. The default is not to ignore the descriptive types. See 1575 the user manual for more details on descriptive types and the intended 1576 usage of this option. 1577 1578set auto-connect-native-target 1579 1580 Control whether GDB is allowed to automatically connect to the 1581 native target for the run, attach, etc. commands when not connected 1582 to any target yet. See also "target native" below. 1583 1584set record btrace replay-memory-access (read-only|read-write) 1585show record btrace replay-memory-access 1586 Control what memory accesses are allowed during replay. 1587 1588maint set target-async (on|off) 1589maint show target-async 1590 This controls whether GDB targets operate in synchronous or 1591 asynchronous mode. Normally the default is asynchronous, if it is 1592 available; but this can be changed to more easily debug problems 1593 occurring only in synchronous mode. 1594 1595set mi-async (on|off) 1596show mi-async 1597 Control whether MI asynchronous mode is preferred. This supersedes 1598 "set target-async" of previous GDB versions. 1599 1600* "set target-async" is deprecated as a CLI option and is now an alias 1601 for "set mi-async" (only puts MI into async mode). 1602 1603* Background execution commands (e.g., "c&", "s&", etc.) are now 1604 possible ``out of the box'' if the target supports them. Previously 1605 the user would need to explicitly enable the possibility with the 1606 "set target-async on" command. 1607 1608* New features in the GDB remote stub, GDBserver 1609 1610 ** New option --debug-format=option1[,option2,...] allows one to add 1611 additional text to each output. At present only timestamps 1612 are supported: --debug-format=timestamps. 1613 Timestamps can also be turned on with the 1614 "monitor set debug-format timestamps" command from GDB. 1615 1616* The 'record instruction-history' command now starts counting instructions 1617 at one. This also affects the instruction ranges reported by the 1618 'record function-call-history' command when given the /i modifier. 1619 1620* The command 'record function-call-history' supports a new modifier '/c' to 1621 indent the function names based on their call stack depth. 1622 The fields for the '/i' and '/l' modifier have been reordered. 1623 The source line range is now prefixed with 'at'. 1624 The instruction range is now prefixed with 'inst'. 1625 Both ranges are now printed as '<from>, <to>' to allow copy&paste to the 1626 "record instruction-history" and "list" commands. 1627 1628* The ranges given as arguments to the 'record function-call-history' and 1629 'record instruction-history' commands are now inclusive. 1630 1631* The btrace record target now supports the 'record goto' command. 1632 For locations inside the execution trace, the back trace is computed 1633 based on the information stored in the execution trace. 1634 1635* The btrace record target supports limited reverse execution and replay. 1636 The target does not record data and therefore does not allow reading 1637 memory or registers. 1638 1639* The "catch syscall" command now works on s390*-linux* targets. 1640 1641* The "compare-sections" command is no longer specific to target 1642 remote. It now works with all targets. 1643 1644* All native targets are now consistently called "native". 1645 Consequently, the "target child", "target GNU", "target djgpp", 1646 "target procfs" (Solaris/Irix/OSF/AIX) and "target darwin-child" 1647 commands have been replaced with "target native". The QNX/NTO port 1648 leaves the "procfs" target in place and adds a "native" target for 1649 consistency with other ports. The impact on users should be minimal 1650 as these commands previously either throwed an error, or were 1651 no-ops. The target's name is visible in the output of the following 1652 commands: "help target", "info target", "info files", "maint print 1653 target-stack". 1654 1655* The "target native" command now connects to the native target. This 1656 can be used to launch native programs even when "set 1657 auto-connect-native-target" is set to off. 1658 1659* GDB now supports access to Intel MPX registers on GNU/Linux. 1660 1661* Support for Intel AVX-512 registers on GNU/Linux. 1662 Support displaying and modifying Intel AVX-512 registers 1663 $zmm0 - $zmm31 and $k0 - $k7 on GNU/Linux. 1664 1665* New remote packets 1666 1667qXfer:btrace:read's annex 1668 The qXfer:btrace:read packet supports a new annex 'delta' to read 1669 branch trace incrementally. 1670 1671* Python Scripting 1672 1673 ** Valid Python operations on gdb.Value objects representing 1674 structs/classes invoke the corresponding overloaded operators if 1675 available. 1676 ** New `Xmethods' feature in the Python API. Xmethods are 1677 additional methods or replacements for existing methods of a C++ 1678 class. This feature is useful for those cases where a method 1679 defined in C++ source code could be inlined or optimized out by 1680 the compiler, making it unavailable to GDB. 1681 1682* New targets 1683PowerPC64 GNU/Linux little-endian powerpc64le-*-linux* 1684 1685* The "dll-symbols" command, and its two aliases ("add-shared-symbol-files" 1686 and "assf"), have been deprecated. Use the "sharedlibrary" command, or 1687 its alias "share", instead. 1688 1689* The commands "set remotebaud" and "show remotebaud" are no longer 1690 supported. Use "set serial baud" and "show serial baud" (respectively) 1691 instead. 1692 1693* MI changes 1694 1695 ** A new option "-gdb-set mi-async" replaces "-gdb-set 1696 target-async". The latter is left as a deprecated alias of the 1697 former for backward compatibility. If the target supports it, 1698 CLI background execution commands are now always possible by 1699 default, independently of whether the frontend stated a 1700 preference for asynchronous execution with "-gdb-set mi-async". 1701 Previously "-gdb-set target-async off" affected both MI execution 1702 commands and CLI execution commands. 1703 1704*** Changes in GDB 7.7 1705 1706* Improved support for process record-replay and reverse debugging on 1707 arm*-linux* targets. Support for thumb32 and syscall instruction 1708 recording has been added. 1709 1710* GDB now supports SystemTap SDT probes on AArch64 GNU/Linux. 1711 1712* GDB now supports Fission DWP file format version 2. 1713 http://gcc.gnu.org/wiki/DebugFission 1714 1715* New convenience function "$_isvoid", to check whether an expression 1716 is void. A void expression is an expression where the type of the 1717 result is "void". For example, some convenience variables may be 1718 "void" when evaluated (e.g., "$_exitcode" before the execution of 1719 the program being debugged; or an undefined convenience variable). 1720 Another example, when calling a function whose return type is 1721 "void". 1722 1723* The "maintenance print objfiles" command now takes an optional regexp. 1724 1725* The "catch syscall" command now works on arm*-linux* targets. 1726 1727* GDB now consistently shows "<not saved>" when printing values of 1728 registers the debug info indicates have not been saved in the frame 1729 and there's nowhere to retrieve them from 1730 (callee-saved/call-clobbered registers): 1731 1732 (gdb) p $rax 1733 $1 = <not saved> 1734 1735 (gdb) info registers rax 1736 rax <not saved> 1737 1738 Before, the former would print "<optimized out>", and the latter 1739 "*value not available*". 1740 1741* New script contrib/gdb-add-index.sh for adding .gdb_index sections 1742 to binaries. 1743 1744* Python scripting 1745 1746 ** Frame filters and frame decorators have been added. 1747 ** Temporary breakpoints are now supported. 1748 ** Line tables representation has been added. 1749 ** New attribute 'parent_type' for gdb.Field objects. 1750 ** gdb.Field objects can be used as subscripts on gdb.Value objects. 1751 ** New attribute 'name' for gdb.Type objects. 1752 1753* New targets 1754 1755Nios II ELF nios2*-*-elf 1756Nios II GNU/Linux nios2*-*-linux 1757Texas Instruments MSP430 msp430*-*-elf 1758 1759* Removed native configurations 1760 1761Support for these a.out NetBSD and OpenBSD obsolete configurations has 1762been removed. ELF variants of these configurations are kept supported. 1763 1764arm*-*-netbsd* but arm*-*-netbsdelf* is kept supported. 1765i[34567]86-*-netbsd* but i[34567]86-*-netbsdelf* is kept supported. 1766i[34567]86-*-openbsd[0-2].* but i[34567]86-*-openbsd* is kept supported. 1767i[34567]86-*-openbsd3.[0-3] 1768m68*-*-netbsd* but m68*-*-netbsdelf* is kept supported. 1769sparc-*-netbsd* but sparc-*-netbsdelf* is kept supported. 1770vax-*-netbsd* but vax-*-netbsdelf* is kept supported. 1771 1772* New commands: 1773catch rethrow 1774 Like "catch throw", but catches a re-thrown exception. 1775maint check-psymtabs 1776 Renamed from old "maint check-symtabs". 1777maint check-symtabs 1778 Perform consistency checks on symtabs. 1779maint expand-symtabs 1780 Expand symtabs matching an optional regexp. 1781 1782show configuration 1783 Display the details of GDB configure-time options. 1784 1785maint set|show per-command 1786maint set|show per-command space 1787maint set|show per-command time 1788maint set|show per-command symtab 1789 Enable display of per-command gdb resource usage. 1790 1791remove-symbol-file FILENAME 1792remove-symbol-file -a ADDRESS 1793 Remove a symbol file added via add-symbol-file. The file to remove 1794 can be identified by its filename or by an address that lies within 1795 the boundaries of this symbol file in memory. 1796 1797info exceptions 1798info exceptions REGEXP 1799 Display the list of Ada exceptions defined in the program being 1800 debugged. If provided, only the exceptions whose names match REGEXP 1801 are listed. 1802 1803* New options 1804 1805set debug symfile off|on 1806show debug symfile 1807 Control display of debugging info regarding reading symbol files and 1808 symbol tables within those files 1809 1810set print raw frame-arguments 1811show print raw frame-arguments 1812 Set/show whether to print frame arguments in raw mode, 1813 disregarding any defined pretty-printers. 1814 1815set remote trace-status-packet 1816show remote trace-status-packet 1817 Set/show the use of remote protocol qTStatus packet. 1818 1819set debug nios2 1820show debug nios2 1821 Control display of debugging messages related to Nios II targets. 1822 1823set range-stepping 1824show range-stepping 1825 Control whether target-assisted range stepping is enabled. 1826 1827set startup-with-shell 1828show startup-with-shell 1829 Specifies whether Unix child processes are started via a shell or 1830 directly. 1831 1832set code-cache 1833show code-cache 1834 Use the target memory cache for accesses to the code segment. This 1835 improves performance of remote debugging (particularly disassembly). 1836 1837* You can now use a literal value 'unlimited' for options that 1838 interpret 0 or -1 as meaning "unlimited". E.g., "set 1839 trace-buffer-size unlimited" is now an alias for "set 1840 trace-buffer-size -1" and "set height unlimited" is now an alias for 1841 "set height 0". 1842 1843* The "set debug symtab-create" debugging option of GDB has been changed to 1844 accept a verbosity level. 0 means "off", 1 provides basic debugging 1845 output, and values of 2 or greater provides more verbose output. 1846 1847* New command-line options 1848--configuration 1849 Display the details of GDB configure-time options. 1850 1851* The command 'tsave' can now support new option '-ctf' to save trace 1852 buffer in Common Trace Format. 1853 1854* Newly installed $prefix/bin/gcore acts as a shell interface for the 1855 GDB command gcore. 1856 1857* GDB now implements the the C++ 'typeid' operator. 1858 1859* The new convenience variable $_exception holds the exception being 1860 thrown or caught at an exception-related catchpoint. 1861 1862* The exception-related catchpoints, like "catch throw", now accept a 1863 regular expression which can be used to filter exceptions by type. 1864 1865* The new convenience variable $_exitsignal is automatically set to 1866 the terminating signal number when the program being debugged dies 1867 due to an uncaught signal. 1868 1869* MI changes 1870 1871 ** All MI commands now accept an optional "--language" option. 1872 Support for this feature can be verified by using the "-list-features" 1873 command, which should contain "language-option". 1874 1875 ** The new command -info-gdb-mi-command allows the user to determine 1876 whether a GDB/MI command is supported or not. 1877 1878 ** The "^error" result record returned when trying to execute an undefined 1879 GDB/MI command now provides a variable named "code" whose content is the 1880 "undefined-command" error code. Support for this feature can be verified 1881 by using the "-list-features" command, which should contain 1882 "undefined-command-error-code". 1883 1884 ** The -trace-save MI command can optionally save trace buffer in Common 1885 Trace Format now. 1886 1887 ** The new command -dprintf-insert sets a dynamic printf breakpoint. 1888 1889 ** The command -data-list-register-values now accepts an optional 1890 "--skip-unavailable" option. When used, only the available registers 1891 are displayed. 1892 1893 ** The new command -trace-frame-collected dumps collected variables, 1894 computed expressions, tvars, memory and registers in a traceframe. 1895 1896 ** The commands -stack-list-locals, -stack-list-arguments and 1897 -stack-list-variables now accept an option "--skip-unavailable". 1898 When used, only the available locals or arguments are displayed. 1899 1900 ** The -exec-run command now accepts an optional "--start" option. 1901 When used, the command follows the same semantics as the "start" 1902 command, stopping the program's execution at the start of its 1903 main subprogram. Support for this feature can be verified using 1904 the "-list-features" command, which should contain 1905 "exec-run-start-option". 1906 1907 ** The new commands -catch-assert and -catch-exceptions insert 1908 catchpoints stopping the program when Ada exceptions are raised. 1909 1910 ** The new command -info-ada-exceptions provides the equivalent of 1911 the new "info exceptions" command. 1912 1913* New system-wide configuration scripts 1914 A GDB installation now provides scripts suitable for use as system-wide 1915 configuration scripts for the following systems: 1916 ** ElinOS 1917 ** Wind River Linux 1918 1919* GDB now supports target-assigned range stepping with remote targets. 1920 This improves the performance of stepping source lines by reducing 1921 the number of control packets from/to GDB. See "New remote packets" 1922 below. 1923 1924* GDB now understands the element 'tvar' in the XML traceframe info. 1925 It has the id of the collected trace state variables. 1926 1927* On S/390 targets that provide the transactional-execution feature, 1928 the program interruption transaction diagnostic block (TDB) is now 1929 represented as a number of additional "registers" in GDB. 1930 1931* New remote packets 1932 1933vCont;r 1934 1935 The vCont packet supports a new 'r' action, that tells the remote 1936 stub to step through an address range itself, without GDB 1937 involvemement at each single-step. 1938 1939qXfer:libraries-svr4:read's annex 1940 The previously unused annex of the qXfer:libraries-svr4:read packet 1941 is now used to support passing an argument list. The remote stub 1942 reports support for this argument list to GDB's qSupported query. 1943 The defined arguments are "start" and "prev", used to reduce work 1944 necessary for library list updating, resulting in significant 1945 speedup. 1946 1947* New features in the GDB remote stub, GDBserver 1948 1949 ** GDBserver now supports target-assisted range stepping. Currently 1950 enabled on x86/x86_64 GNU/Linux targets. 1951 1952 ** GDBserver now adds element 'tvar' in the XML in the reply to 1953 'qXfer:traceframe-info:read'. It has the id of the collected 1954 trace state variables. 1955 1956 ** GDBserver now supports hardware watchpoints on the MIPS GNU/Linux 1957 target. 1958 1959* New 'z' formatter for printing and examining memory, this displays the 1960 value as hexadecimal zero padded on the left to the size of the type. 1961 1962* GDB can now use Windows x64 unwinding data. 1963 1964* The "set remotebaud" command has been replaced by "set serial baud". 1965 Similarly, "show remotebaud" has been replaced by "show serial baud". 1966 The "set remotebaud" and "show remotebaud" commands are still available 1967 to provide backward compatibility with older versions of GDB. 1968 1969*** Changes in GDB 7.6 1970 1971* Target record has been renamed to record-full. 1972 Record/replay is now enabled with the "record full" command. 1973 This also affects settings that are associated with full record/replay 1974 that have been moved from "set/show record" to "set/show record full": 1975 1976set|show record full insn-number-max 1977set|show record full stop-at-limit 1978set|show record full memory-query 1979 1980* A new record target "record-btrace" has been added. The new target 1981 uses hardware support to record the control-flow of a process. It 1982 does not support replaying the execution, but it implements the 1983 below new commands for investigating the recorded execution log. 1984 This new recording method can be enabled using: 1985 1986record btrace 1987 1988 The "record-btrace" target is only available on Intel Atom processors 1989 and requires a Linux kernel 2.6.32 or later. 1990 1991* Two new commands have been added for record/replay to give information 1992 about the recorded execution without having to replay the execution. 1993 The commands are only supported by "record btrace". 1994 1995record instruction-history prints the execution history at 1996 instruction granularity 1997 1998record function-call-history prints the execution history at 1999 function granularity 2000 2001* New native configurations 2002 2003ARM AArch64 GNU/Linux aarch64*-*-linux-gnu 2004FreeBSD/powerpc powerpc*-*-freebsd 2005x86_64/Cygwin x86_64-*-cygwin* 2006Tilera TILE-Gx GNU/Linux tilegx*-*-linux-gnu 2007 2008* New targets 2009 2010ARM AArch64 aarch64*-*-elf 2011ARM AArch64 GNU/Linux aarch64*-*-linux 2012Lynx 178 PowerPC powerpc-*-lynx*178 2013x86_64/Cygwin x86_64-*-cygwin* 2014Tilera TILE-Gx GNU/Linux tilegx*-*-linux 2015 2016* If the configured location of system.gdbinit file (as given by the 2017 --with-system-gdbinit option at configure time) is in the 2018 data-directory (as specified by --with-gdb-datadir at configure 2019 time) or in one of its subdirectories, then GDB will look for the 2020 system-wide init file in the directory specified by the 2021 --data-directory command-line option. 2022 2023* New command line options: 2024 2025-nh Disables auto-loading of ~/.gdbinit, but still executes all the 2026 other initialization files, unlike -nx which disables all of them. 2027 2028* Removed command line options 2029 2030-epoch This was used by the gdb mode in Epoch, an ancient fork of 2031 Emacs. 2032 2033* The 'ptype' and 'whatis' commands now accept an argument to control 2034 type formatting. 2035 2036* 'info proc' now works on some core files. 2037 2038* Python scripting 2039 2040 ** Vectors can be created with gdb.Type.vector. 2041 2042 ** Python's atexit.register now works in GDB. 2043 2044 ** Types can be pretty-printed via a Python API. 2045 2046 ** Python 3 is now supported (in addition to Python 2.4 or later) 2047 2048 ** New class gdb.Architecture exposes GDB's internal representation 2049 of architecture in the Python API. 2050 2051 ** New method Frame.architecture returns the gdb.Architecture object 2052 corresponding to the frame's architecture. 2053 2054* New Python-based convenience functions: 2055 2056 ** $_memeq(buf1, buf2, length) 2057 ** $_streq(str1, str2) 2058 ** $_strlen(str) 2059 ** $_regex(str, regex) 2060 2061* The 'cd' command now defaults to using '~' (the home directory) if not 2062 given an argument. 2063 2064* The C++ ABI now defaults to the GNU v3 ABI. This has been the 2065 default for GCC since November 2000. 2066 2067* The command 'forward-search' can now be abbreviated as 'fo'. 2068 2069* The command 'info tracepoints' can now display 'installed on target' 2070 or 'not installed on target' for each non-pending location of tracepoint. 2071 2072* New configure options 2073 2074--enable-libmcheck/--disable-libmcheck 2075 By default, development versions are built with -lmcheck on hosts 2076 that support it, in order to help track memory corruption issues. 2077 Release versions, on the other hand, are built without -lmcheck 2078 by default. The --enable-libmcheck/--disable-libmcheck configure 2079 options allow the user to override that default. 2080--with-babeltrace/--with-babeltrace-include/--with-babeltrace-lib 2081 This configure option allows the user to build GDB with 2082 libbabeltrace using which GDB can read Common Trace Format data. 2083 2084* New commands (for set/show, see "New options" below) 2085 2086catch signal 2087 Catch signals. This is similar to "handle", but allows commands and 2088 conditions to be attached. 2089 2090maint info bfds 2091 List the BFDs known to GDB. 2092 2093python-interactive [command] 2094pi [command] 2095 Start a Python interactive prompt, or evaluate the optional command 2096 and print the result of expressions. 2097 2098py [command] 2099 "py" is a new alias for "python". 2100 2101enable type-printer [name]... 2102disable type-printer [name]... 2103 Enable or disable type printers. 2104 2105* Removed commands 2106 2107 ** For the Renesas Super-H architecture, the "regs" command has been removed 2108 (has been deprecated in GDB 7.5), and "info all-registers" should be used 2109 instead. 2110 2111* New options 2112 2113set print type methods (on|off) 2114show print type methods 2115 Control whether method declarations are displayed by "ptype". 2116 The default is to show them. 2117 2118set print type typedefs (on|off) 2119show print type typedefs 2120 Control whether typedef definitions are displayed by "ptype". 2121 The default is to show them. 2122 2123set filename-display basename|relative|absolute 2124show filename-display 2125 Control the way in which filenames is displayed. 2126 The default is "relative", which preserves previous behavior. 2127 2128set trace-buffer-size 2129show trace-buffer-size 2130 Request target to change the size of trace buffer. 2131 2132set remote trace-buffer-size-packet auto|on|off 2133show remote trace-buffer-size-packet 2134 Control the use of the remote protocol `QTBuffer:size' packet. 2135 2136set debug aarch64 2137show debug aarch64 2138 Control display of debugging messages related to ARM AArch64. 2139 The default is off. 2140 2141set debug coff-pe-read 2142show debug coff-pe-read 2143 Control display of debugging messages related to reading of COFF/PE 2144 exported symbols. 2145 2146set debug mach-o 2147show debug mach-o 2148 Control display of debugging messages related to Mach-O symbols 2149 processing. 2150 2151set debug notification 2152show debug notification 2153 Control display of debugging info for async remote notification. 2154 2155* MI changes 2156 2157 ** Command parameter changes are now notified using new async record 2158 "=cmd-param-changed". 2159 ** Trace frame changes caused by command "tfind" are now notified using 2160 new async record "=traceframe-changed". 2161 ** The creation, deletion and modification of trace state variables 2162 are now notified using new async records "=tsv-created", 2163 "=tsv-deleted" and "=tsv-modified". 2164 ** The start and stop of process record are now notified using new 2165 async record "=record-started" and "=record-stopped". 2166 ** Memory changes are now notified using new async record 2167 "=memory-changed". 2168 ** The data-disassemble command response will include a "fullname" field 2169 containing the absolute file name when source has been requested. 2170 ** New optional parameter COUNT added to the "-data-write-memory-bytes" 2171 command, to allow pattern filling of memory areas. 2172 ** New commands "-catch-load"/"-catch-unload" added for intercepting 2173 library load/unload events. 2174 ** The response to breakpoint commands and breakpoint async records 2175 includes an "installed" field containing a boolean state about each 2176 non-pending tracepoint location is whether installed on target or not. 2177 ** Output of the "-trace-status" command includes a "trace-file" field 2178 containing the name of the trace file being examined. This field is 2179 optional, and only present when examining a trace file. 2180 ** The "fullname" field is now always present along with the "file" field, 2181 even if the file cannot be found by GDB. 2182 2183* GDB now supports the "mini debuginfo" section, .gnu_debugdata. 2184 You must have the LZMA library available when configuring GDB for this 2185 feature to be enabled. For more information, see: 2186 http://fedoraproject.org/wiki/Features/MiniDebugInfo 2187 2188* New remote packets 2189 2190QTBuffer:size 2191 Set the size of trace buffer. The remote stub reports support for this 2192 packet to gdb's qSupported query. 2193 2194Qbtrace:bts 2195 Enable Branch Trace Store (BTS)-based branch tracing for the current 2196 thread. The remote stub reports support for this packet to gdb's 2197 qSupported query. 2198 2199Qbtrace:off 2200 Disable branch tracing for the current thread. The remote stub reports 2201 support for this packet to gdb's qSupported query. 2202 2203qXfer:btrace:read 2204 Read the traced branches for the current thread. The remote stub 2205 reports support for this packet to gdb's qSupported query. 2206 2207*** Changes in GDB 7.5 2208 2209* GDB now supports x32 ABI. Visit <http://sites.google.com/site/x32abi/> 2210 for more x32 ABI info. 2211 2212* GDB now supports access to MIPS DSP registers on Linux targets. 2213 2214* GDB now supports debugging microMIPS binaries. 2215 2216* The "info os" command on GNU/Linux can now display information on 2217 several new classes of objects managed by the operating system: 2218 "info os procgroups" lists process groups 2219 "info os files" lists file descriptors 2220 "info os sockets" lists internet-domain sockets 2221 "info os shm" lists shared-memory regions 2222 "info os semaphores" lists semaphores 2223 "info os msg" lists message queues 2224 "info os modules" lists loaded kernel modules 2225 2226* GDB now has support for SDT (Static Defined Tracing) probes. Currently, 2227 the only implemented backend is for SystemTap probes (<sys/sdt.h>). You 2228 can set a breakpoint using the new "-probe, "-pstap" or "-probe-stap" 2229 options and inspect the probe arguments using the new $_probe_arg family 2230 of convenience variables. You can obtain more information about SystemTap 2231 in <http://sourceware.org/systemtap/>. 2232 2233* GDB now supports reversible debugging on ARM, it allows you to 2234 debug basic ARM and THUMB instructions, and provides 2235 record/replay support. 2236 2237* The option "symbol-reloading" has been deleted as it is no longer used. 2238 2239* Python scripting 2240 2241 ** GDB commands implemented in Python can now be put in command class 2242 "gdb.COMMAND_USER". 2243 2244 ** The "maint set python print-stack on|off" is now deleted. 2245 2246 ** A new class, gdb.printing.FlagEnumerationPrinter, can be used to 2247 apply "flag enum"-style pretty-printing to any enum. 2248 2249 ** gdb.lookup_symbol can now work when there is no current frame. 2250 2251 ** gdb.Symbol now has a 'line' attribute, holding the line number in 2252 the source at which the symbol was defined. 2253 2254 ** gdb.Symbol now has the new attribute 'needs_frame' and the new 2255 method 'value'. The former indicates whether the symbol needs a 2256 frame in order to compute its value, and the latter computes the 2257 symbol's value. 2258 2259 ** A new method 'referenced_value' on gdb.Value objects which can 2260 dereference pointer as well as C++ reference values. 2261 2262 ** New methods 'global_block' and 'static_block' on gdb.Symtab objects 2263 which return the global and static blocks (as gdb.Block objects), 2264 of the underlying symbol table, respectively. 2265 2266 ** New function gdb.find_pc_line which returns the gdb.Symtab_and_line 2267 object associated with a PC value. 2268 2269 ** gdb.Symtab_and_line has new attribute 'last' which holds the end 2270 of the address range occupied by code for the current source line. 2271 2272* Go language support. 2273 GDB now supports debugging programs written in the Go programming 2274 language. 2275 2276* GDBserver now supports stdio connections. 2277 E.g. (gdb) target remote | ssh myhost gdbserver - hello 2278 2279* The binary "gdbtui" can no longer be built or installed. 2280 Use "gdb -tui" instead. 2281 2282* GDB will now print "flag" enums specially. A flag enum is one where 2283 all the enumerator values have no bits in common when pairwise 2284 "and"ed. When printing a value whose type is a flag enum, GDB will 2285 show all the constants, e.g., for enum E { ONE = 1, TWO = 2}: 2286 (gdb) print (enum E) 3 2287 $1 = (ONE | TWO) 2288 2289* The filename part of a linespec will now match trailing components 2290 of a source file name. For example, "break gcc/expr.c:1000" will 2291 now set a breakpoint in build/gcc/expr.c, but not 2292 build/libcpp/expr.c. 2293 2294* The "info proc" and "generate-core-file" commands will now also 2295 work on remote targets connected to GDBserver on Linux. 2296 2297* The command "info catch" has been removed. It has been disabled 2298 since December 2007. 2299 2300* The "catch exception" and "catch assert" commands now accept 2301 a condition at the end of the command, much like the "break" 2302 command does. For instance: 2303 2304 (gdb) catch exception Constraint_Error if Barrier = True 2305 2306 Previously, it was possible to add a condition to such catchpoints, 2307 but it had to be done as a second step, after the catchpoint had been 2308 created, using the "condition" command. 2309 2310* The "info static-tracepoint-marker" command will now also work on 2311 native Linux targets with in-process agent. 2312 2313* GDB can now set breakpoints on inlined functions. 2314 2315* The .gdb_index section has been updated to include symbols for 2316 inlined functions. GDB will ignore older .gdb_index sections by 2317 default, which could cause symbol files to be loaded more slowly 2318 until their .gdb_index sections can be recreated. The new command 2319 "set use-deprecated-index-sections on" will cause GDB to use any older 2320 .gdb_index sections it finds. This will restore performance, but the 2321 ability to set breakpoints on inlined functions will be lost in symbol 2322 files with older .gdb_index sections. 2323 2324 The .gdb_index section has also been updated to record more information 2325 about each symbol. This speeds up the "info variables", "info functions" 2326 and "info types" commands when used with programs having the .gdb_index 2327 section, as well as speeding up debugging with shared libraries using 2328 the .gdb_index section. 2329 2330* Ada support for GDB/MI Variable Objects has been added. 2331 2332* GDB can now support 'breakpoint always-inserted mode' in 'record' 2333 target. 2334 2335* MI changes 2336 2337 ** New command -info-os is the MI equivalent of "info os". 2338 2339 ** Output logs ("set logging" and related) now include MI output. 2340 2341* New commands 2342 2343 ** "set use-deprecated-index-sections on|off" 2344 "show use-deprecated-index-sections on|off" 2345 Controls the use of deprecated .gdb_index sections. 2346 2347 ** "catch load" and "catch unload" can be used to stop when a shared 2348 library is loaded or unloaded, respectively. 2349 2350 ** "enable count" can be used to auto-disable a breakpoint after 2351 several hits. 2352 2353 ** "info vtbl" can be used to show the virtual method tables for 2354 C++ and Java objects. 2355 2356 ** "explore" and its sub commands "explore value" and "explore type" 2357 can be used to recursively explore values and types of 2358 expressions. These commands are available only if GDB is 2359 configured with '--with-python'. 2360 2361 ** "info auto-load" shows status of all kinds of auto-loaded files, 2362 "info auto-load gdb-scripts" shows status of auto-loading GDB canned 2363 sequences of commands files, "info auto-load python-scripts" 2364 shows status of auto-loading Python script files, 2365 "info auto-load local-gdbinit" shows status of loading init file 2366 (.gdbinit) from current directory and "info auto-load libthread-db" shows 2367 status of inferior specific thread debugging shared library loading. 2368 2369 ** "info auto-load-scripts", "set auto-load-scripts on|off" 2370 and "show auto-load-scripts" commands have been deprecated, use their 2371 "info auto-load python-scripts", "set auto-load python-scripts on|off" 2372 and "show auto-load python-scripts" counterparts instead. 2373 2374 ** "dprintf location,format,args..." creates a dynamic printf, which 2375 is basically a breakpoint that does a printf and immediately 2376 resumes your program's execution, so it is like a printf that you 2377 can insert dynamically at runtime instead of at compiletime. 2378 2379 ** "set print symbol" 2380 "show print symbol" 2381 Controls whether GDB attempts to display the symbol, if any, 2382 corresponding to addresses it prints. This defaults to "on", but 2383 you can set it to "off" to restore GDB's previous behavior. 2384 2385* Deprecated commands 2386 2387 ** For the Renesas Super-H architecture, the "regs" command has been 2388 deprecated, and "info all-registers" should be used instead. 2389 2390* New targets 2391 2392Renesas RL78 rl78-*-elf 2393HP OpenVMS ia64 ia64-hp-openvms* 2394 2395* GDBserver supports evaluation of breakpoint conditions. When 2396 support is advertised by GDBserver, GDB may be told to send the 2397 breakpoint conditions in bytecode form to GDBserver. GDBserver 2398 will only report the breakpoint trigger to GDB when its condition 2399 evaluates to true. 2400 2401* New options 2402 2403set mips compression 2404show mips compression 2405 Select the compressed ISA encoding used in functions that have no symbol 2406 information available. The encoding can be set to either of: 2407 mips16 2408 micromips 2409 and is updated automatically from ELF file flags if available. 2410 2411set breakpoint condition-evaluation 2412show breakpoint condition-evaluation 2413 Control whether breakpoint conditions are evaluated by GDB ("host") or by 2414 GDBserver ("target"). Default option "auto" chooses the most efficient 2415 available mode. 2416 This option can improve debugger efficiency depending on the speed of the 2417 target. 2418 2419set auto-load off 2420 Disable auto-loading globally. 2421 2422show auto-load 2423 Show auto-loading setting of all kinds of auto-loaded files. 2424 2425set auto-load gdb-scripts on|off 2426show auto-load gdb-scripts 2427 Control auto-loading of GDB canned sequences of commands files. 2428 2429set auto-load python-scripts on|off 2430show auto-load python-scripts 2431 Control auto-loading of Python script files. 2432 2433set auto-load local-gdbinit on|off 2434show auto-load local-gdbinit 2435 Control loading of init file (.gdbinit) from current directory. 2436 2437set auto-load libthread-db on|off 2438show auto-load libthread-db 2439 Control auto-loading of inferior specific thread debugging shared library. 2440 2441set auto-load scripts-directory <dir1>[:<dir2>...] 2442show auto-load scripts-directory 2443 Set a list of directories from which to load auto-loaded scripts. 2444 Automatically loaded Python scripts and GDB scripts are located in one 2445 of the directories listed by this option. 2446 The delimiter (':' above) may differ according to the host platform. 2447 2448set auto-load safe-path <dir1>[:<dir2>...] 2449show auto-load safe-path 2450 Set a list of directories from which it is safe to auto-load files. 2451 The delimiter (':' above) may differ according to the host platform. 2452 2453set debug auto-load on|off 2454show debug auto-load 2455 Control display of debugging info for auto-loading the files above. 2456 2457set dprintf-style gdb|call|agent 2458show dprintf-style 2459 Control the way in which a dynamic printf is performed; "gdb" 2460 requests a GDB printf command, while "call" causes dprintf to call a 2461 function in the inferior. "agent" requests that the target agent 2462 (such as GDBserver) do the printing. 2463 2464set dprintf-function <expr> 2465show dprintf-function 2466set dprintf-channel <expr> 2467show dprintf-channel 2468 Set the function and optional first argument to the call when using 2469 the "call" style of dynamic printf. 2470 2471set disconnected-dprintf on|off 2472show disconnected-dprintf 2473 Control whether agent-style dynamic printfs continue to be in effect 2474 after GDB disconnects. 2475 2476* New configure options 2477 2478--with-auto-load-dir 2479 Configure default value for the 'set auto-load scripts-directory' 2480 setting above. It defaults to '$debugdir:$datadir/auto-load', 2481 $debugdir representing global debugging info directories (available 2482 via 'show debug-file-directory') and $datadir representing GDB's data 2483 directory (available via 'show data-directory'). 2484 2485--with-auto-load-safe-path 2486 Configure default value for the 'set auto-load safe-path' setting 2487 above. It defaults to the --with-auto-load-dir setting. 2488 2489--without-auto-load-safe-path 2490 Set 'set auto-load safe-path' to '/', effectively disabling this 2491 security feature. 2492 2493* New remote packets 2494 2495z0/z1 conditional breakpoints extension 2496 2497 The z0/z1 breakpoint insertion packets have been extended to carry 2498 a list of conditional expressions over to the remote stub depending on the 2499 condition evaluation mode. The use of this extension can be controlled 2500 via the "set remote conditional-breakpoints-packet" command. 2501 2502QProgramSignals: 2503 2504 Specify the signals which the remote stub may pass to the debugged 2505 program without GDB involvement. 2506 2507* New command line options 2508 2509--init-command=FILE, -ix Like --command, -x but execute it 2510 before loading inferior. 2511--init-eval-command=COMMAND, -iex Like --eval-command=COMMAND, -ex but 2512 execute it before loading inferior. 2513 2514*** Changes in GDB 7.4 2515 2516* GDB now handles ambiguous linespecs more consistently; the existing 2517 FILE:LINE support has been expanded to other types of linespecs. A 2518 breakpoint will now be set on all matching locations in all 2519 inferiors, and locations will be added or removed according to 2520 inferior changes. 2521 2522* GDB now allows you to skip uninteresting functions and files when 2523 stepping with the "skip function" and "skip file" commands. 2524 2525* GDB has two new commands: "set remote hardware-watchpoint-length-limit" 2526 and "show remote hardware-watchpoint-length-limit". These allows to 2527 set or show the maximum length limit (in bytes) of a remote 2528 target hardware watchpoint. 2529 2530 This allows e.g. to use "unlimited" hardware watchpoints with the 2531 gdbserver integrated in Valgrind version >= 3.7.0. Such Valgrind 2532 watchpoints are slower than real hardware watchpoints but are 2533 significantly faster than gdb software watchpoints. 2534 2535* Python scripting 2536 2537 ** The register_pretty_printer function in module gdb.printing now takes 2538 an optional `replace' argument. If True, the new printer replaces any 2539 existing one. 2540 2541 ** The "maint set python print-stack on|off" command has been 2542 deprecated and will be deleted in GDB 7.5. 2543 A new command: "set python print-stack none|full|message" has 2544 replaced it. Additionally, the default for "print-stack" is 2545 now "message", which just prints the error message without 2546 the stack trace. 2547 2548 ** A prompt substitution hook (prompt_hook) is now available to the 2549 Python API. 2550 2551 ** A new Python module, gdb.prompt has been added to the GDB Python 2552 modules library. This module provides functionality for 2553 escape sequences in prompts (used by set/show 2554 extended-prompt). These escape sequences are replaced by their 2555 corresponding value. 2556 2557 ** Python commands and convenience-functions located in 2558 'data-directory'/python/gdb/command and 2559 'data-directory'/python/gdb/function are now automatically loaded 2560 on GDB start-up. 2561 2562 ** Blocks now provide four new attributes. global_block and 2563 static_block will return the global and static blocks 2564 respectively. is_static and is_global are boolean attributes 2565 that indicate if the block is one of those two types. 2566 2567 ** Symbols now provide the "type" attribute, the type of the symbol. 2568 2569 ** The "gdb.breakpoint" function has been deprecated in favor of 2570 "gdb.breakpoints". 2571 2572 ** A new class "gdb.FinishBreakpoint" is provided to catch the return 2573 of a function. This class is based on the "finish" command 2574 available in the CLI. 2575 2576 ** Type objects for struct and union types now allow access to 2577 the fields using standard Python dictionary (mapping) methods. 2578 For example, "some_type['myfield']" now works, as does 2579 "some_type.items()". 2580 2581 ** A new event "gdb.new_objfile" has been added, triggered by loading a 2582 new object file. 2583 2584 ** A new function, "deep_items" has been added to the gdb.types 2585 module in the GDB Python modules library. This function returns 2586 an iterator over the fields of a struct or union type. Unlike 2587 the standard Python "iteritems" method, it will recursively traverse 2588 any anonymous fields. 2589 2590* MI changes 2591 2592 ** "*stopped" events can report several new "reason"s, such as 2593 "solib-event". 2594 2595 ** Breakpoint changes are now notified using new async records, like 2596 "=breakpoint-modified". 2597 2598 ** New command -ada-task-info. 2599 2600* libthread-db-search-path now supports two special values: $sdir and $pdir. 2601 $sdir specifies the default system locations of shared libraries. 2602 $pdir specifies the directory where the libpthread used by the application 2603 lives. 2604 2605 GDB no longer looks in $sdir and $pdir after it has searched the directories 2606 mentioned in libthread-db-search-path. If you want to search those 2607 directories, they must be specified in libthread-db-search-path. 2608 The default value of libthread-db-search-path on GNU/Linux and Solaris 2609 systems is now "$sdir:$pdir". 2610 2611 $pdir is not supported by gdbserver, it is currently ignored. 2612 $sdir is supported by gdbserver. 2613 2614* New configure option --with-iconv-bin. 2615 When using the internationalization support like the one in the GNU C 2616 library, GDB will invoke the "iconv" program to get a list of supported 2617 character sets. If this program lives in a non-standard location, one can 2618 use this option to specify where to find it. 2619 2620* When natively debugging programs on PowerPC BookE processors running 2621 a Linux kernel version 2.6.34 or later, GDB supports masked hardware 2622 watchpoints, which specify a mask in addition to an address to watch. 2623 The mask specifies that some bits of an address (the bits which are 2624 reset in the mask) should be ignored when matching the address accessed 2625 by the inferior against the watchpoint address. See the "PowerPC Embedded" 2626 section in the user manual for more details. 2627 2628* The new option --once causes GDBserver to stop listening for connections once 2629 the first connection is made. The listening port used by GDBserver will 2630 become available after that. 2631 2632* New commands "info macros" and "alias" have been added. 2633 2634* New function parameters suffix @entry specifies value of function parameter 2635 at the time the function got called. Entry values are available only since 2636 gcc version 4.7. 2637 2638* New commands 2639 2640!SHELL COMMAND 2641 "!" is now an alias of the "shell" command. 2642 Note that no space is needed between "!" and SHELL COMMAND. 2643 2644* Changed commands 2645 2646watch EXPRESSION mask MASK_VALUE 2647 The watch command now supports the mask argument which allows creation 2648 of masked watchpoints, if the current architecture supports this feature. 2649 2650info auto-load-scripts [REGEXP] 2651 This command was formerly named "maintenance print section-scripts". 2652 It is now generally useful and is no longer a maintenance-only command. 2653 2654info macro [-all] [--] MACRO 2655 The info macro command has new options `-all' and `--'. The first for 2656 printing all definitions of a macro. The second for explicitly specifying 2657 the end of arguments and the beginning of the macro name in case the macro 2658 name starts with a hyphen. 2659 2660collect[/s] EXPRESSIONS 2661 The tracepoint collect command now takes an optional modifier "/s" 2662 that directs it to dereference pointer-to-character types and 2663 collect the bytes of memory up to a zero byte. The behavior is 2664 similar to what you see when you use the regular print command on a 2665 string. An optional integer following the "/s" sets a bound on the 2666 number of bytes that will be collected. 2667 2668tstart [NOTES] 2669 The trace start command now interprets any supplied arguments as a 2670 note to be recorded with the trace run, with an effect similar to 2671 setting the variable trace-notes. 2672 2673tstop [NOTES] 2674 The trace stop command now interprets any arguments as a note to be 2675 mentioned along with the tstatus report that the trace was stopped 2676 with a command. The effect is similar to setting the variable 2677 trace-stop-notes. 2678 2679* Tracepoints can now be enabled and disabled at any time after a trace 2680 experiment has been started using the standard "enable" and "disable" 2681 commands. It is now possible to start a trace experiment with no enabled 2682 tracepoints; GDB will display a warning, but will allow the experiment to 2683 begin, assuming that tracepoints will be enabled as needed while the trace 2684 is running. 2685 2686* Fast tracepoints on 32-bit x86-architectures can now be placed at 2687 locations with 4-byte instructions, when they were previously 2688 limited to locations with instructions of 5 bytes or longer. 2689 2690* New options 2691 2692set debug dwarf2-read 2693show debug dwarf2-read 2694 Turns on or off display of debugging messages related to reading 2695 DWARF debug info. The default is off. 2696 2697set debug symtab-create 2698show debug symtab-create 2699 Turns on or off display of debugging messages related to symbol table 2700 creation. The default is off. 2701 2702set extended-prompt 2703show extended-prompt 2704 Set the GDB prompt, and allow escape sequences to be inserted to 2705 display miscellaneous information (see 'help set extended-prompt' 2706 for the list of sequences). This prompt (and any information 2707 accessed through the escape sequences) is updated every time the 2708 prompt is displayed. 2709 2710set print entry-values (both|compact|default|if-needed|no|only|preferred) 2711show print entry-values 2712 Set printing of frame argument values at function entry. In some cases 2713 GDB can determine the value of function argument which was passed by the 2714 function caller, even if the value was modified inside the called function. 2715 2716set debug entry-values 2717show debug entry-values 2718 Control display of debugging info for determining frame argument values at 2719 function entry and virtual tail call frames. 2720 2721set basenames-may-differ 2722show basenames-may-differ 2723 Set whether a source file may have multiple base names. 2724 (A "base name" is the name of a file with the directory part removed. 2725 Example: The base name of "/home/user/hello.c" is "hello.c".) 2726 If set, GDB will canonicalize file names (e.g., expand symlinks) 2727 before comparing them. Canonicalization is an expensive operation, 2728 but it allows the same file be known by more than one base name. 2729 If not set (the default), all source files are assumed to have just 2730 one base name, and gdb will do file name comparisons more efficiently. 2731 2732set trace-user 2733show trace-user 2734set trace-notes 2735show trace-notes 2736 Set a user name and notes for the current and any future trace runs. 2737 This is useful for long-running and/or disconnected traces, to 2738 inform others (or yourself) as to who is running the trace, supply 2739 contact information, or otherwise explain what is going on. 2740 2741set trace-stop-notes 2742show trace-stop-notes 2743 Set a note attached to the trace run, that is displayed when the 2744 trace has been stopped by a tstop command. This is useful for 2745 instance as an explanation, if you are stopping a trace run that was 2746 started by someone else. 2747 2748* New remote packets 2749 2750QTEnable 2751 2752 Dynamically enable a tracepoint in a started trace experiment. 2753 2754QTDisable 2755 2756 Dynamically disable a tracepoint in a started trace experiment. 2757 2758QTNotes 2759 2760 Set the user and notes of the trace run. 2761 2762qTP 2763 2764 Query the current status of a tracepoint. 2765 2766qTMinFTPILen 2767 2768 Query the minimum length of instruction at which a fast tracepoint may 2769 be placed. 2770 2771* Dcache size (number of lines) and line-size are now runtime-configurable 2772 via "set dcache line" and "set dcache line-size" commands. 2773 2774* New targets 2775 2776Texas Instruments TMS320C6x tic6x-*-* 2777 2778* New Simulators 2779 2780Renesas RL78 rl78-*-elf 2781 2782*** Changes in GDB 7.3.1 2783 2784* The build failure for NetBSD and OpenBSD targets have now been fixed. 2785 2786*** Changes in GDB 7.3 2787 2788* GDB has a new command: "thread find [REGEXP]". 2789 It finds the thread id whose name, target id, or thread extra info 2790 matches the given regular expression. 2791 2792* The "catch syscall" command now works on mips*-linux* targets. 2793 2794* The -data-disassemble MI command now supports modes 2 and 3 for 2795 dumping the instruction opcodes. 2796 2797* New command line options 2798 2799-data-directory DIR Specify DIR as the "data-directory". 2800 This is mostly for testing purposes. 2801 2802* The "maint set python auto-load on|off" command has been renamed to 2803 "set auto-load-scripts on|off". 2804 2805* GDB has a new command: "set directories". 2806 It is like the "dir" command except that it replaces the 2807 source path list instead of augmenting it. 2808 2809* GDB now understands thread names. 2810 2811 On GNU/Linux, "info threads" will display the thread name as set by 2812 prctl or pthread_setname_np. 2813 2814 There is also a new command, "thread name", which can be used to 2815 assign a name internally for GDB to display. 2816 2817* OpenCL C 2818 Initial support for the OpenCL C language (http://www.khronos.org/opencl) 2819 has been integrated into GDB. 2820 2821* Python scripting 2822 2823 ** The function gdb.Write now accepts an optional keyword 'stream'. 2824 This keyword, when provided, will direct the output to either 2825 stdout, stderr, or GDB's logging output. 2826 2827 ** Parameters can now be be sub-classed in Python, and in particular 2828 you may implement the get_set_doc and get_show_doc functions. 2829 This improves how Parameter set/show documentation is processed 2830 and allows for more dynamic content. 2831 2832 ** Symbols, Symbol Table, Symbol Table and Line, Object Files, 2833 Inferior, Inferior Thread, Blocks, and Block Iterator APIs now 2834 have an is_valid method. 2835 2836 ** Breakpoints can now be sub-classed in Python, and in particular 2837 you may implement a 'stop' function that is executed each time 2838 the inferior reaches that breakpoint. 2839 2840 ** New function gdb.lookup_global_symbol looks up a global symbol. 2841 2842 ** GDB values in Python are now callable if the value represents a 2843 function. For example, if 'some_value' represents a function that 2844 takes two integer parameters and returns a value, you can call 2845 that function like so: 2846 2847 result = some_value (10,20) 2848 2849 ** Module gdb.types has been added. 2850 It contains a collection of utilities for working with gdb.Types objects: 2851 get_basic_type, has_field, make_enum_dict. 2852 2853 ** Module gdb.printing has been added. 2854 It contains utilities for writing and registering pretty-printers. 2855 New classes: PrettyPrinter, SubPrettyPrinter, 2856 RegexpCollectionPrettyPrinter. 2857 New function: register_pretty_printer. 2858 2859 ** New commands "info pretty-printers", "enable pretty-printer" and 2860 "disable pretty-printer" have been added. 2861 2862 ** gdb.parameter("directories") is now available. 2863 2864 ** New function gdb.newest_frame returns the newest frame in the 2865 selected thread. 2866 2867 ** The gdb.InferiorThread class has a new "name" attribute. This 2868 holds the thread's name. 2869 2870 ** Python Support for Inferior events. 2871 Python scripts can add observers to be notified of events 2872 occurring in the process being debugged. 2873 The following events are currently supported: 2874 - gdb.events.cont Continue event. 2875 - gdb.events.exited Inferior exited event. 2876 - gdb.events.stop Signal received, and Breakpoint hit events. 2877 2878* C++ Improvements: 2879 2880 ** GDB now puts template parameters in scope when debugging in an 2881 instantiation. For example, if you have: 2882 2883 template<int X> int func (void) { return X; } 2884 2885 then if you step into func<5>, "print X" will show "5". This 2886 feature requires proper debuginfo support from the compiler; it 2887 was added to GCC 4.5. 2888 2889 ** The motion commands "next", "finish", "until", and "advance" now 2890 work better when exceptions are thrown. In particular, GDB will 2891 no longer lose control of the inferior; instead, the GDB will 2892 stop the inferior at the point at which the exception is caught. 2893 This functionality requires a change in the exception handling 2894 code that was introduced in GCC 4.5. 2895 2896* GDB now follows GCC's rules on accessing volatile objects when 2897 reading or writing target state during expression evaluation. 2898 One notable difference to prior behavior is that "print x = 0" 2899 no longer generates a read of x; the value of the assignment is 2900 now always taken directly from the value being assigned. 2901 2902* GDB now has some support for using labels in the program's source in 2903 linespecs. For instance, you can use "advance label" to continue 2904 execution to a label. 2905 2906* GDB now has support for reading and writing a new .gdb_index 2907 section. This section holds a fast index of DWARF debugging 2908 information and can be used to greatly speed up GDB startup and 2909 operation. See the documentation for `save gdb-index' for details. 2910 2911* The "watch" command now accepts an optional "-location" argument. 2912 When used, this causes GDB to watch the memory referred to by the 2913 expression. Such a watchpoint is never deleted due to it going out 2914 of scope. 2915 2916* GDB now supports thread debugging of core dumps on GNU/Linux. 2917 2918 GDB now activates thread debugging using the libthread_db library 2919 when debugging GNU/Linux core dumps, similarly to when debugging 2920 live processes. As a result, when debugging a core dump file, GDB 2921 is now able to display pthread_t ids of threads. For example, "info 2922 threads" shows the same output as when debugging the process when it 2923 was live. In earlier releases, you'd see something like this: 2924 2925 (gdb) info threads 2926 * 1 LWP 6780 main () at main.c:10 2927 2928 While now you see this: 2929 2930 (gdb) info threads 2931 * 1 Thread 0x7f0f5712a700 (LWP 6780) main () at main.c:10 2932 2933 It is also now possible to inspect TLS variables when debugging core 2934 dumps. 2935 2936 When debugging a core dump generated on a machine other than the one 2937 used to run GDB, you may need to point GDB at the correct 2938 libthread_db library with the "set libthread-db-search-path" 2939 command. See the user manual for more details on this command. 2940 2941* When natively debugging programs on PowerPC BookE processors running 2942 a Linux kernel version 2.6.34 or later, GDB supports ranged breakpoints, 2943 which stop execution of the inferior whenever it executes an instruction 2944 at any address within the specified range. See the "PowerPC Embedded" 2945 section in the user manual for more details. 2946 2947* New features in the GDB remote stub, GDBserver 2948 2949 ** GDBserver is now supported on PowerPC LynxOS (versions 4.x and 5.x), 2950 and i686 LynxOS (version 5.x). 2951 2952 ** GDBserver is now supported on Blackfin Linux. 2953 2954* New native configurations 2955 2956ia64 HP-UX ia64-*-hpux* 2957 2958* New targets: 2959 2960Analog Devices, Inc. Blackfin Processor bfin-* 2961 2962* Ada task switching is now supported on sparc-elf targets when 2963 debugging a program using the Ravenscar Profile. For more information, 2964 see the "Tasking Support when using the Ravenscar Profile" section 2965 in the GDB user manual. 2966 2967* Guile support was removed. 2968 2969* New features in the GNU simulator 2970 2971 ** The --map-info flag lists all known core mappings. 2972 2973 ** CFI flashes may be simulated via the "cfi" device. 2974 2975*** Changes in GDB 7.2 2976 2977* Shared library support for remote targets by default 2978 2979 When GDB is configured for a generic, non-OS specific target, like 2980 for example, --target=arm-eabi or one of the many *-*-elf targets, 2981 GDB now queries remote stubs for loaded shared libraries using the 2982 `qXfer:libraries:read' packet. Previously, shared library support 2983 was always disabled for such configurations. 2984 2985* C++ Improvements: 2986 2987 ** Argument Dependent Lookup (ADL) 2988 2989 In C++ ADL lookup directs function search to the namespaces of its 2990 arguments even if the namespace has not been imported. 2991 For example: 2992 namespace A 2993 { 2994 class B { }; 2995 void foo (B) { } 2996 } 2997 ... 2998 A::B b 2999 foo(b) 3000 Here the compiler will search for `foo' in the namespace of 'b' 3001 and find A::foo. GDB now supports this. This construct is commonly 3002 used in the Standard Template Library for operators. 3003 3004 ** Improved User Defined Operator Support 3005 3006 In addition to member operators, GDB now supports lookup of operators 3007 defined in a namespace and imported with a `using' directive, operators 3008 defined in the global scope, operators imported implicitly from an 3009 anonymous namespace, and the ADL operators mentioned in the previous 3010 entry. 3011 GDB now also supports proper overload resolution for all the previously 3012 mentioned flavors of operators. 3013 3014 ** static const class members 3015 3016 Printing of static const class members that are initialized in the 3017 class definition has been fixed. 3018 3019* Windows Thread Information Block access. 3020 3021 On Windows targets, GDB now supports displaying the Windows Thread 3022 Information Block (TIB) structure. This structure is visible either 3023 by using the new command `info w32 thread-information-block' or, by 3024 dereferencing the new convenience variable named `$_tlb', a 3025 thread-specific pointer to the TIB. This feature is also supported 3026 when remote debugging using GDBserver. 3027 3028* Static tracepoints 3029 3030 Static tracepoints are calls in the user program into a tracing 3031 library. One such library is a port of the LTTng kernel tracer to 3032 userspace --- UST (LTTng Userspace Tracer, http://lttng.org/ust). 3033 When debugging with GDBserver, GDB now supports combining the GDB 3034 tracepoint machinery with such libraries. For example: the user can 3035 use GDB to probe a static tracepoint marker (a call from the user 3036 program into the tracing library) with the new "strace" command (see 3037 "New commands" below). This creates a "static tracepoint" in the 3038 breakpoint list, that can be manipulated with the same feature set 3039 as fast and regular tracepoints. E.g., collect registers, local and 3040 global variables, collect trace state variables, and define 3041 tracepoint conditions. In addition, the user can collect extra 3042 static tracepoint marker specific data, by collecting the new 3043 $_sdata internal variable. When analyzing the trace buffer, you can 3044 inspect $_sdata like any other variable available to GDB. For more 3045 information, see the "Tracepoints" chapter in GDB user manual. New 3046 remote packets have been defined to support static tracepoints, see 3047 the "New remote packets" section below. 3048 3049* Better reconstruction of tracepoints after disconnected tracing 3050 3051 GDB will attempt to download the original source form of tracepoint 3052 definitions when starting a trace run, and then will upload these 3053 upon reconnection to the target, resulting in a more accurate 3054 reconstruction of the tracepoints that are in use on the target. 3055 3056* Observer mode 3057 3058 You can now exercise direct control over the ways that GDB can 3059 affect your program. For instance, you can disallow the setting of 3060 breakpoints, so that the program can run continuously (assuming 3061 non-stop mode). In addition, the "observer" variable is available 3062 to switch all of the different controls; in observer mode, GDB 3063 cannot affect the target's behavior at all, which is useful for 3064 tasks like diagnosing live systems in the field. 3065 3066* The new convenience variable $_thread holds the number of the 3067 current thread. 3068 3069* New remote packets 3070 3071qGetTIBAddr 3072 3073 Return the address of the Windows Thread Information Block of a given thread. 3074 3075qRelocInsn 3076 3077 In response to several of the tracepoint packets, the target may now 3078 also respond with a number of intermediate `qRelocInsn' request 3079 packets before the final result packet, to have GDB handle 3080 relocating an instruction to execute at a different address. This 3081 is particularly useful for stubs that support fast tracepoints. GDB 3082 reports support for this feature in the qSupported packet. 3083 3084qTfSTM, qTsSTM 3085 3086 List static tracepoint markers in the target program. 3087 3088qTSTMat 3089 3090 List static tracepoint markers at a given address in the target 3091 program. 3092 3093qXfer:statictrace:read 3094 3095 Read the static trace data collected (by a `collect $_sdata' 3096 tracepoint action). The remote stub reports support for this packet 3097 to gdb's qSupported query. 3098 3099QAllow 3100 3101 Send the current settings of GDB's permission flags. 3102 3103QTDPsrc 3104 3105 Send part of the source (textual) form of a tracepoint definition, 3106 which includes location, conditional, and action list. 3107 3108* The source command now accepts a -s option to force searching for the 3109 script in the source search path even if the script name specifies 3110 a directory. 3111 3112* New features in the GDB remote stub, GDBserver 3113 3114 - GDBserver now support tracepoints (including fast tracepoints, and 3115 static tracepoints). The feature is currently supported by the 3116 i386-linux and amd64-linux builds. See the "Tracepoints support 3117 in gdbserver" section in the manual for more information. 3118 3119 GDBserver JIT compiles the tracepoint's conditional agent 3120 expression bytecode into native code whenever possible for low 3121 overhead dynamic tracepoints conditionals. For such tracepoints, 3122 an expression that examines program state is evaluated when the 3123 tracepoint is reached, in order to determine whether to capture 3124 trace data. If the condition is simple and false, processing the 3125 tracepoint finishes very quickly and no data is gathered. 3126 3127 GDBserver interfaces with the UST (LTTng Userspace Tracer) library 3128 for static tracepoints support. 3129 3130 - GDBserver now supports x86_64 Windows 64-bit debugging. 3131 3132* GDB now sends xmlRegisters= in qSupported packet to indicate that 3133 it understands register description. 3134 3135* The --batch flag now disables pagination and queries. 3136 3137* X86 general purpose registers 3138 3139 GDB now supports reading/writing byte, word and double-word x86 3140 general purpose registers directly. This means you can use, say, 3141 $ah or $ax to refer, respectively, to the byte register AH and 3142 16-bit word register AX that are actually portions of the 32-bit 3143 register EAX or 64-bit register RAX. 3144 3145* The `commands' command now accepts a range of breakpoints to modify. 3146 A plain `commands' following a command that creates multiple 3147 breakpoints affects all the breakpoints set by that command. This 3148 applies to breakpoints set by `rbreak', and also applies when a 3149 single `break' command creates multiple breakpoints (e.g., 3150 breakpoints on overloaded c++ functions). 3151 3152* The `rbreak' command now accepts a filename specification as part of 3153 its argument, limiting the functions selected by the regex to those 3154 in the specified file. 3155 3156* Support for remote debugging Windows and SymbianOS shared libraries 3157 from Unix hosts has been improved. Non Windows GDB builds now can 3158 understand target reported file names that follow MS-DOS based file 3159 system semantics, such as file names that include drive letters and 3160 use the backslash character as directory separator. This makes it 3161 possible to transparently use the "set sysroot" and "set 3162 solib-search-path" on Unix hosts to point as host copies of the 3163 target's shared libraries. See the new command "set 3164 target-file-system-kind" described below, and the "Commands to 3165 specify files" section in the user manual for more information. 3166 3167* New commands 3168 3169eval template, expressions... 3170 Convert the values of one or more expressions under the control 3171 of the string template to a command line, and call it. 3172 3173set target-file-system-kind unix|dos-based|auto 3174show target-file-system-kind 3175 Set or show the assumed file system kind for target reported file 3176 names. 3177 3178save breakpoints <filename> 3179 Save all current breakpoint definitions to a file suitable for use 3180 in a later debugging session. To read the saved breakpoint 3181 definitions, use the `source' command. 3182 3183`save tracepoints' is a new alias for `save-tracepoints'. The latter 3184is now deprecated. 3185 3186info static-tracepoint-markers 3187 Display information about static tracepoint markers in the target. 3188 3189strace FN | FILE:LINE | *ADDR | -m MARKER_ID 3190 Define a static tracepoint by probing a marker at the given 3191 function, line, address, or marker ID. 3192 3193set observer on|off 3194show observer 3195 Enable and disable observer mode. 3196 3197set may-write-registers on|off 3198set may-write-memory on|off 3199set may-insert-breakpoints on|off 3200set may-insert-tracepoints on|off 3201set may-insert-fast-tracepoints on|off 3202set may-interrupt on|off 3203 Set individual permissions for GDB effects on the target. Note that 3204 some of these settings can have undesirable or surprising 3205 consequences, particularly when changed in the middle of a session. 3206 For instance, disabling the writing of memory can prevent 3207 breakpoints from being inserted, cause single-stepping to fail, or 3208 even crash your program, if you disable after breakpoints have been 3209 inserted. However, GDB should not crash. 3210 3211set record memory-query on|off 3212show record memory-query 3213 Control whether to stop the inferior if memory changes caused 3214 by an instruction cannot be recorded. 3215 3216* Changed commands 3217 3218disassemble 3219 The disassemble command now supports "start,+length" form of two arguments. 3220 3221* Python scripting 3222 3223** GDB now provides a new directory location, called the python directory, 3224 where Python scripts written for GDB can be installed. The location 3225 of that directory is <data-directory>/python, where <data-directory> 3226 is the GDB data directory. For more details, see section `Scripting 3227 GDB using Python' in the manual. 3228 3229** The GDB Python API now has access to breakpoints, symbols, symbol 3230 tables, program spaces, inferiors, threads and frame's code blocks. 3231 Additionally, GDB Parameters can now be created from the API, and 3232 manipulated via set/show in the CLI. 3233 3234** New functions gdb.target_charset, gdb.target_wide_charset, 3235 gdb.progspaces, gdb.current_progspace, and gdb.string_to_argv. 3236 3237** New exception gdb.GdbError. 3238 3239** Pretty-printers are now also looked up in the current program space. 3240 3241** Pretty-printers can now be individually enabled and disabled. 3242 3243** GDB now looks for names of Python scripts to auto-load in a 3244 special section named `.debug_gdb_scripts', in addition to looking 3245 for a OBJFILE-gdb.py script when OBJFILE is read by the debugger. 3246 3247* Tracepoint actions were unified with breakpoint commands. In particular, 3248there are no longer differences in "info break" output for breakpoints and 3249tracepoints and the "commands" command can be used for both tracepoints and 3250regular breakpoints. 3251 3252* New targets 3253 3254ARM Symbian arm*-*-symbianelf* 3255 3256* D language support. 3257 GDB now supports debugging programs written in the D programming 3258 language. 3259 3260* GDB now supports the extended ptrace interface for PowerPC which is 3261 available since Linux kernel version 2.6.34. This automatically enables 3262 any hardware breakpoints and additional hardware watchpoints available in 3263 the processor. The old ptrace interface exposes just one hardware 3264 watchpoint and no hardware breakpoints. 3265 3266* GDB is now able to use the Data Value Compare (DVC) register available on 3267 embedded PowerPC processors to implement in hardware simple watchpoint 3268 conditions of the form: 3269 3270 watch ADDRESS|VARIABLE if ADDRESS|VARIABLE == CONSTANT EXPRESSION 3271 3272 This works in native GDB running on Linux kernels with the extended ptrace 3273 interface mentioned above. 3274 3275*** Changes in GDB 7.1 3276 3277* C++ Improvements 3278 3279 ** Namespace Support 3280 3281 GDB now supports importing of namespaces in C++. This enables the 3282 user to inspect variables from imported namespaces. Support for 3283 namepace aliasing has also been added. So, if a namespace is 3284 aliased in the current scope (e.g. namepace C=A; ) the user can 3285 print variables using the alias (e.g. (gdb) print C::x). 3286 3287 ** Bug Fixes 3288 3289 All known bugs relating to the printing of virtual base class were 3290 fixed. It is now possible to call overloaded static methods using a 3291 qualified name. 3292 3293 ** Cast Operators 3294 3295 The C++ cast operators static_cast<>, dynamic_cast<>, const_cast<>, 3296 and reinterpret_cast<> are now handled by the C++ expression parser. 3297 3298* New targets 3299 3300Xilinx MicroBlaze microblaze-*-* 3301Renesas RX rx-*-elf 3302 3303* New Simulators 3304 3305Xilinx MicroBlaze microblaze 3306Renesas RX rx 3307 3308* Multi-program debugging. 3309 3310 GDB now has support for multi-program (a.k.a. multi-executable or 3311 multi-exec) debugging. This allows for debugging multiple inferiors 3312 simultaneously each running a different program under the same GDB 3313 session. See "Debugging Multiple Inferiors and Programs" in the 3314 manual for more information. This implied some user visible changes 3315 in the multi-inferior support. For example, "info inferiors" now 3316 lists inferiors that are not running yet or that have exited 3317 already. See also "New commands" and "New options" below. 3318 3319* New tracing features 3320 3321 GDB's tracepoint facility now includes several new features: 3322 3323 ** Trace state variables 3324 3325 GDB tracepoints now include support for trace state variables, which 3326 are variables managed by the target agent during a tracing 3327 experiment. They are useful for tracepoints that trigger each 3328 other, so for instance one tracepoint can count hits in a variable, 3329 and then a second tracepoint has a condition that is true when the 3330 count reaches a particular value. Trace state variables share the 3331 $-syntax of GDB convenience variables, and can appear in both 3332 tracepoint actions and condition expressions. Use the "tvariable" 3333 command to create, and "info tvariables" to view; see "Trace State 3334 Variables" in the manual for more detail. 3335 3336 ** Fast tracepoints 3337 3338 GDB now includes an option for defining fast tracepoints, which 3339 targets may implement more efficiently, such as by installing a jump 3340 into the target agent rather than a trap instruction. The resulting 3341 speedup can be by two orders of magnitude or more, although the 3342 tradeoff is that some program locations on some target architectures 3343 might not allow fast tracepoint installation, for instance if the 3344 instruction to be replaced is shorter than the jump. To request a 3345 fast tracepoint, use the "ftrace" command, with syntax identical to 3346 the regular trace command. 3347 3348 ** Disconnected tracing 3349 3350 It is now possible to detach GDB from the target while it is running 3351 a trace experiment, then reconnect later to see how the experiment 3352 is going. In addition, a new variable disconnected-tracing lets you 3353 tell the target agent whether to continue running a trace if the 3354 connection is lost unexpectedly. 3355 3356 ** Trace files 3357 3358 GDB now has the ability to save the trace buffer into a file, and 3359 then use that file as a target, similarly to you can do with 3360 corefiles. You can select trace frames, print data that was 3361 collected in them, and use tstatus to display the state of the 3362 tracing run at the moment that it was saved. To create a trace 3363 file, use "tsave <filename>", and to use it, do "target tfile 3364 <name>". 3365 3366 ** Circular trace buffer 3367 3368 You can ask the target agent to handle the trace buffer as a 3369 circular buffer, discarding the oldest trace frames to make room for 3370 newer ones, by setting circular-trace-buffer to on. This feature may 3371 not be available for all target agents. 3372 3373* Changed commands 3374 3375disassemble 3376 The disassemble command, when invoked with two arguments, now requires 3377 the arguments to be comma-separated. 3378 3379info variables 3380 The info variables command now displays variable definitions. Files 3381 which only declare a variable are not shown. 3382 3383source 3384 The source command is now capable of sourcing Python scripts. 3385 This feature is dependent on the debugger being build with Python 3386 support. 3387 3388 Related to this enhancement is also the introduction of a new command 3389 "set script-extension" (see below). 3390 3391* New commands (for set/show, see "New options" below) 3392 3393record save [<FILENAME>] 3394 Save a file (in core file format) containing the process record 3395 execution log for replay debugging at a later time. 3396 3397record restore <FILENAME> 3398 Restore the process record execution log that was saved at an 3399 earlier time, for replay debugging. 3400 3401add-inferior [-copies <N>] [-exec <FILENAME>] 3402 Add a new inferior. 3403 3404clone-inferior [-copies <N>] [ID] 3405 Make a new inferior ready to execute the same program another 3406 inferior has loaded. 3407 3408remove-inferior ID 3409 Remove an inferior. 3410 3411maint info program-spaces 3412 List the program spaces loaded into GDB. 3413 3414set remote interrupt-sequence [Ctrl-C | BREAK | BREAK-g] 3415show remote interrupt-sequence 3416 Allow the user to select one of ^C, a BREAK signal or BREAK-g 3417 as the sequence to the remote target in order to interrupt the execution. 3418 Ctrl-C is a default. Some system prefers BREAK which is high level of 3419 serial line for some certain time. Linux kernel prefers BREAK-g, a.k.a 3420 Magic SysRq g. It is BREAK signal and character 'g'. 3421 3422set remote interrupt-on-connect [on | off] 3423show remote interrupt-on-connect 3424 When interrupt-on-connect is ON, gdb sends interrupt-sequence to 3425 remote target when gdb connects to it. This is needed when you debug 3426 Linux kernel. 3427 3428set remotebreak [on | off] 3429show remotebreak 3430Deprecated. Use "set/show remote interrupt-sequence" instead. 3431 3432tvariable $NAME [ = EXP ] 3433 Create or modify a trace state variable. 3434 3435info tvariables 3436 List trace state variables and their values. 3437 3438delete tvariable $NAME ... 3439 Delete one or more trace state variables. 3440 3441teval EXPR, ... 3442 Evaluate the given expressions without collecting anything into the 3443 trace buffer. (Valid in tracepoint actions only.) 3444 3445ftrace FN / FILE:LINE / *ADDR 3446 Define a fast tracepoint at the given function, line, or address. 3447 3448* New expression syntax 3449 3450 GDB now parses the 0b prefix of binary numbers the same way as GCC does. 3451 GDB now parses 0b101010 identically with 42. 3452 3453* New options 3454 3455set follow-exec-mode new|same 3456show follow-exec-mode 3457 Control whether GDB reuses the same inferior across an exec call or 3458 creates a new one. This is useful to be able to restart the old 3459 executable after the inferior having done an exec call. 3460 3461set default-collect EXPR, ... 3462show default-collect 3463 Define a list of expressions to be collected at each tracepoint. 3464 This is a useful way to ensure essential items are not overlooked, 3465 such as registers or a critical global variable. 3466 3467set disconnected-tracing 3468show disconnected-tracing 3469 If set to 1, the target is instructed to continue tracing if it 3470 loses its connection to GDB. If 0, the target is to stop tracing 3471 upon disconnection. 3472 3473set circular-trace-buffer 3474show circular-trace-buffer 3475 If set to on, the target is instructed to use a circular trace buffer 3476 and discard the oldest trace frames instead of stopping the trace due 3477 to a full trace buffer. If set to off, the trace stops when the buffer 3478 fills up. Some targets may not support this. 3479 3480set script-extension off|soft|strict 3481show script-extension 3482 If set to "off", the debugger does not perform any script language 3483 recognition, and all sourced files are assumed to be GDB scripts. 3484 If set to "soft" (the default), files are sourced according to 3485 filename extension, falling back to GDB scripts if the first 3486 evaluation failed. 3487 If set to "strict", files are sourced according to filename extension. 3488 3489set ada trust-PAD-over-XVS on|off 3490show ada trust-PAD-over-XVS 3491 If off, activate a workaround against a bug in the debugging information 3492 generated by the compiler for PAD types (see gcc/exp_dbug.ads in 3493 the GCC sources for more information about the GNAT encoding and 3494 PAD types in particular). It is always safe to set this option to 3495 off, but this introduces a slight performance penalty. The default 3496 is on. 3497 3498* Python API Improvements 3499 3500 ** GDB provides the new class gdb.LazyString. This is useful in 3501 some pretty-printing cases. The new method gdb.Value.lazy_string 3502 provides a simple way to create objects of this type. 3503 3504 ** The fields returned by gdb.Type.fields now have an 3505 `is_base_class' attribute. 3506 3507 ** The new method gdb.Type.range returns the range of an array type. 3508 3509 ** The new method gdb.parse_and_eval can be used to parse and 3510 evaluate an expression. 3511 3512* New remote packets 3513 3514QTDV 3515 Define a trace state variable. 3516 3517qTV 3518 Get the current value of a trace state variable. 3519 3520QTDisconnected 3521 Set desired tracing behavior upon disconnection. 3522 3523QTBuffer:circular 3524 Set the trace buffer to be linear or circular. 3525 3526qTfP, qTsP 3527 Get data about the tracepoints currently in use. 3528 3529* Bug fixes 3530 3531Process record now works correctly with hardware watchpoints. 3532 3533Multiple bug fixes have been made to the mips-irix port, making it 3534much more reliable. In particular: 3535 - Debugging threaded applications is now possible again. Previously, 3536 GDB would hang while starting the program, or while waiting for 3537 the program to stop at a breakpoint. 3538 - Attaching to a running process no longer hangs. 3539 - An error occurring while loading a core file has been fixed. 3540 - Changing the value of the PC register now works again. This fixes 3541 problems observed when using the "jump" command, or when calling 3542 a function from GDB, or even when assigning a new value to $pc. 3543 - With the "finish" and "return" commands, the return value for functions 3544 returning a small array is now correctly printed. 3545 - It is now possible to break on shared library code which gets executed 3546 during a shared library init phase (code executed while executing 3547 their .init section). Previously, the breakpoint would have no effect. 3548 - GDB is now able to backtrace through the signal handler for 3549 non-threaded programs. 3550 3551PIE (Position Independent Executable) programs debugging is now supported. 3552This includes debugging execution of PIC (Position Independent Code) shared 3553libraries although for that, it should be possible to run such libraries as an 3554executable program. 3555 3556*** Changes in GDB 7.0 3557 3558* GDB now has an interface for JIT compilation. Applications that 3559dynamically generate code can create symbol files in memory and register 3560them with GDB. For users, the feature should work transparently, and 3561for JIT developers, the interface is documented in the GDB manual in the 3562"JIT Compilation Interface" chapter. 3563 3564* Tracepoints may now be conditional. The syntax is as for 3565breakpoints; either an "if" clause appended to the "trace" command, 3566or the "condition" command is available. GDB sends the condition to 3567the target for evaluation using the same bytecode format as is used 3568for tracepoint actions. 3569 3570* The disassemble command now supports: an optional /r modifier, print the 3571raw instructions in hex as well as in symbolic form, and an optional /m 3572modifier to print mixed source+assembly. 3573 3574* Process record and replay 3575 3576 In a architecture environment that supports ``process record and 3577 replay'', ``process record and replay'' target can record a log of 3578 the process execution, and replay it with both forward and reverse 3579 execute commands. 3580 3581* Reverse debugging: GDB now has new commands reverse-continue, reverse- 3582step, reverse-next, reverse-finish, reverse-stepi, reverse-nexti, and 3583set execution-direction {forward|reverse}, for targets that support 3584reverse execution. 3585 3586* GDB now supports hardware watchpoints on MIPS/Linux systems. This 3587feature is available with a native GDB running on kernel version 35882.6.28 or later. 3589 3590* GDB now has support for multi-byte and wide character sets on the 3591target. Strings whose character type is wchar_t, char16_t, or 3592char32_t are now correctly printed. GDB supports wide- and unicode- 3593literals in C, that is, L'x', L"string", u'x', u"string", U'x', and 3594U"string" syntax. And, GDB allows the "%ls" and "%lc" formats in 3595`printf'. This feature requires iconv to work properly; if your 3596system does not have a working iconv, GDB can use GNU libiconv. See 3597the installation instructions for more information. 3598 3599* GDB now supports automatic retrieval of shared library files from 3600remote targets. To use this feature, specify a system root that begins 3601with the `remote:' prefix, either via the `set sysroot' command or via 3602the `--with-sysroot' configure-time option. 3603 3604* "info sharedlibrary" now takes an optional regex of libraries to show, 3605and it now reports if a shared library has no debugging information. 3606 3607* Commands `set debug-file-directory', `set solib-search-path' and `set args' 3608now complete on file names. 3609 3610* When completing in expressions, gdb will attempt to limit 3611completions to allowable structure or union fields, where appropriate. 3612For instance, consider: 3613 3614 # struct example { int f1; double f2; }; 3615 # struct example variable; 3616 (gdb) p variable. 3617 3618If the user types TAB at the end of this command line, the available 3619completions will be "f1" and "f2". 3620 3621* Inlined functions are now supported. They show up in backtraces, and 3622the "step", "next", and "finish" commands handle them automatically. 3623 3624* GDB now supports the token-splicing (##) and stringification (#) 3625operators when expanding macros. It also supports variable-arity 3626macros. 3627 3628* GDB now supports inspecting extra signal information, exported by 3629the new $_siginfo convenience variable. The feature is currently 3630implemented on linux ARM, i386 and amd64. 3631 3632* GDB can now display the VFP floating point registers and NEON vector 3633registers on ARM targets. Both ARM GNU/Linux native GDB and gdbserver 3634can provide these registers (requires Linux 2.6.30 or later). Remote 3635and simulator targets may also provide them. 3636 3637* New remote packets 3638 3639qSearch:memory: 3640 Search memory for a sequence of bytes. 3641 3642QStartNoAckMode 3643 Turn off `+'/`-' protocol acknowledgments to permit more efficient 3644 operation over reliable transport links. Use of this packet is 3645 controlled by the `set remote noack-packet' command. 3646 3647vKill 3648 Kill the process with the specified process ID. Use this in preference 3649 to `k' when multiprocess protocol extensions are supported. 3650 3651qXfer:osdata:read 3652 Obtains additional operating system information 3653 3654qXfer:siginfo:read 3655qXfer:siginfo:write 3656 Read or write additional signal information. 3657 3658* Removed remote protocol undocumented extension 3659 3660 An undocumented extension to the remote protocol's `S' stop reply 3661 packet that permited the stub to pass a process id was removed. 3662 Remote servers should use the `T' stop reply packet instead. 3663 3664* GDB now supports multiple function calling conventions according to the 3665DWARF-2 DW_AT_calling_convention function attribute. 3666 3667* The SH target utilizes the aforementioned change to distinguish between gcc 3668and Renesas calling convention. It also adds the new CLI commands 3669`set/show sh calling-convention'. 3670 3671* GDB can now read compressed debug sections, as produced by GNU gold 3672with the --compress-debug-sections=zlib flag. 3673 3674* 64-bit core files are now supported on AIX. 3675 3676* Thread switching is now supported on Tru64. 3677 3678* Watchpoints can now be set on unreadable memory locations, e.g. addresses 3679which will be allocated using malloc later in program execution. 3680 3681* The qXfer:libraries:read remote procotol packet now allows passing a 3682list of section offsets. 3683 3684* On GNU/Linux, GDB can now attach to stopped processes. Several race 3685conditions handling signals delivered during attach or thread creation 3686have also been fixed. 3687 3688* GDB now supports the use of DWARF boolean types for Ada's type Boolean. 3689From the user's standpoint, all unqualified instances of True and False 3690are treated as the standard definitions, regardless of context. 3691 3692* GDB now parses C++ symbol and type names more flexibly. For 3693example, given: 3694 3695 template<typename T> class C { }; 3696 C<char const *> c; 3697 3698GDB will now correctly handle all of: 3699 3700 ptype C<char const *> 3701 ptype C<char const*> 3702 ptype C<const char *> 3703 ptype C<const char*> 3704 3705* New features in the GDB remote stub, gdbserver 3706 3707 - The "--wrapper" command-line argument tells gdbserver to use a 3708 wrapper program to launch programs for debugging. 3709 3710 - On PowerPC and S/390 targets, it is now possible to use a single 3711 gdbserver executable to debug both 32-bit and 64-bit programs. 3712 (This requires gdbserver itself to be built as a 64-bit executable.) 3713 3714 - gdbserver uses the new noack protocol mode for TCP connections to 3715 reduce communications latency, if also supported and enabled in GDB. 3716 3717 - Support for the sparc64-linux-gnu target is now included in 3718 gdbserver. 3719 3720 - The amd64-linux build of gdbserver now supports debugging both 3721 32-bit and 64-bit programs. 3722 3723 - The i386-linux, amd64-linux, and i386-win32 builds of gdbserver 3724 now support hardware watchpoints, and will use them automatically 3725 as appropriate. 3726 3727* Python scripting 3728 3729 GDB now has support for scripting using Python. Whether this is 3730 available is determined at configure time. 3731 3732 New GDB commands can now be written in Python. 3733 3734* Ada tasking support 3735 3736 Ada tasks can now be inspected in GDB. The following commands have 3737 been introduced: 3738 3739 info tasks 3740 Print the list of Ada tasks. 3741 info task N 3742 Print detailed information about task number N. 3743 task 3744 Print the task number of the current task. 3745 task N 3746 Switch the context of debugging to task number N. 3747 3748* Support for user-defined prefixed commands. The "define" command can 3749add new commands to existing prefixes, e.g. "target". 3750 3751* Multi-inferior, multi-process debugging. 3752 3753 GDB now has generalized support for multi-inferior debugging. See 3754 "Debugging Multiple Inferiors" in the manual for more information. 3755 Although availability still depends on target support, the command 3756 set is more uniform now. The GNU/Linux specific multi-forks support 3757 has been migrated to this new framework. This implied some user 3758 visible changes; see "New commands" and also "Removed commands" 3759 below. 3760 3761* Target descriptions can now describe the target OS ABI. See the 3762"Target Description Format" section in the user manual for more 3763information. 3764 3765* Target descriptions can now describe "compatible" architectures 3766to indicate that the target can execute applications for a different 3767architecture in addition to those for the main target architecture. 3768See the "Target Description Format" section in the user manual for 3769more information. 3770 3771* Multi-architecture debugging. 3772 3773 GDB now includes general supports for debugging applications on 3774 hybrid systems that use more than one single processor architecture 3775 at the same time. Each such hybrid architecture still requires 3776 specific support to be added. The only hybrid architecture supported 3777 in this version of GDB is the Cell Broadband Engine. 3778 3779* GDB now supports integrated debugging of Cell/B.E. applications that 3780use both the PPU and SPU architectures. To enable support for hybrid 3781Cell/B.E. debugging, you need to configure GDB to support both the 3782powerpc-linux or powerpc64-linux and the spu-elf targets, using the 3783--enable-targets configure option. 3784 3785* Non-stop mode debugging. 3786 3787 For some targets, GDB now supports an optional mode of operation in 3788 which you can examine stopped threads while other threads continue 3789 to execute freely. This is referred to as non-stop mode, with the 3790 old mode referred to as all-stop mode. See the "Non-Stop Mode" 3791 section in the user manual for more information. 3792 3793 To be able to support remote non-stop debugging, a remote stub needs 3794 to implement the non-stop mode remote protocol extensions, as 3795 described in the "Remote Non-Stop" section of the user manual. The 3796 GDB remote stub, gdbserver, has been adjusted to support these 3797 extensions on linux targets. 3798 3799* New commands (for set/show, see "New options" below) 3800 3801catch syscall [NAME(S) | NUMBER(S)] 3802 Catch system calls. Arguments, which should be names of system 3803 calls or their numbers, mean catch only those syscalls. Without 3804 arguments, every syscall will be caught. When the inferior issues 3805 any of the specified syscalls, GDB will stop and announce the system 3806 call, both when it is called and when its call returns. This 3807 feature is currently available with a native GDB running on the 3808 Linux Kernel, under the following architectures: x86, x86_64, 3809 PowerPC and PowerPC64. 3810 3811find [/size-char] [/max-count] start-address, end-address|+search-space-size, 3812 val1 [, val2, ...] 3813 Search memory for a sequence of bytes. 3814 3815maint set python print-stack 3816maint show python print-stack 3817 Show a stack trace when an error is encountered in a Python script. 3818 3819python [CODE] 3820 Invoke CODE by passing it to the Python interpreter. 3821 3822macro define 3823macro list 3824macro undef 3825 These allow macros to be defined, undefined, and listed 3826 interactively. 3827 3828info os processes 3829 Show operating system information about processes. 3830 3831info inferiors 3832 List the inferiors currently under GDB's control. 3833 3834inferior NUM 3835 Switch focus to inferior number NUM. 3836 3837detach inferior NUM 3838 Detach from inferior number NUM. 3839 3840kill inferior NUM 3841 Kill inferior number NUM. 3842 3843* New options 3844 3845set spu stop-on-load 3846show spu stop-on-load 3847 Control whether to stop for new SPE threads during Cell/B.E. debugging. 3848 3849set spu auto-flush-cache 3850show spu auto-flush-cache 3851 Control whether to automatically flush the software-managed cache 3852 during Cell/B.E. debugging. 3853 3854set sh calling-convention 3855show sh calling-convention 3856 Control the calling convention used when calling SH target functions. 3857 3858set debug timestamp 3859show debug timestamp 3860 Control display of timestamps with GDB debugging output. 3861 3862set disassemble-next-line 3863show disassemble-next-line 3864 Control display of disassembled source lines or instructions when 3865 the debuggee stops. 3866 3867set remote noack-packet 3868show remote noack-packet 3869 Set/show the use of remote protocol QStartNoAckMode packet. See above 3870 under "New remote packets." 3871 3872set remote query-attached-packet 3873show remote query-attached-packet 3874 Control use of remote protocol `qAttached' (query-attached) packet. 3875 3876set remote read-siginfo-object 3877show remote read-siginfo-object 3878 Control use of remote protocol `qXfer:siginfo:read' (read-siginfo-object) 3879 packet. 3880 3881set remote write-siginfo-object 3882show remote write-siginfo-object 3883 Control use of remote protocol `qXfer:siginfo:write' (write-siginfo-object) 3884 packet. 3885 3886set remote reverse-continue 3887show remote reverse-continue 3888 Control use of remote protocol 'bc' (reverse-continue) packet. 3889 3890set remote reverse-step 3891show remote reverse-step 3892 Control use of remote protocol 'bs' (reverse-step) packet. 3893 3894set displaced-stepping 3895show displaced-stepping 3896 Control displaced stepping mode. Displaced stepping is a way to 3897 single-step over breakpoints without removing them from the debuggee. 3898 Also known as "out-of-line single-stepping". 3899 3900set debug displaced 3901show debug displaced 3902 Control display of debugging info for displaced stepping. 3903 3904maint set internal-error 3905maint show internal-error 3906 Control what GDB does when an internal error is detected. 3907 3908maint set internal-warning 3909maint show internal-warning 3910 Control what GDB does when an internal warning is detected. 3911 3912set exec-wrapper 3913show exec-wrapper 3914unset exec-wrapper 3915 Use a wrapper program to launch programs for debugging. 3916 3917set multiple-symbols (all|ask|cancel) 3918show multiple-symbols 3919 The value of this variable can be changed to adjust the debugger behavior 3920 when an expression or a breakpoint location contains an ambiguous symbol 3921 name (an overloaded function name, for instance). 3922 3923set breakpoint always-inserted 3924show breakpoint always-inserted 3925 Keep breakpoints always inserted in the target, as opposed to inserting 3926 them when resuming the target, and removing them when the target stops. 3927 This option can improve debugger performance on slow remote targets. 3928 3929set arm fallback-mode (arm|thumb|auto) 3930show arm fallback-mode 3931set arm force-mode (arm|thumb|auto) 3932show arm force-mode 3933 These commands control how ARM GDB determines whether instructions 3934 are ARM or Thumb. The default for both settings is auto, which uses 3935 the current CPSR value for instructions without symbols; previous 3936 versions of GDB behaved as if "set arm fallback-mode arm". 3937 3938set disable-randomization 3939show disable-randomization 3940 Standalone programs run with the virtual address space randomization enabled 3941 by default on some platforms. This option keeps the addresses stable across 3942 multiple debugging sessions. 3943 3944set non-stop 3945show non-stop 3946 Control whether other threads are stopped or not when some thread hits 3947 a breakpoint. 3948 3949set target-async 3950show target-async 3951 Requests that asynchronous execution is enabled in the target, if available. 3952 In this case, it's possible to resume target in the background, and interact 3953 with GDB while the target is running. "show target-async" displays the 3954 current state of asynchronous execution of the target. 3955 3956set target-wide-charset 3957show target-wide-charset 3958 The target-wide-charset is the name of the character set that GDB 3959 uses when printing characters whose type is wchar_t. 3960 3961set tcp auto-retry (on|off) 3962show tcp auto-retry 3963set tcp connect-timeout 3964show tcp connect-timeout 3965 These commands allow GDB to retry failed TCP connections to a remote stub 3966 with a specified timeout period; this is useful if the stub is launched 3967 in parallel with GDB but may not be ready to accept connections immediately. 3968 3969set libthread-db-search-path 3970show libthread-db-search-path 3971 Control list of directories which GDB will search for appropriate 3972 libthread_db. 3973 3974set schedule-multiple (on|off) 3975show schedule-multiple 3976 Allow GDB to resume all threads of all processes or only threads of 3977 the current process. 3978 3979set stack-cache 3980show stack-cache 3981 Use more aggressive caching for accesses to the stack. This improves 3982 performance of remote debugging (particularly backtraces) without 3983 affecting correctness. 3984 3985set interactive-mode (on|off|auto) 3986show interactive-mode 3987 Control whether GDB runs in interactive mode (on) or not (off). 3988 When in interactive mode, GDB waits for the user to answer all 3989 queries. Otherwise, GDB does not wait and assumes the default 3990 answer. When set to auto (the default), GDB determines which 3991 mode to use based on the stdin settings. 3992 3993* Removed commands 3994 3995info forks 3996 For program forks, this is replaced by the new more generic `info 3997 inferiors' command. To list checkpoints, you can still use the 3998 `info checkpoints' command, which was an alias for the `info forks' 3999 command. 4000 4001fork NUM 4002 Replaced by the new `inferior' command. To switch between 4003 checkpoints, you can still use the `restart' command, which was an 4004 alias for the `fork' command. 4005 4006process PID 4007 This is removed, since some targets don't have a notion of 4008 processes. To switch between processes, you can still use the 4009 `inferior' command using GDB's own inferior number. 4010 4011delete fork NUM 4012 For program forks, this is replaced by the new more generic `kill 4013 inferior' command. To delete a checkpoint, you can still use the 4014 `delete checkpoint' command, which was an alias for the `delete 4015 fork' command. 4016 4017detach fork NUM 4018 For program forks, this is replaced by the new more generic `detach 4019 inferior' command. To detach a checkpoint, you can still use the 4020 `detach checkpoint' command, which was an alias for the `detach 4021 fork' command. 4022 4023* New native configurations 4024 4025x86/x86_64 Darwin i[34567]86-*-darwin* 4026 4027x86_64 MinGW x86_64-*-mingw* 4028 4029* New targets 4030 4031Lattice Mico32 lm32-* 4032x86 DICOS i[34567]86-*-dicos* 4033x86_64 DICOS x86_64-*-dicos* 4034S+core 3 score-*-* 4035 4036* The GDB remote stub, gdbserver, now supports x86 Windows CE 4037 (mingw32ce) debugging. 4038 4039* Removed commands 4040 4041catch load 4042catch unload 4043 These commands were actually not implemented on any target. 4044 4045*** Changes in GDB 6.8 4046 4047* New native configurations 4048 4049NetBSD/hppa hppa*-*netbsd* 4050Xtensa GNU/Linux xtensa*-*-linux* 4051 4052* New targets 4053 4054NetBSD/hppa hppa*-*-netbsd* 4055Xtensa GNU/Lunux xtensa*-*-linux* 4056 4057* Change in command line behavior -- corefiles vs. process ids. 4058 4059 When the '-p NUMBER' or '--pid NUMBER' options are used, and 4060 attaching to process NUMBER fails, GDB no longer attempts to open a 4061 core file named NUMBER. Attaching to a program using the -c option 4062 is no longer supported. Instead, use the '-p' or '--pid' options. 4063 4064* GDB can now be built as a native debugger for debugging Windows x86 4065(mingw32) Portable Executable (PE) programs. 4066 4067* Pending breakpoints no longer change their number when their address 4068is resolved. 4069 4070* GDB now supports breakpoints with multiple locations, 4071including breakpoints on C++ constructors, inside C++ templates, 4072and in inlined functions. 4073 4074* GDB's ability to debug optimized code has been improved. GDB more 4075accurately identifies function bodies and lexical blocks that occupy 4076more than one contiguous range of addresses. 4077 4078* Target descriptions can now describe registers for PowerPC. 4079 4080* The GDB remote stub, gdbserver, now supports the AltiVec and SPE 4081registers on PowerPC targets. 4082 4083* The GDB remote stub, gdbserver, now supports thread debugging on GNU/Linux 4084targets even when the libthread_db library is not available. 4085 4086* The GDB remote stub, gdbserver, now supports the new file transfer 4087commands (remote put, remote get, and remote delete). 4088 4089* The GDB remote stub, gdbserver, now supports run and attach in 4090extended-remote mode. 4091 4092* hppa*64*-*-hpux11* target broken 4093The debugger is unable to start a program and fails with the following 4094error: "Error trying to get information about dynamic linker". 4095The gdb-6.7 release is also affected. 4096 4097* GDB now supports the --enable-targets= configure option to allow 4098building a single GDB executable that supports multiple remote 4099target architectures. 4100 4101* GDB now supports debugging C and C++ programs which use the 4102Decimal Floating Point extension. In addition, the PowerPC target 4103now has a set of pseudo-registers to inspect decimal float values 4104stored in two consecutive float registers. 4105 4106* The -break-insert MI command can optionally create pending 4107breakpoints now. 4108 4109* Improved support for debugging Ada 4110Many improvements to the Ada language support have been made. These 4111include: 4112 - Better support for Ada2005 interface types 4113 - Improved handling of arrays and slices in general 4114 - Better support for Taft-amendment types 4115 - The '{type} ADDRESS' expression is now allowed on the left hand-side 4116 of an assignment 4117 - Improved command completion in Ada 4118 - Several bug fixes 4119 4120* GDB on GNU/Linux and HP/UX can now debug through "exec" of a new 4121process. 4122 4123* New commands 4124 4125set print frame-arguments (all|scalars|none) 4126show print frame-arguments 4127 The value of this variable can be changed to control which argument 4128 values should be printed by the debugger when displaying a frame. 4129 4130remote put 4131remote get 4132remote delete 4133 Transfer files to and from a remote target, and delete remote files. 4134 4135* New MI commands 4136 4137-target-file-put 4138-target-file-get 4139-target-file-delete 4140 Transfer files to and from a remote target, and delete remote files. 4141 4142* New remote packets 4143 4144vFile:open: 4145vFile:close: 4146vFile:pread: 4147vFile:pwrite: 4148vFile:unlink: 4149 Open, close, read, write, and delete files on the remote system. 4150 4151vAttach 4152 Attach to an existing process on the remote system, in extended-remote 4153 mode. 4154 4155vRun 4156 Run a new process on the remote system, in extended-remote mode. 4157 4158*** Changes in GDB 6.7 4159 4160* Resolved 101 resource leaks, null pointer dereferences, etc. in gdb, 4161bfd, libiberty and opcodes, as revealed by static analysis donated by 4162Coverity, Inc. (http://scan.coverity.com). 4163 4164* When looking up multiply-defined global symbols, GDB will now prefer the 4165symbol definition in the current shared library if it was built using the 4166-Bsymbolic linker option. 4167 4168* When the Text User Interface (TUI) is not configured, GDB will now 4169recognize the -tui command-line option and print a message that the TUI 4170is not supported. 4171 4172* The GDB remote stub, gdbserver, now has lower overhead for high 4173frequency signals (e.g. SIGALRM) via the QPassSignals packet. 4174 4175* GDB for MIPS targets now autodetects whether a remote target provides 417632-bit or 64-bit register values. 4177 4178* Support for C++ member pointers has been improved. 4179 4180* GDB now understands XML target descriptions, which specify the 4181target's overall architecture. GDB can read a description from 4182a local file or over the remote serial protocol. 4183 4184* Vectors of single-byte data use a new integer type which is not 4185automatically displayed as character or string data. 4186 4187* The /s format now works with the print command. It displays 4188arrays of single-byte integers and pointers to single-byte integers 4189as strings. 4190 4191* Target descriptions can now describe target-specific registers, 4192for architectures which have implemented the support (currently 4193only ARM, M68K, and MIPS). 4194 4195* GDB and the GDB remote stub, gdbserver, now support the XScale 4196iWMMXt coprocessor. 4197 4198* The GDB remote stub, gdbserver, has been updated to support 4199ARM Windows CE (mingw32ce) debugging, and GDB Windows CE support 4200has been rewritten to use the standard GDB remote protocol. 4201 4202* GDB can now step into C++ functions which are called through thunks. 4203 4204* GDB for the Cell/B.E. SPU now supports overlay debugging. 4205 4206* The GDB remote protocol "qOffsets" packet can now honor ELF segment 4207layout. It also supports a TextSeg= and DataSeg= response when only 4208segment base addresses (rather than offsets) are available. 4209 4210* The /i format now outputs any trailing branch delay slot instructions 4211immediately following the last instruction within the count specified. 4212 4213* The GDB remote protocol "T" stop reply packet now supports a 4214"library" response. Combined with the new "qXfer:libraries:read" 4215packet, this response allows GDB to debug shared libraries on targets 4216where the operating system manages the list of loaded libraries (e.g. 4217Windows and SymbianOS). 4218 4219* The GDB remote stub, gdbserver, now supports dynamic link libraries 4220(DLLs) on Windows and Windows CE targets. 4221 4222* GDB now supports a faster verification that a .debug file matches its binary 4223according to its build-id signature, if the signature is present. 4224 4225* New commands 4226 4227set remoteflow 4228show remoteflow 4229 Enable or disable hardware flow control (RTS/CTS) on the serial port 4230 when debugging using remote targets. 4231 4232set mem inaccessible-by-default 4233show mem inaccessible-by-default 4234 If the target supplies a memory map, for instance via the remote 4235 protocol's "qXfer:memory-map:read" packet, setting this variable 4236 prevents GDB from accessing memory outside the memory map. This 4237 is useful for targets with memory mapped registers or which react 4238 badly to accesses of unmapped address space. 4239 4240set breakpoint auto-hw 4241show breakpoint auto-hw 4242 If the target supplies a memory map, for instance via the remote 4243 protocol's "qXfer:memory-map:read" packet, setting this variable 4244 lets GDB use hardware breakpoints automatically for memory regions 4245 where it can not use software breakpoints. This covers both the 4246 "break" command and internal breakpoints used for other commands 4247 including "next" and "finish". 4248 4249catch exception 4250catch exception unhandled 4251 Stop the program execution when Ada exceptions are raised. 4252 4253catch assert 4254 Stop the program execution when an Ada assertion failed. 4255 4256set sysroot 4257show sysroot 4258 Set an alternate system root for target files. This is a more 4259 general version of "set solib-absolute-prefix", which is now 4260 an alias to "set sysroot". 4261 4262info spu 4263 Provide extended SPU facility status information. This set of 4264 commands is available only when debugging the Cell/B.E. SPU 4265 architecture. 4266 4267* New native configurations 4268 4269OpenBSD/sh sh*-*openbsd* 4270 4271set tdesc filename 4272unset tdesc filename 4273show tdesc filename 4274 Use the specified local file as an XML target description, and do 4275 not query the target for its built-in description. 4276 4277* New targets 4278 4279OpenBSD/sh sh*-*-openbsd* 4280MIPS64 GNU/Linux (gdbserver) mips64-linux-gnu 4281Toshiba Media Processor mep-elf 4282 4283* New remote packets 4284 4285QPassSignals: 4286 Ignore the specified signals; pass them directly to the debugged program 4287 without stopping other threads or reporting them to GDB. 4288 4289qXfer:features:read: 4290 Read an XML target description from the target, which describes its 4291 features. 4292 4293qXfer:spu:read: 4294qXfer:spu:write: 4295 Read or write contents of an spufs file on the target system. These 4296 packets are available only on the Cell/B.E. SPU architecture. 4297 4298qXfer:libraries:read: 4299 Report the loaded shared libraries. Combined with new "T" packet 4300 response, this packet allows GDB to debug shared libraries on 4301 targets where the operating system manages the list of loaded 4302 libraries (e.g. Windows and SymbianOS). 4303 4304* Removed targets 4305 4306Support for these obsolete configurations has been removed. 4307 4308alpha*-*-osf1* 4309alpha*-*-osf2* 4310d10v-*-* 4311hppa*-*-hiux* 4312i[34567]86-ncr-* 4313i[34567]86-*-dgux* 4314i[34567]86-*-lynxos* 4315i[34567]86-*-netware* 4316i[34567]86-*-sco3.2v5* 4317i[34567]86-*-sco3.2v4* 4318i[34567]86-*-sco* 4319i[34567]86-*-sysv4.2* 4320i[34567]86-*-sysv4* 4321i[34567]86-*-sysv5* 4322i[34567]86-*-unixware2* 4323i[34567]86-*-unixware* 4324i[34567]86-*-sysv* 4325i[34567]86-*-isc* 4326m68*-cisco*-* 4327m68*-tandem-* 4328mips*-*-pe 4329rs6000-*-lynxos* 4330sh*-*-pe 4331 4332* Other removed features 4333 4334target abug 4335target cpu32bug 4336target est 4337target rom68k 4338 4339 Various m68k-only ROM monitors. 4340 4341target hms 4342target e7000 4343target sh3 4344target sh3e 4345 4346 Various Renesas ROM monitors and debugging interfaces for SH and 4347 H8/300. 4348 4349target ocd 4350 4351 Support for a Macraigor serial interface to on-chip debugging. 4352 GDB does not directly support the newer parallel or USB 4353 interfaces. 4354 4355DWARF 1 support 4356 4357 A debug information format. The predecessor to DWARF 2 and 4358 DWARF 3, which are still supported. 4359 4360Support for the HP aCC compiler on HP-UX/PA-RISC 4361 4362 SOM-encapsulated symbolic debugging information, automatic 4363 invocation of pxdb, and the aCC custom C++ ABI. This does not 4364 affect HP-UX for Itanium or GCC for HP-UX/PA-RISC. Code compiled 4365 with aCC can still be debugged on an assembly level. 4366 4367MIPS ".pdr" sections 4368 4369 A MIPS-specific format used to describe stack frame layout 4370 in debugging information. 4371 4372Scheme support 4373 4374 GDB could work with an older version of Guile to debug 4375 the interpreter and Scheme programs running in it. 4376 4377set mips stack-arg-size 4378set mips saved-gpreg-size 4379 4380 Use "set mips abi" to control parameter passing for MIPS. 4381 4382*** Changes in GDB 6.6 4383 4384* New targets 4385 4386Xtensa xtensa-elf 4387Cell Broadband Engine SPU spu-elf 4388 4389* GDB can now be configured as a cross-debugger targeting native Windows 4390(mingw32) or Cygwin. It can communicate with a remote debugging stub 4391running on a Windows system over TCP/IP to debug Windows programs. 4392 4393* The GDB remote stub, gdbserver, has been updated to support Windows and 4394Cygwin debugging. Both single-threaded and multi-threaded programs are 4395supported. 4396 4397* The "set trust-readonly-sections" command works again. This command was 4398broken in GDB 6.3, 6.4, and 6.5. 4399 4400* The "load" command now supports writing to flash memory, if the remote 4401stub provides the required support. 4402 4403* Support for GNU/Linux Thread Local Storage (TLS, per-thread variables) no 4404longer requires symbolic debug information (e.g. DWARF-2). 4405 4406* New commands 4407 4408set substitute-path 4409unset substitute-path 4410show substitute-path 4411 Manage a list of substitution rules that GDB uses to rewrite the name 4412 of the directories where the sources are located. This can be useful 4413 for instance when the sources were moved to a different location 4414 between compilation and debugging. 4415 4416set trace-commands 4417show trace-commands 4418 Print each CLI command as it is executed. Each command is prefixed with 4419 a number of `+' symbols representing the nesting depth. 4420 The source command now has a `-v' option to enable the same feature. 4421 4422* REMOVED features 4423 4424The ARM Demon monitor support (RDP protocol, "target rdp"). 4425 4426Kernel Object Display, an embedded debugging feature which only worked with 4427an obsolete version of Cisco IOS. 4428 4429The 'set download-write-size' and 'show download-write-size' commands. 4430 4431* New remote packets 4432 4433qSupported: 4434 Tell a stub about GDB client features, and request remote target features. 4435 The first feature implemented is PacketSize, which allows the target to 4436 specify the size of packets it can handle - to minimize the number of 4437 packets required and improve performance when connected to a remote 4438 target. 4439 4440qXfer:auxv:read: 4441 Fetch an OS auxilliary vector from the remote stub. This packet is a 4442 more efficient replacement for qPart:auxv:read. 4443 4444qXfer:memory-map:read: 4445 Fetch a memory map from the remote stub, including information about 4446 RAM, ROM, and flash memory devices. 4447 4448vFlashErase: 4449vFlashWrite: 4450vFlashDone: 4451 Erase and program a flash memory device. 4452 4453* Removed remote packets 4454 4455qPart:auxv:read: 4456 This packet has been replaced by qXfer:auxv:read. Only GDB 6.4 and 6.5 4457 used it, and only gdbserver implemented it. 4458 4459*** Changes in GDB 6.5 4460 4461* New targets 4462 4463Renesas M32C/M16C m32c-elf 4464 4465Morpho Technologies ms1 ms1-elf 4466 4467* New commands 4468 4469init-if-undefined Initialize a convenience variable, but 4470 only if it doesn't already have a value. 4471 4472The following commands are presently only implemented for native GNU/Linux: 4473 4474checkpoint Save a snapshot of the program state. 4475 4476restart <n> Return the program state to a 4477 previously saved state. 4478 4479info checkpoints List currently saved checkpoints. 4480 4481delete-checkpoint <n> Delete a previously saved checkpoint. 4482 4483set|show detach-on-fork Tell gdb whether to detach from a newly 4484 forked process, or to keep debugging it. 4485 4486info forks List forks of the user program that 4487 are available to be debugged. 4488 4489fork <n> Switch to debugging one of several 4490 forks of the user program that are 4491 available to be debugged. 4492 4493delete-fork <n> Delete a fork from the list of forks 4494 that are available to be debugged (and 4495 kill the forked process). 4496 4497detach-fork <n> Delete a fork from the list of forks 4498 that are available to be debugged (and 4499 allow the process to continue). 4500 4501* New architecture 4502 4503Morpho Technologies ms2 ms1-elf 4504 4505* Improved Windows host support 4506 4507GDB now builds as a cross debugger hosted on i686-mingw32, including 4508native console support, and remote communications using either 4509network sockets or serial ports. 4510 4511* Improved Modula-2 language support 4512 4513GDB can now print most types in the Modula-2 syntax. This includes: 4514basic types, set types, record types, enumerated types, range types, 4515pointer types and ARRAY types. Procedure var parameters are correctly 4516printed and hexadecimal addresses and character constants are also 4517written in the Modula-2 syntax. Best results can be obtained by using 4518GNU Modula-2 together with the -gdwarf-2 command line option. 4519 4520* REMOVED features 4521 4522The ARM rdi-share module. 4523 4524The Netware NLM debug server. 4525 4526*** Changes in GDB 6.4 4527 4528* New native configurations 4529 4530OpenBSD/arm arm*-*-openbsd* 4531OpenBSD/mips64 mips64-*-openbsd* 4532 4533* New targets 4534 4535Morpho Technologies ms1 ms1-elf 4536 4537* New command line options 4538 4539--batch-silent As for --batch, but totally silent. 4540--return-child-result The debugger will exist with the same value 4541 the child (debugged) program exited with. 4542--eval-command COMMAND, -ex COMMAND 4543 Execute a single GDB CLI command. This may be 4544 specified multiple times and in conjunction 4545 with the --command (-x) option. 4546 4547* Deprecated commands removed 4548 4549The following commands, that were deprecated in 2000, have been 4550removed: 4551 4552 Command Replacement 4553 set|show arm disassembly-flavor set|show arm disassembler 4554 othernames set arm disassembler 4555 set|show remotedebug set|show debug remote 4556 set|show archdebug set|show debug arch 4557 set|show eventdebug set|show debug event 4558 regs info registers 4559 4560* New BSD user-level threads support 4561 4562It is now possible to debug programs using the user-level threads 4563library on OpenBSD and FreeBSD. Currently supported (target) 4564configurations are: 4565 4566FreeBSD/amd64 x86_64-*-freebsd* 4567FreeBSD/i386 i386-*-freebsd* 4568OpenBSD/i386 i386-*-openbsd* 4569 4570Note that the new kernel threads libraries introduced in FreeBSD 5.x 4571are not yet supported. 4572 4573* New support for Matsushita MN10300 w/sim added 4574(Work in progress). mn10300-elf. 4575 4576* REMOVED configurations and files 4577 4578VxWorks and the XDR protocol *-*-vxworks 4579Motorola MCORE mcore-*-* 4580National Semiconductor NS32000 ns32k-*-* 4581 4582* New "set print array-indexes" command 4583 4584After turning this setting "on", GDB prints the index of each element 4585when displaying arrays. The default is "off" to preserve the previous 4586behavior. 4587 4588* VAX floating point support 4589 4590GDB now supports the not-quite-ieee VAX F and D floating point formats. 4591 4592* User-defined command support 4593 4594In addition to using $arg0..$arg9 for argument passing, it is now possible 4595to use $argc to determine now many arguments have been passed. See the 4596section on user-defined commands in the user manual for more information. 4597 4598*** Changes in GDB 6.3: 4599 4600* New command line option 4601 4602GDB now accepts -l followed by a number to set the timeout for remote 4603debugging. 4604 4605* GDB works with GCC -feliminate-dwarf2-dups 4606 4607GDB now supports a more compact representation of DWARF-2 debug 4608information using DW_FORM_ref_addr references. These are produced 4609by GCC with the option -feliminate-dwarf2-dups and also by some 4610proprietary compilers. With GCC, you must use GCC 3.3.4 or later 4611to use -feliminate-dwarf2-dups. 4612 4613* Internationalization 4614 4615When supported by the host system, GDB will be built with 4616internationalization (libintl). The task of marking up the sources is 4617continued, we're looking forward to our first translation. 4618 4619* Ada 4620 4621Initial support for debugging programs compiled with the GNAT 4622implementation of the Ada programming language has been integrated 4623into GDB. In this release, support is limited to expression evaluation. 4624 4625* New native configurations 4626 4627GNU/Linux/m32r m32r-*-linux-gnu 4628 4629* Remote 'p' packet 4630 4631GDB's remote protocol now includes support for the 'p' packet. This 4632packet is used to fetch individual registers from a remote inferior. 4633 4634* END-OF-LIFE registers[] compatibility module 4635 4636GDB's internal register infrastructure has been completely rewritten. 4637The new infrastructure making possible the implementation of key new 4638features including 32x64 (e.g., 64-bit amd64 GDB debugging a 32-bit 4639i386 application). 4640 4641GDB 6.3 will be the last release to include the the registers[] 4642compatibility module that allowed out-of-date configurations to 4643continue to work. This change directly impacts the following 4644configurations: 4645 4646hppa-*-hpux 4647ia64-*-aix 4648mips-*-irix* 4649*-*-lynx 4650mips-*-linux-gnu 4651sds protocol 4652xdr protocol 4653powerpc bdm protocol 4654 4655Unless there is activity to revive these configurations, they will be 4656made OBSOLETE in GDB 6.4, and REMOVED from GDB 6.5. 4657 4658* OBSOLETE configurations and files 4659 4660Configurations that have been declared obsolete in this release have 4661been commented out. Unless there is activity to revive these 4662configurations, the next release of GDB will have their sources 4663permanently REMOVED. 4664 4665h8300-*-* 4666mcore-*-* 4667mn10300-*-* 4668ns32k-*-* 4669sh64-*-* 4670v850-*-* 4671 4672*** Changes in GDB 6.2.1: 4673 4674* MIPS `break main; run' gave an heuristic-fence-post warning 4675 4676When attempting to run even a simple program, a warning about 4677heuristic-fence-post being hit would be reported. This problem has 4678been fixed. 4679 4680* MIPS IRIX 'long double' crashed GDB 4681 4682When examining a long double variable, GDB would get a segmentation 4683fault. The crash has been fixed (but GDB 6.2 cannot correctly examine 4684IRIX long double values). 4685 4686* VAX and "next" 4687 4688A bug in the VAX stack code was causing problems with the "next" 4689command. This problem has been fixed. 4690 4691*** Changes in GDB 6.2: 4692 4693* Fix for ``many threads'' 4694 4695On GNU/Linux systems that use the NPTL threads library, a program 4696rapidly creating and deleting threads would confuse GDB leading to the 4697error message: 4698 4699 ptrace: No such process. 4700 thread_db_get_info: cannot get thread info: generic error 4701 4702This problem has been fixed. 4703 4704* "-async" and "-noasync" options removed. 4705 4706Support for the broken "-noasync" option has been removed (it caused 4707GDB to dump core). 4708 4709* New ``start'' command. 4710 4711This command runs the program until the begining of the main procedure. 4712 4713* New BSD Kernel Data Access Library (libkvm) interface 4714 4715Using ``target kvm'' it is now possible to debug kernel core dumps and 4716live kernel memory images on various FreeBSD, NetBSD and OpenBSD 4717platforms. Currently supported (native-only) configurations are: 4718 4719FreeBSD/amd64 x86_64-*-freebsd* 4720FreeBSD/i386 i?86-*-freebsd* 4721NetBSD/i386 i?86-*-netbsd* 4722NetBSD/m68k m68*-*-netbsd* 4723NetBSD/sparc sparc-*-netbsd* 4724OpenBSD/amd64 x86_64-*-openbsd* 4725OpenBSD/i386 i?86-*-openbsd* 4726OpenBSD/m68k m68*-openbsd* 4727OpenBSD/sparc sparc-*-openbsd* 4728 4729* Signal trampoline code overhauled 4730 4731Many generic problems with GDB's signal handling code have been fixed. 4732These include: backtraces through non-contiguous stacks; recognition 4733of sa_sigaction signal trampolines; backtrace from a NULL pointer 4734call; backtrace through a signal trampoline; step into and out of 4735signal handlers; and single-stepping in the signal trampoline. 4736 4737Please note that kernel bugs are a limiting factor here. These 4738features have been shown to work on an s390 GNU/Linux system that 4739include a 2.6.8-rc1 kernel. Ref PR breakpoints/1702. 4740 4741* Cygwin support for DWARF 2 added. 4742 4743* New native configurations 4744 4745GNU/Linux/hppa hppa*-*-linux* 4746OpenBSD/hppa hppa*-*-openbsd* 4747OpenBSD/m68k m68*-*-openbsd* 4748OpenBSD/m88k m88*-*-openbsd* 4749OpenBSD/powerpc powerpc-*-openbsd* 4750NetBSD/vax vax-*-netbsd* 4751OpenBSD/vax vax-*-openbsd* 4752 4753* END-OF-LIFE frame compatibility module 4754 4755GDB's internal frame infrastructure has been completely rewritten. 4756The new infrastructure making it possible to support key new features 4757including DWARF 2 Call Frame Information. To aid in the task of 4758migrating old configurations to this new infrastructure, a 4759compatibility module, that allowed old configurations to continue to 4760work, was also included. 4761 4762GDB 6.2 will be the last release to include this frame compatibility 4763module. This change directly impacts the following configurations: 4764 4765h8300-*-* 4766mcore-*-* 4767mn10300-*-* 4768ns32k-*-* 4769sh64-*-* 4770v850-*-* 4771xstormy16-*-* 4772 4773Unless there is activity to revive these configurations, they will be 4774made OBSOLETE in GDB 6.3, and REMOVED from GDB 6.4. 4775 4776* REMOVED configurations and files 4777 4778Sun 3, running SunOS 3 m68*-*-sunos3* 4779Sun 3, running SunOS 4 m68*-*-sunos4* 4780Sun 2, running SunOS 3 m68000-*-sunos3* 4781Sun 2, running SunOS 4 m68000-*-sunos4* 4782Motorola 680x0 running LynxOS m68*-*-lynxos* 4783AT&T 3b1/Unix pc m68*-att-* 4784Bull DPX2 (68k, System V release 3) m68*-bull-sysv* 4785decstation mips-dec-* mips-little-* 4786riscos mips-*-riscos* mips-*-sysv* 4787sonymips mips-sony-* 4788sysv mips*-*-sysv4* (IRIX 5/6 not included) 4789 4790*** Changes in GDB 6.1.1: 4791 4792* TUI (Text-mode User Interface) built-in (also included in GDB 6.1) 4793 4794The TUI (Text-mode User Interface) is now built as part of a default 4795GDB configuration. It is enabled by either selecting the TUI with the 4796command line option "-i=tui" or by running the separate "gdbtui" 4797program. For more information on the TUI, see the manual "Debugging 4798with GDB". 4799 4800* Pending breakpoint support (also included in GDB 6.1) 4801 4802Support has been added to allow you to specify breakpoints in shared 4803libraries that have not yet been loaded. If a breakpoint location 4804cannot be found, and the "breakpoint pending" option is set to auto, 4805GDB queries you if you wish to make the breakpoint pending on a future 4806shared-library load. If and when GDB resolves the breakpoint symbol, 4807the pending breakpoint is removed as one or more regular breakpoints 4808are created. 4809 4810Pending breakpoints are very useful for GCJ Java debugging. 4811 4812* Fixed ISO-C build problems 4813 4814The files bfd/elf-bfd.h, gdb/dictionary.c and gdb/types.c contained 4815non ISO-C code that stopped them being built using a more strict ISO-C 4816compiler (e.g., IBM's C compiler). 4817 4818* Fixed build problem on IRIX 5 4819 4820Due to header problems with <sys/proc.h>, the file gdb/proc-api.c 4821wasn't able to compile compile on an IRIX 5 system. 4822 4823* Added execute permission to gdb/gdbserver/configure 4824 4825The shell script gdb/testsuite/gdb.stabs/configure lacked execute 4826permission. This bug would cause configure to fail on a number of 4827systems (Solaris, IRIX). Ref: server/519. 4828 4829* Fixed build problem on hpux2.0w-hp-hpux11.00 using the HP ANSI C compiler 4830 4831Older HPUX ANSI C compilers did not accept variable array sizes. somsolib.c 4832has been updated to use constant array sizes. 4833 4834* Fixed a panic in the DWARF Call Frame Info code on Solaris 2.7 4835 4836GCC 3.3.2, on Solaris 2.7, includes the DW_EH_PE_funcrel encoding in 4837its generated DWARF Call Frame Info. This encoding was causing GDB to 4838panic, that panic has been fixed. Ref: gdb/1628. 4839 4840* Fixed a problem when examining parameters in shared library code. 4841 4842When examining parameters in optimized shared library code generated 4843by a mainline GCC, GDB would incorrectly report ``Variable "..." is 4844not available''. GDB now correctly displays the variable's value. 4845 4846*** Changes in GDB 6.1: 4847 4848* Removed --with-mmalloc 4849 4850Support for the mmalloc memory manager has been removed, as it 4851conflicted with the internal gdb byte cache. 4852 4853* Changes in AMD64 configurations 4854 4855The AMD64 target now includes the %cs and %ss registers. As a result 4856the AMD64 remote protocol has changed; this affects the floating-point 4857and SSE registers. If you rely on those registers for your debugging, 4858you should upgrade gdbserver on the remote side. 4859 4860* Revised SPARC target 4861 4862The SPARC target has been completely revised, incorporating the 4863FreeBSD/sparc64 support that was added for GDB 6.0. As a result 4864support for LynxOS and SunOS 4 has been dropped. Calling functions 4865from within GDB on operating systems with a non-executable stack 4866(Solaris, OpenBSD) now works. 4867 4868* New C++ demangler 4869 4870GDB has a new C++ demangler which does a better job on the mangled 4871names generated by current versions of g++. It also runs faster, so 4872with this and other changes gdb should now start faster on large C++ 4873programs. 4874 4875* DWARF 2 Location Expressions 4876 4877GDB support for location expressions has been extended to support function 4878arguments and frame bases. Older versions of GDB could crash when they 4879encountered these. 4880 4881* C++ nested types and namespaces 4882 4883GDB's support for nested types and namespaces in C++ has been 4884improved, especially if you use the DWARF 2 debugging format. (This 4885is the default for recent versions of GCC on most platforms.) 4886Specifically, if you have a class "Inner" defined within a class or 4887namespace "Outer", then GDB realizes that the class's name is 4888"Outer::Inner", not simply "Inner". This should greatly reduce the 4889frequency of complaints about not finding RTTI symbols. In addition, 4890if you are stopped at inside of a function defined within a namespace, 4891GDB modifies its name lookup accordingly. 4892 4893* New native configurations 4894 4895NetBSD/amd64 x86_64-*-netbsd* 4896OpenBSD/amd64 x86_64-*-openbsd* 4897OpenBSD/alpha alpha*-*-openbsd* 4898OpenBSD/sparc sparc-*-openbsd* 4899OpenBSD/sparc64 sparc64-*-openbsd* 4900 4901* New debugging protocols 4902 4903M32R with SDI protocol m32r-*-elf* 4904 4905* "set prompt-escape-char" command deleted. 4906 4907The command "set prompt-escape-char" has been deleted. This command, 4908and its very obscure effet on GDB's prompt, was never documented, 4909tested, nor mentioned in the NEWS file. 4910 4911* OBSOLETE configurations and files 4912 4913Configurations that have been declared obsolete in this release have 4914been commented out. Unless there is activity to revive these 4915configurations, the next release of GDB will have their sources 4916permanently REMOVED. 4917 4918Sun 3, running SunOS 3 m68*-*-sunos3* 4919Sun 3, running SunOS 4 m68*-*-sunos4* 4920Sun 2, running SunOS 3 m68000-*-sunos3* 4921Sun 2, running SunOS 4 m68000-*-sunos4* 4922Motorola 680x0 running LynxOS m68*-*-lynxos* 4923AT&T 3b1/Unix pc m68*-att-* 4924Bull DPX2 (68k, System V release 3) m68*-bull-sysv* 4925decstation mips-dec-* mips-little-* 4926riscos mips-*-riscos* mips-*-sysv* 4927sonymips mips-sony-* 4928sysv mips*-*-sysv4* (IRIX 5/6 not included) 4929 4930* REMOVED configurations and files 4931 4932SGI Irix-4.x mips-sgi-irix4 or iris4 4933SGI Iris (MIPS) running Irix V3: mips-sgi-irix or iris 4934Z8000 simulator z8k-zilog-none or z8ksim 4935Matsushita MN10200 w/simulator mn10200-*-* 4936H8/500 simulator h8500-hitachi-hms or h8500hms 4937HP/PA running BSD hppa*-*-bsd* 4938HP/PA running OSF/1 hppa*-*-osf* 4939HP/PA Pro target hppa*-*-pro* 4940PMAX (MIPS) running Mach 3.0 mips*-*-mach3* 4941386BSD i[3456]86-*-bsd* 4942Sequent family i[3456]86-sequent-sysv4* 4943 i[3456]86-sequent-sysv* 4944 i[3456]86-sequent-bsd* 4945SPARC running LynxOS sparc-*-lynxos* 4946SPARC running SunOS 4 sparc-*-sunos4* 4947Tsqware Sparclet sparclet-*-* 4948Fujitsu SPARClite sparclite-fujitsu-none or sparclite 4949 4950*** Changes in GDB 6.0: 4951 4952* Objective-C 4953 4954Support for debugging the Objective-C programming language has been 4955integrated into GDB. 4956 4957* New backtrace mechanism (includes DWARF 2 Call Frame Information). 4958 4959DWARF 2's Call Frame Information makes available compiler generated 4960information that more exactly describes the program's run-time stack. 4961By using this information, GDB is able to provide more robust stack 4962backtraces. 4963 4964The i386, amd64 (nee, x86-64), Alpha, m68hc11, ia64, and m32r targets 4965have been updated to use a new backtrace mechanism which includes 4966DWARF 2 CFI support. 4967 4968* Hosted file I/O. 4969 4970GDB's remote protocol has been extended to include support for hosted 4971file I/O (where the remote target uses GDB's file system). See GDB's 4972remote protocol documentation for details. 4973 4974* All targets using the new architecture framework. 4975 4976All of GDB's targets have been updated to use the new internal 4977architecture framework. The way is now open for future GDB releases 4978to include cross-architecture native debugging support (i386 on amd64, 4979ppc32 on ppc64). 4980 4981* GNU/Linux's Thread Local Storage (TLS) 4982 4983GDB now includes support for for the GNU/Linux implementation of 4984per-thread variables. 4985 4986* GNU/Linux's Native POSIX Thread Library (NPTL) 4987 4988GDB's thread code has been updated to work with either the new 4989GNU/Linux NPTL thread library or the older "LinuxThreads" library. 4990 4991* Separate debug info. 4992 4993GDB, in conjunction with BINUTILS, now supports a mechanism for 4994automatically loading debug information from a separate file. Instead 4995of shipping full debug and non-debug versions of system libraries, 4996system integrators can now instead ship just the stripped libraries 4997and optional debug files. 4998 4999* DWARF 2 Location Expressions 5000 5001DWARF 2 Location Expressions allow the compiler to more completely 5002describe the location of variables (even in optimized code) to the 5003debugger. 5004 5005GDB now includes preliminary support for location expressions (support 5006for DW_OP_piece is still missing). 5007 5008* Java 5009 5010A number of long standing bugs that caused GDB to die while starting a 5011Java application have been fixed. GDB's Java support is now 5012considered "useable". 5013 5014* GNU/Linux support for fork, vfork, and exec. 5015 5016The "catch fork", "catch exec", "catch vfork", and "set follow-fork-mode" 5017commands are now implemented for GNU/Linux. They require a 2.5.x or later 5018kernel. 5019 5020* GDB supports logging output to a file 5021 5022There are two new commands, "set logging" and "show logging", which can be 5023used to capture GDB's output to a file. 5024 5025* The meaning of "detach" has changed for gdbserver 5026 5027The "detach" command will now resume the application, as documented. To 5028disconnect from gdbserver and leave it stopped, use the new "disconnect" 5029command. 5030 5031* d10v, m68hc11 `regs' command deprecated 5032 5033The `info registers' command has been updated so that it displays the 5034registers using a format identical to the old `regs' command. 5035 5036* Profiling support 5037 5038A new command, "maint set profile on/off", has been added. This command can 5039be used to enable or disable profiling while running GDB, to profile a 5040session or a set of commands. In addition there is a new configure switch, 5041"--enable-profiling", which will cause GDB to be compiled with profiling 5042data, for more informative profiling results. 5043 5044* Default MI syntax changed to "mi2". 5045 5046The default MI (machine interface) syntax, enabled by the command line 5047option "-i=mi", has been changed to "mi2". The previous MI syntax, 5048"mi1", can be enabled by specifying the option "-i=mi1". 5049 5050Support for the original "mi0" syntax (included in GDB 5.0) has been 5051removed. 5052 5053Fix for gdb/192: removed extraneous space when displaying frame level. 5054Fix for gdb/672: update changelist is now output in mi list format. 5055Fix for gdb/702: a -var-assign that updates the value now shows up 5056 in a subsequent -var-update. 5057 5058* New native configurations. 5059 5060FreeBSD/amd64 x86_64-*-freebsd* 5061 5062* Multi-arched targets. 5063 5064HP/PA HPUX11 hppa*-*-hpux* 5065Renesas M32R/D w/simulator m32r-*-elf* 5066 5067* OBSOLETE configurations and files 5068 5069Configurations that have been declared obsolete in this release have 5070been commented out. Unless there is activity to revive these 5071configurations, the next release of GDB will have their sources 5072permanently REMOVED. 5073 5074Z8000 simulator z8k-zilog-none or z8ksim 5075Matsushita MN10200 w/simulator mn10200-*-* 5076H8/500 simulator h8500-hitachi-hms or h8500hms 5077HP/PA running BSD hppa*-*-bsd* 5078HP/PA running OSF/1 hppa*-*-osf* 5079HP/PA Pro target hppa*-*-pro* 5080PMAX (MIPS) running Mach 3.0 mips*-*-mach3* 5081Sequent family i[3456]86-sequent-sysv4* 5082 i[3456]86-sequent-sysv* 5083 i[3456]86-sequent-bsd* 5084Tsqware Sparclet sparclet-*-* 5085Fujitsu SPARClite sparclite-fujitsu-none or sparclite 5086 5087* REMOVED configurations and files 5088 5089V850EA ISA 5090Motorola Delta 88000 running Sys V m88k-motorola-sysv or delta88 5091IBM AIX PS/2 i[3456]86-*-aix 5092i386 running Mach 3.0 i[3456]86-*-mach3* 5093i386 running Mach i[3456]86-*-mach* 5094i386 running OSF/1 i[3456]86-*osf1mk* 5095HP/Apollo 68k Family m68*-apollo*-sysv*, 5096 m68*-apollo*-bsd*, 5097 m68*-hp-bsd*, m68*-hp-hpux* 5098Argonaut Risc Chip (ARC) arc-*-* 5099Mitsubishi D30V d30v-*-* 5100Fujitsu FR30 fr30-*-elf* 5101OS/9000 i[34]86-*-os9k 5102I960 with MON960 i960-*-coff 5103 5104* MIPS $fp behavior changed 5105 5106The convenience variable $fp, for the MIPS, now consistently returns 5107the address of the current frame's base. Previously, depending on the 5108context, $fp could refer to either $sp or the current frame's base 5109address. See ``8.10 Registers'' in the manual ``Debugging with GDB: 5110The GNU Source-Level Debugger''. 5111 5112*** Changes in GDB 5.3: 5113 5114* GNU/Linux shared library multi-threaded performance improved. 5115 5116When debugging a multi-threaded application on GNU/Linux, GDB now uses 5117`/proc', in preference to `ptrace' for memory reads. This may result 5118in an improvement in the start-up time of multi-threaded, shared 5119library applications when run under GDB. One GDB user writes: ``loads 5120shared libs like mad''. 5121 5122* ``gdbserver'' now supports multi-threaded applications on some targets 5123 5124Support for debugging multi-threaded applications which use 5125the GNU/Linux LinuxThreads package has been added for 5126arm*-*-linux*-gnu*, i[3456]86-*-linux*-gnu*, mips*-*-linux*-gnu*, 5127powerpc*-*-linux*-gnu*, and sh*-*-linux*-gnu*. 5128 5129* GDB now supports C/C++ preprocessor macros. 5130 5131GDB now expands preprocessor macro invocations in C/C++ expressions, 5132and provides various commands for showing macro definitions and how 5133they expand. 5134 5135The new command `macro expand EXPRESSION' expands any macro 5136invocations in expression, and shows the result. 5137 5138The new command `show macro MACRO-NAME' shows the definition of the 5139macro named MACRO-NAME, and where it was defined. 5140 5141Most compilers don't include information about macros in the debugging 5142information by default. In GCC 3.1, for example, you need to compile 5143your program with the options `-gdwarf-2 -g3'. If the macro 5144information is present in the executable, GDB will read it. 5145 5146* Multi-arched targets. 5147 5148DEC Alpha (partial) alpha*-*-* 5149DEC VAX (partial) vax-*-* 5150NEC V850 v850-*-* 5151National Semiconductor NS32000 (partial) ns32k-*-* 5152Motorola 68000 (partial) m68k-*-* 5153Motorola MCORE mcore-*-* 5154 5155* New targets. 5156 5157Fujitsu FRV architecture added by Red Hat frv*-*-* 5158 5159 5160* New native configurations 5161 5162Alpha NetBSD alpha*-*-netbsd* 5163SH NetBSD sh*-*-netbsdelf* 5164MIPS NetBSD mips*-*-netbsd* 5165UltraSPARC NetBSD sparc64-*-netbsd* 5166 5167* OBSOLETE configurations and files 5168 5169Configurations that have been declared obsolete in this release have 5170been commented out. Unless there is activity to revive these 5171configurations, the next release of GDB will have their sources 5172permanently REMOVED. 5173 5174Mitsubishi D30V d30v-*-* 5175OS/9000 i[34]86-*-os9k 5176IBM AIX PS/2 i[3456]86-*-aix 5177Fujitsu FR30 fr30-*-elf* 5178Motorola Delta 88000 running Sys V m88k-motorola-sysv or delta88 5179Argonaut Risc Chip (ARC) arc-*-* 5180i386 running Mach 3.0 i[3456]86-*-mach3* 5181i386 running Mach i[3456]86-*-mach* 5182i386 running OSF/1 i[3456]86-*osf1mk* 5183HP/Apollo 68k Family m68*-apollo*-sysv*, 5184 m68*-apollo*-bsd*, 5185 m68*-hp-bsd*, m68*-hp-hpux* 5186I960 with MON960 i960-*-coff 5187 5188* OBSOLETE languages 5189 5190CHILL, a Pascal like language used by telecommunications companies. 5191 5192* REMOVED configurations and files 5193 5194AMD 29k family via UDI a29k-amd-udi, udi29k 5195A29K VxWorks a29k-*-vxworks 5196AMD 29000 embedded, using EBMON a29k-none-none 5197AMD 29000 embedded with COFF a29k-none-coff 5198AMD 29000 embedded with a.out a29k-none-aout 5199 5200testsuite/gdb.hp/gdb.threads-hp/ directory 5201 5202* New command "set max-user-call-depth <nnn>" 5203 5204This command allows the user to limit the call depth of user-defined 5205commands. The default is 1024. 5206 5207* Changes in FreeBSD/i386 native debugging. 5208 5209Support for the "generate-core-file" has been added. 5210 5211* New commands "dump", "append", and "restore". 5212 5213These commands allow data to be copied from target memory 5214to a bfd-format or binary file (dump and append), and back 5215from a file into memory (restore). 5216 5217* Improved "next/step" support on multi-processor Alpha Tru64. 5218 5219The previous single-step mechanism could cause unpredictable problems, 5220including the random appearance of SIGSEGV or SIGTRAP signals. The use 5221of a software single-step mechanism prevents this. 5222 5223*** Changes in GDB 5.2.1: 5224 5225* New targets. 5226 5227Atmel AVR avr*-*-* 5228 5229* Bug fixes 5230 5231gdb/182: gdb/323: gdb/237: On alpha, gdb was reporting: 5232mdebugread.c:2443: gdb-internal-error: sect_index_data not initialized 5233Fix, by Joel Brobecker imported from mainline. 5234 5235gdb/439: gdb/291: On some ELF object files, gdb was reporting: 5236dwarf2read.c:1072: gdb-internal-error: sect_index_text not initialize 5237Fix, by Fred Fish, imported from mainline. 5238 5239Dwarf2 .debug_frame & .eh_frame handler improved in many ways. 5240Surprisingly enough, it works now. 5241By Michal Ludvig, imported from mainline. 5242 5243i386 hardware watchpoint support: 5244avoid misses on second run for some targets. 5245By Pierre Muller, imported from mainline. 5246 5247*** Changes in GDB 5.2: 5248 5249* New command "set trust-readonly-sections on[off]". 5250 5251This command is a hint that tells gdb that read-only sections 5252really are read-only (ie. that their contents will not change). 5253In this mode, gdb will go to the object file rather than the 5254target to read memory from read-only sections (such as ".text"). 5255This can be a significant performance improvement on some 5256(notably embedded) targets. 5257 5258* New command "generate-core-file" (or "gcore"). 5259 5260This new gdb command allows the user to drop a core file of the child 5261process state at any time. So far it's been implemented only for 5262GNU/Linux and Solaris, but should be relatively easily ported to other 5263hosts. Argument is core file name (defaults to core.<pid>). 5264 5265* New command line option 5266 5267GDB now accepts --pid or -p followed by a process id. 5268 5269* Change in command line behavior -- corefiles vs. process ids. 5270 5271There is a subtle behavior in the way in which GDB handles 5272command line arguments. The first non-flag argument is always 5273a program to debug, but the second non-flag argument may either 5274be a corefile or a process id. Previously, GDB would attempt to 5275open the second argument as a corefile, and if that failed, would 5276issue a superfluous error message and then attempt to attach it as 5277a process. Now, if the second argument begins with a non-digit, 5278it will be treated as a corefile. If it begins with a digit, 5279GDB will attempt to attach it as a process, and if no such process 5280is found, will then attempt to open it as a corefile. 5281 5282* Changes in ARM configurations. 5283 5284Multi-arch support is enabled for all ARM configurations. The ARM/NetBSD 5285configuration is fully multi-arch. 5286 5287* New native configurations 5288 5289ARM NetBSD arm*-*-netbsd* 5290x86 OpenBSD i[3456]86-*-openbsd* 5291AMD x86-64 running GNU/Linux x86_64-*-linux-* 5292Sparc64 running FreeBSD sparc64-*-freebsd* 5293 5294* New targets 5295 5296Sanyo XStormy16 xstormy16-elf 5297 5298* OBSOLETE configurations and files 5299 5300Configurations that have been declared obsolete in this release have 5301been commented out. Unless there is activity to revive these 5302configurations, the next release of GDB will have their sources 5303permanently REMOVED. 5304 5305AMD 29k family via UDI a29k-amd-udi, udi29k 5306A29K VxWorks a29k-*-vxworks 5307AMD 29000 embedded, using EBMON a29k-none-none 5308AMD 29000 embedded with COFF a29k-none-coff 5309AMD 29000 embedded with a.out a29k-none-aout 5310 5311testsuite/gdb.hp/gdb.threads-hp/ directory 5312 5313* REMOVED configurations and files 5314 5315TI TMS320C80 tic80-*-* 5316WDC 65816 w65-*-* 5317PowerPC Solaris powerpcle-*-solaris* 5318PowerPC Windows NT powerpcle-*-cygwin32 5319PowerPC Netware powerpc-*-netware* 5320Harris/CXUX m88k m88*-harris-cxux* 5321Most ns32k hosts and targets ns32k-*-mach3* ns32k-umax-* 5322 ns32k-utek-sysv* ns32k-utek-* 5323SunOS 4.0.Xi on i386 i[3456]86-*-sunos* 5324Ultracomputer (29K) running Sym1 a29k-nyu-sym1 a29k-*-kern* 5325Sony NEWS (68K) running NEWSOS 3.x m68*-sony-sysv news 5326ISI Optimum V (3.05) under 4.3bsd. m68*-isi-* 5327Apple Macintosh (MPW) host and target N/A host, powerpc-*-macos* 5328 5329* Changes to command line processing 5330 5331The new `--args' feature can be used to specify command-line arguments 5332for the inferior from gdb's command line. 5333 5334* Changes to key bindings 5335 5336There is a new `operate-and-get-next' function bound to `C-o'. 5337 5338*** Changes in GDB 5.1.1 5339 5340Fix compile problem on DJGPP. 5341 5342Fix a problem with floating-point registers on the i386 being 5343corrupted. 5344 5345Fix to stop GDB crashing on .debug_str debug info. 5346 5347Numerous documentation fixes. 5348 5349Numerous testsuite fixes. 5350 5351*** Changes in GDB 5.1: 5352 5353* New native configurations 5354 5355Alpha FreeBSD alpha*-*-freebsd* 5356x86 FreeBSD 3.x and 4.x i[3456]86*-freebsd[34]* 5357MIPS GNU/Linux mips*-*-linux* 5358MIPS SGI Irix 6.x mips*-sgi-irix6* 5359ia64 AIX ia64-*-aix* 5360s390 and s390x GNU/Linux {s390,s390x}-*-linux* 5361 5362* New targets 5363 5364Motorola 68HC11 and 68HC12 m68hc11-elf 5365CRIS cris-axis 5366UltraSparc running GNU/Linux sparc64-*-linux* 5367 5368* OBSOLETE configurations and files 5369 5370x86 FreeBSD before 2.2 i[3456]86*-freebsd{1,2.[01]}*, 5371Harris/CXUX m88k m88*-harris-cxux* 5372Most ns32k hosts and targets ns32k-*-mach3* ns32k-umax-* 5373 ns32k-utek-sysv* ns32k-utek-* 5374TI TMS320C80 tic80-*-* 5375WDC 65816 w65-*-* 5376Ultracomputer (29K) running Sym1 a29k-nyu-sym1 a29k-*-kern* 5377PowerPC Solaris powerpcle-*-solaris* 5378PowerPC Windows NT powerpcle-*-cygwin32 5379PowerPC Netware powerpc-*-netware* 5380SunOS 4.0.Xi on i386 i[3456]86-*-sunos* 5381Sony NEWS (68K) running NEWSOS 3.x m68*-sony-sysv news 5382ISI Optimum V (3.05) under 4.3bsd. m68*-isi-* 5383Apple Macintosh (MPW) host N/A 5384 5385stuff.c (Program to stuff files into a specially prepared space in kdb) 5386kdb-start.c (Main loop for the standalone kernel debugger) 5387 5388Configurations that have been declared obsolete in this release have 5389been commented out. Unless there is activity to revive these 5390configurations, the next release of GDB will have their sources 5391permanently REMOVED. 5392 5393* REMOVED configurations and files 5394 5395Altos 3068 m68*-altos-* 5396Convex c1-*-*, c2-*-* 5397Pyramid pyramid-*-* 5398ARM RISCix arm-*-* (as host) 5399Tahoe tahoe-*-* 5400ser-ocd.c *-*-* 5401 5402* GDB has been converted to ISO C. 5403 5404GDB's source code has been converted to ISO C. In particular, the 5405sources are fully protoized, and rely on standard headers being 5406present. 5407 5408* Other news: 5409 5410* "info symbol" works on platforms which use COFF, ECOFF, XCOFF, and NLM. 5411 5412* The MI enabled by default. 5413 5414The new machine oriented interface (MI) introduced in GDB 5.0 has been 5415revised and enabled by default. Packages which use GDB as a debugging 5416engine behind a UI or another front end are encouraged to switch to 5417using the GDB/MI interface, instead of the old annotations interface 5418which is now deprecated. 5419 5420* Support for debugging Pascal programs. 5421 5422GDB now includes support for debugging Pascal programs. The following 5423main features are supported: 5424 5425 - Pascal-specific data types such as sets; 5426 5427 - automatic recognition of Pascal sources based on file-name 5428 extension; 5429 5430 - Pascal-style display of data types, variables, and functions; 5431 5432 - a Pascal expression parser. 5433 5434However, some important features are not yet supported. 5435 5436 - Pascal string operations are not supported at all; 5437 5438 - there are some problems with boolean types; 5439 5440 - Pascal type hexadecimal constants are not supported 5441 because they conflict with the internal variables format; 5442 5443 - support for Pascal objects and classes is not full yet; 5444 5445 - unlike Pascal, GDB is case-sensitive for symbol names. 5446 5447* Changes in completion. 5448 5449Commands such as `shell', `run' and `set args', which pass arguments 5450to inferior programs, now complete on file names, similar to what 5451users expect at the shell prompt. 5452 5453Commands which accept locations, such as `disassemble', `print', 5454`breakpoint', `until', etc. now complete on filenames as well as 5455program symbols. Thus, if you type "break foob TAB", and the source 5456files linked into the programs include `foobar.c', that file name will 5457be one of the candidates for completion. However, file names are not 5458considered for completion after you typed a colon that delimits a file 5459name from a name of a function in that file, as in "break foo.c:bar". 5460 5461`set demangle-style' completes on available demangling styles. 5462 5463* New platform-independent commands: 5464 5465It is now possible to define a post-hook for a command as well as a 5466hook that runs before the command. For more details, see the 5467documentation of `hookpost' in the GDB manual. 5468 5469* Changes in GNU/Linux native debugging. 5470 5471Support for debugging multi-threaded programs has been completely 5472revised for all platforms except m68k and sparc. You can now debug as 5473many threads as your system allows you to have. 5474 5475Attach/detach is supported for multi-threaded programs. 5476 5477Support for SSE registers was added for x86. This doesn't work for 5478multi-threaded programs though. 5479 5480* Changes in MIPS configurations. 5481 5482Multi-arch support is enabled for all MIPS configurations. 5483 5484GDB can now be built as native debugger on SGI Irix 6.x systems for 5485debugging n32 executables. (Debugging 64-bit executables is not yet 5486supported.) 5487 5488* Unified support for hardware watchpoints in all x86 configurations. 5489 5490Most (if not all) native x86 configurations support hardware-assisted 5491breakpoints and watchpoints in a unified manner. This support 5492implements debug register sharing between watchpoints, which allows to 5493put a virtually infinite number of watchpoints on the same address, 5494and also supports watching regions up to 16 bytes with several debug 5495registers. 5496 5497The new maintenance command `maintenance show-debug-regs' toggles 5498debugging print-outs in functions that insert, remove, and test 5499watchpoints and hardware breakpoints. 5500 5501* Changes in the DJGPP native configuration. 5502 5503New command ``info dos sysinfo'' displays assorted information about 5504the CPU, OS, memory, and DPMI server. 5505 5506New commands ``info dos gdt'', ``info dos ldt'', and ``info dos idt'' 5507display information about segment descriptors stored in GDT, LDT, and 5508IDT. 5509 5510New commands ``info dos pde'' and ``info dos pte'' display entries 5511from Page Directory and Page Tables (for now works with CWSDPMI only). 5512New command ``info dos address-pte'' displays the Page Table entry for 5513a given linear address. 5514 5515GDB can now pass command lines longer than 126 characters to the 5516program being debugged (requires an update to the libdbg.a library 5517which is part of the DJGPP development kit). 5518 5519DWARF2 debug info is now supported. 5520 5521It is now possible to `step' and `next' through calls to `longjmp'. 5522 5523* Changes in documentation. 5524 5525All GDB documentation was converted to GFDL, the GNU Free 5526Documentation License. 5527 5528Tracepoints-related commands are now fully documented in the GDB 5529manual. 5530 5531TUI, the Text-mode User Interface, is now documented in the manual. 5532 5533Tracepoints-related commands are now fully documented in the GDB 5534manual. 5535 5536The "GDB Internals" manual now has an index. It also includes 5537documentation of `ui_out' functions, GDB coding standards, x86 5538hardware watchpoints, and memory region attributes. 5539 5540* GDB's version number moved to ``version.in'' 5541 5542The Makefile variable VERSION has been replaced by the file 5543``version.in''. People creating GDB distributions should update the 5544contents of this file. 5545 5546* gdba.el deleted 5547 5548GUD support is now a standard part of the EMACS distribution. 5549 5550*** Changes in GDB 5.0: 5551 5552* Improved support for debugging FP programs on x86 targets 5553 5554Unified and much-improved support for debugging floating-point 5555programs on all x86 targets. In particular, ``info float'' now 5556displays the FP registers in the same format on all x86 targets, with 5557greater level of detail. 5558 5559* Improvements and bugfixes in hardware-assisted watchpoints 5560 5561It is now possible to watch array elements, struct members, and 5562bitfields with hardware-assisted watchpoints. Data-read watchpoints 5563on x86 targets no longer erroneously trigger when the address is 5564written. 5565 5566* Improvements in the native DJGPP version of GDB 5567 5568The distribution now includes all the scripts and auxiliary files 5569necessary to build the native DJGPP version on MS-DOS/MS-Windows 5570machines ``out of the box''. 5571 5572The DJGPP version can now debug programs that use signals. It is 5573possible to catch signals that happened in the debuggee, deliver 5574signals to it, interrupt it with Ctrl-C, etc. (Previously, a signal 5575would kill the program being debugged.) Programs that hook hardware 5576interrupts (keyboard, timer, etc.) can also be debugged. 5577 5578It is now possible to debug DJGPP programs that redirect their 5579standard handles or switch them to raw (as opposed to cooked) mode, or 5580even close them. The command ``run < foo > bar'' works as expected, 5581and ``info terminal'' reports useful information about the debuggee's 5582terminal, including raw/cooked mode, redirection, etc. 5583 5584The DJGPP version now uses termios functions for console I/O, which 5585enables debugging graphics programs. Interrupting GDB with Ctrl-C 5586also works. 5587 5588DOS-style file names with drive letters are now fully supported by 5589GDB. 5590 5591It is now possible to debug DJGPP programs that switch their working 5592directory. It is also possible to rerun the debuggee any number of 5593times without restarting GDB; thus, you can use the same setup, 5594breakpoints, etc. for many debugging sessions. 5595 5596* New native configurations 5597 5598ARM GNU/Linux arm*-*-linux* 5599PowerPC GNU/Linux powerpc-*-linux* 5600 5601* New targets 5602 5603Motorola MCore mcore-*-* 5604x86 VxWorks i[3456]86-*-vxworks* 5605PowerPC VxWorks powerpc-*-vxworks* 5606TI TMS320C80 tic80-*-* 5607 5608* OBSOLETE configurations 5609 5610Altos 3068 m68*-altos-* 5611Convex c1-*-*, c2-*-* 5612Pyramid pyramid-*-* 5613ARM RISCix arm-*-* (as host) 5614Tahoe tahoe-*-* 5615 5616Configurations that have been declared obsolete will be commented out, 5617but the code will be left in place. If there is no activity to revive 5618these configurations before the next release of GDB, the sources will 5619be permanently REMOVED. 5620 5621* Gould support removed 5622 5623Support for the Gould PowerNode and NP1 has been removed. 5624 5625* New features for SVR4 5626 5627On SVR4 native platforms (such as Solaris), if you attach to a process 5628without first loading a symbol file, GDB will now attempt to locate and 5629load symbols from the running process's executable file. 5630 5631* Many C++ enhancements 5632 5633C++ support has been greatly improved. Overload resolution now works properly 5634in almost all cases. RTTI support is on the way. 5635 5636* Remote targets can connect to a sub-program 5637 5638A popen(3) style serial-device has been added. This device starts a 5639sub-process (such as a stand-alone simulator) and then communicates 5640with that. The sub-program to run is specified using the syntax 5641``|<program> <args>'' vis: 5642 5643 (gdb) set remotedebug 1 5644 (gdb) target extended-remote |mn10300-elf-sim program-args 5645 5646* MIPS 64 remote protocol 5647 5648A long standing bug in the mips64 remote protocol where by GDB 5649expected certain 32 bit registers (ex SR) to be transfered as 32 5650instead of 64 bits has been fixed. 5651 5652The command ``set remote-mips64-transfers-32bit-regs on'' has been 5653added to provide backward compatibility with older versions of GDB. 5654 5655* ``set remotebinarydownload'' replaced by ``set remote X-packet'' 5656 5657The command ``set remotebinarydownload'' command has been replaced by 5658``set remote X-packet''. Other commands in ``set remote'' family 5659include ``set remote P-packet''. 5660 5661* Breakpoint commands accept ranges. 5662 5663The breakpoint commands ``enable'', ``disable'', and ``delete'' now 5664accept a range of breakpoints, e.g. ``5-7''. The tracepoint command 5665``tracepoint passcount'' also accepts a range of tracepoints. 5666 5667* ``apropos'' command added. 5668 5669The ``apropos'' command searches through command names and 5670documentation strings, printing out matches, making it much easier to 5671try to find a command that does what you are looking for. 5672 5673* New MI interface 5674 5675A new machine oriented interface (MI) has been added to GDB. This 5676interface is designed for debug environments running GDB as a separate 5677process. This is part of the long term libGDB project. See the 5678"GDB/MI" chapter of the GDB manual for further information. It can be 5679enabled by configuring with: 5680 5681 .../configure --enable-gdbmi 5682 5683*** Changes in GDB-4.18: 5684 5685* New native configurations 5686 5687HP-UX 10.20 hppa*-*-hpux10.20 5688HP-UX 11.x hppa*-*-hpux11.0* 5689M68K GNU/Linux m68*-*-linux* 5690 5691* New targets 5692 5693Fujitsu FR30 fr30-*-elf* 5694Intel StrongARM strongarm-*-* 5695Mitsubishi D30V d30v-*-* 5696 5697* OBSOLETE configurations 5698 5699Gould PowerNode, NP1 np1-*-*, pn-*-* 5700 5701Configurations that have been declared obsolete will be commented out, 5702but the code will be left in place. If there is no activity to revive 5703these configurations before the next release of GDB, the sources will 5704be permanently REMOVED. 5705 5706* ANSI/ISO C 5707 5708As a compatibility experiment, GDB's source files buildsym.h and 5709buildsym.c have been converted to pure standard C, no longer 5710containing any K&R compatibility code. We believe that all systems in 5711use today either come with a standard C compiler, or have a GCC port 5712available. If this is not true, please report the affected 5713configuration to bug-gdb@gnu.org immediately. See the README file for 5714information about getting a standard C compiler if you don't have one 5715already. 5716 5717* Readline 2.2 5718 5719GDB now uses readline 2.2. 5720 5721* set extension-language 5722 5723You can now control the mapping between filename extensions and source 5724languages by using the `set extension-language' command. For instance, 5725you can ask GDB to treat .c files as C++ by saying 5726 set extension-language .c c++ 5727The command `info extensions' lists all of the recognized extensions 5728and their associated languages. 5729 5730* Setting processor type for PowerPC and RS/6000 5731 5732When GDB is configured for a powerpc*-*-* or an rs6000*-*-* target, 5733you can use the `set processor' command to specify what variant of the 5734PowerPC family you are debugging. The command 5735 5736 set processor NAME 5737 5738sets the PowerPC/RS6000 variant to NAME. GDB knows about the 5739following PowerPC and RS6000 variants: 5740 5741 ppc-uisa PowerPC UISA - a PPC processor as viewed by user-level code 5742 rs6000 IBM RS6000 ("POWER") architecture, user-level view 5743 403 IBM PowerPC 403 5744 403GC IBM PowerPC 403GC 5745 505 Motorola PowerPC 505 5746 860 Motorola PowerPC 860 or 850 5747 601 Motorola PowerPC 601 5748 602 Motorola PowerPC 602 5749 603 Motorola/IBM PowerPC 603 or 603e 5750 604 Motorola PowerPC 604 or 604e 5751 750 Motorola/IBM PowerPC 750 or 750 5752 5753At the moment, this command just tells GDB what to name the 5754special-purpose processor registers. Since almost all the affected 5755registers are inaccessible to user-level programs, this command is 5756only useful for remote debugging in its present form. 5757 5758* HP-UX support 5759 5760Thanks to a major code donation from Hewlett-Packard, GDB now has much 5761more extensive support for HP-UX. Added features include shared 5762library support, kernel threads and hardware watchpoints for 11.00, 5763support for HP's ANSI C and C++ compilers, and a compatibility mode 5764for xdb and dbx commands. 5765 5766* Catchpoints 5767 5768HP's donation includes the new concept of catchpoints, which is a 5769generalization of the old catch command. On HP-UX, it is now possible 5770to catch exec, fork, and vfork, as well as library loading. 5771 5772This means that the existing catch command has changed; its first 5773argument now specifies the type of catch to be set up. See the 5774output of "help catch" for a list of catchpoint types. 5775 5776* Debugging across forks 5777 5778On HP-UX, you can choose which process to debug when a fork() happens 5779in the inferior. 5780 5781* TUI 5782 5783HP has donated a curses-based terminal user interface (TUI). To get 5784it, build with --enable-tui. Although this can be enabled for any 5785configuration, at present it only works for native HP debugging. 5786 5787* GDB remote protocol additions 5788 5789A new protocol packet 'X' that writes binary data is now available. 5790Default behavior is to try 'X', then drop back to 'M' if the stub 5791fails to respond. The settable variable `remotebinarydownload' 5792allows explicit control over the use of 'X'. 5793 5794For 64-bit targets, the memory packets ('M' and 'm') can now contain a 5795full 64-bit address. The command 5796 5797 set remoteaddresssize 32 5798 5799can be used to revert to the old behaviour. For existing remote stubs 5800the change should not be noticed, as the additional address information 5801will be discarded. 5802 5803In order to assist in debugging stubs, you may use the maintenance 5804command `packet' to send any text string to the stub. For instance, 5805 5806 maint packet heythere 5807 5808sends the packet "$heythere#<checksum>". Note that it is very easy to 5809disrupt a debugging session by sending the wrong packet at the wrong 5810time. 5811 5812The compare-sections command allows you to compare section data on the 5813target to what is in the executable file without uploading or 5814downloading, by comparing CRC checksums. 5815 5816* Tracing can collect general expressions 5817 5818You may now collect general expressions at tracepoints. This requires 5819further additions to the target-side stub; see tracepoint.c and 5820doc/agentexpr.texi for further details. 5821 5822* mask-address variable for Mips 5823 5824For Mips targets, you may control the zeroing of the upper 32 bits of 5825a 64-bit address by entering `set mask-address on'. This is mainly 5826of interest to users of embedded R4xxx and R5xxx processors. 5827 5828* Higher serial baud rates 5829 5830GDB's serial code now allows you to specify baud rates 57600, 115200, 5831230400, and 460800 baud. (Note that your host system may not be able 5832to achieve all of these rates.) 5833 5834* i960 simulator 5835 5836The i960 configuration now includes an initial implementation of a 5837builtin simulator, contributed by Jim Wilson. 5838 5839 5840*** Changes in GDB-4.17: 5841 5842* New native configurations 5843 5844Alpha GNU/Linux alpha*-*-linux* 5845Unixware 2.x i[3456]86-unixware2* 5846Irix 6.x mips*-sgi-irix6* 5847PowerPC GNU/Linux powerpc-*-linux* 5848PowerPC Solaris powerpcle-*-solaris* 5849Sparc GNU/Linux sparc-*-linux* 5850Motorola sysV68 R3V7.1 m68k-motorola-sysv 5851 5852* New targets 5853 5854Argonaut Risc Chip (ARC) arc-*-* 5855Hitachi H8/300S h8300*-*-* 5856Matsushita MN10200 w/simulator mn10200-*-* 5857Matsushita MN10300 w/simulator mn10300-*-* 5858MIPS NEC VR4100 mips64*vr4100*{,el}-*-elf* 5859MIPS NEC VR5000 mips64*vr5000*{,el}-*-elf* 5860MIPS Toshiba TX39 mips64*tx39*{,el}-*-elf* 5861Mitsubishi D10V w/simulator d10v-*-* 5862Mitsubishi M32R/D w/simulator m32r-*-elf* 5863Tsqware Sparclet sparclet-*-* 5864NEC V850 w/simulator v850-*-* 5865 5866* New debugging protocols 5867 5868ARM with RDI protocol arm*-*-* 5869M68K with dBUG monitor m68*-*-{aout,coff,elf} 5870DDB and LSI variants of PMON protocol mips*-*-* 5871PowerPC with DINK32 monitor powerpc{,le}-*-eabi 5872PowerPC with SDS protocol powerpc{,le}-*-eabi 5873Macraigor OCD (Wiggler) devices powerpc{,le}-*-eabi 5874 5875* DWARF 2 5876 5877All configurations can now understand and use the DWARF 2 debugging 5878format. The choice is automatic, if the symbol file contains DWARF 2 5879information. 5880 5881* Java frontend 5882 5883GDB now includes basic Java language support. This support is 5884only useful with Java compilers that produce native machine code. 5885 5886* solib-absolute-prefix and solib-search-path 5887 5888For SunOS and SVR4 shared libraries, you may now set the prefix for 5889loading absolute shared library symbol files, and the search path for 5890locating non-absolute shared library symbol files. 5891 5892* Live range splitting 5893 5894GDB can now effectively debug code for which GCC has performed live 5895range splitting as part of its optimization. See gdb/doc/LRS for 5896more details on the expected format of the stabs information. 5897 5898* Hurd support 5899 5900GDB's support for the GNU Hurd, including thread debugging, has been 5901updated to work with current versions of the Hurd. 5902 5903* ARM Thumb support 5904 5905GDB's ARM target configuration now handles the ARM7T (Thumb) 16-bit 5906instruction set. ARM GDB automatically detects when Thumb 5907instructions are in use, and adjusts disassembly and backtracing 5908accordingly. 5909 5910* MIPS16 support 5911 5912GDB's MIPS target configurations now handle the MIP16 16-bit 5913instruction set. 5914 5915* Overlay support 5916 5917GDB now includes support for overlays; if an executable has been 5918linked such that multiple sections are based at the same address, GDB 5919will decide which section to use for symbolic info. You can choose to 5920control the decision manually, using overlay commands, or implement 5921additional target-side support and use "overlay load-target" to bring 5922in the overlay mapping. Do "help overlay" for more detail. 5923 5924* info symbol 5925 5926The command "info symbol <address>" displays information about 5927the symbol at the specified address. 5928 5929* Trace support 5930 5931The standard remote protocol now includes an extension that allows 5932asynchronous collection and display of trace data. This requires 5933extensive support in the target-side debugging stub. Tracing mode 5934includes a new interaction mode in GDB and new commands: see the 5935file tracepoint.c for more details. 5936 5937* MIPS simulator 5938 5939Configurations for embedded MIPS now include a simulator contributed 5940by Cygnus Solutions. The simulator supports the instruction sets 5941of most MIPS variants. 5942 5943* Sparc simulator 5944 5945Sparc configurations may now include the ERC32 simulator contributed 5946by the European Space Agency. The simulator is not built into 5947Sparc targets by default; configure with --enable-sim to include it. 5948 5949* set architecture 5950 5951For target configurations that may include multiple variants of a 5952basic architecture (such as MIPS and SH), you may now set the 5953architecture explicitly. "set arch" sets, "info arch" lists 5954the possible architectures. 5955 5956*** Changes in GDB-4.16: 5957 5958* New native configurations 5959 5960Windows 95, x86 Windows NT i[345]86-*-cygwin32 5961M68K NetBSD m68k-*-netbsd* 5962PowerPC AIX 4.x powerpc-*-aix* 5963PowerPC MacOS powerpc-*-macos* 5964PowerPC Windows NT powerpcle-*-cygwin32 5965RS/6000 AIX 4.x rs6000-*-aix4* 5966 5967* New targets 5968 5969ARM with RDP protocol arm-*-* 5970I960 with MON960 i960-*-coff 5971MIPS VxWorks mips*-*-vxworks* 5972MIPS VR4300 with PMON mips64*vr4300{,el}-*-elf* 5973PowerPC with PPCBUG monitor powerpc{,le}-*-eabi* 5974Hitachi SH3 sh-*-* 5975Matra Sparclet sparclet-*-* 5976 5977* PowerPC simulator 5978 5979The powerpc-eabi configuration now includes the PSIM simulator, 5980contributed by Andrew Cagney, with assistance from Mike Meissner. 5981PSIM is a very elaborate model of the PowerPC, including not only 5982basic instruction set execution, but also details of execution unit 5983performance and I/O hardware. See sim/ppc/README for more details. 5984 5985* Solaris 2.5 5986 5987GDB now works with Solaris 2.5. 5988 5989* Windows 95/NT native 5990 5991GDB will now work as a native debugger on Windows 95 and Windows NT. 5992To build it from source, you must use the "gnu-win32" environment, 5993which uses a DLL to emulate enough of Unix to run the GNU tools. 5994Further information, binaries, and sources are available at 5995ftp.cygnus.com, under pub/gnu-win32. 5996 5997* dont-repeat command 5998 5999If a user-defined command includes the command `dont-repeat', then the 6000command will not be repeated if the user just types return. This is 6001useful if the command is time-consuming to run, so that accidental 6002extra keystrokes don't run the same command many times. 6003 6004* Send break instead of ^C 6005 6006The standard remote protocol now includes an option to send a break 6007rather than a ^C to the target in order to interrupt it. By default, 6008GDB will send ^C; to send a break, set the variable `remotebreak' to 1. 6009 6010* Remote protocol timeout 6011 6012The standard remote protocol includes a new variable `remotetimeout' 6013that allows you to set the number of seconds before GDB gives up trying 6014to read from the target. The default value is 2. 6015 6016* Automatic tracking of dynamic object loading (HPUX and Solaris only) 6017 6018By default GDB will automatically keep track of objects as they are 6019loaded and unloaded by the dynamic linker. By using the command `set 6020stop-on-solib-events 1' you can arrange for GDB to stop the inferior 6021when shared library events occur, thus allowing you to set breakpoints 6022in shared libraries which are explicitly loaded by the inferior. 6023 6024Note this feature does not work on hpux8. On hpux9 you must link 6025/usr/lib/end.o into your program. This feature should work 6026automatically on hpux10. 6027 6028* Irix 5.x hardware watchpoint support 6029 6030Irix 5 configurations now support the use of hardware watchpoints. 6031 6032* Mips protocol "SYN garbage limit" 6033 6034When debugging a Mips target using the `target mips' protocol, you 6035may set the number of characters that GDB will ignore by setting 6036the `syn-garbage-limit'. A value of -1 means that GDB will ignore 6037every character. The default value is 1050. 6038 6039* Recording and replaying remote debug sessions 6040 6041If you set `remotelogfile' to the name of a file, gdb will write to it 6042a recording of a remote debug session. This recording may then be 6043replayed back to gdb using "gdbreplay". See gdbserver/README for 6044details. This is useful when you have a problem with GDB while doing 6045remote debugging; you can make a recording of the session and send it 6046to someone else, who can then recreate the problem. 6047 6048* Speedups for remote debugging 6049 6050GDB includes speedups for downloading and stepping MIPS systems using 6051the IDT monitor, fast downloads to the Hitachi SH E7000 emulator, 6052and more efficient S-record downloading. 6053 6054* Memory use reductions and statistics collection 6055 6056GDB now uses less memory and reports statistics about memory usage. 6057Try the `maint print statistics' command, for example. 6058 6059*** Changes in GDB-4.15: 6060 6061* Psymtabs for XCOFF 6062 6063The symbol reader for AIX GDB now uses partial symbol tables. This 6064can greatly improve startup time, especially for large executables. 6065 6066* Remote targets use caching 6067 6068Remote targets now use a data cache to speed up communication with the 6069remote side. The data cache could lead to incorrect results because 6070it doesn't know about volatile variables, thus making it impossible to 6071debug targets which use memory mapped I/O devices. `set remotecache 6072off' turns the the data cache off. 6073 6074* Remote targets may have threads 6075 6076The standard remote protocol now includes support for multiple threads 6077in the target system, using new protocol commands 'H' and 'T'. See 6078gdb/remote.c for details. 6079 6080* NetROM support 6081 6082If GDB is configured with `--enable-netrom', then it will include 6083support for the NetROM ROM emulator from XLNT Designs. The NetROM 6084acts as though it is a bank of ROM on the target board, but you can 6085write into it over the network. GDB's support consists only of 6086support for fast loading into the emulated ROM; to debug, you must use 6087another protocol, such as standard remote protocol. The usual 6088sequence is something like 6089 6090 target nrom <netrom-hostname> 6091 load <prog> 6092 target remote <netrom-hostname>:1235 6093 6094* Macintosh host 6095 6096GDB now includes support for the Apple Macintosh, as a host only. It 6097may be run as either an MPW tool or as a standalone application, and 6098it can debug through the serial port. All the usual GDB commands are 6099available, but to the target command, you must supply "serial" as the 6100device type instead of "/dev/ttyXX". See mpw-README in the main 6101directory for more information on how to build. The MPW configuration 6102scripts */mpw-config.in support only a few targets, and only the 6103mips-idt-ecoff target has been tested. 6104 6105* Autoconf 6106 6107GDB configuration now uses autoconf. This is not user-visible, 6108but does simplify configuration and building. 6109 6110* hpux10 6111 6112GDB now supports hpux10. 6113 6114*** Changes in GDB-4.14: 6115 6116* New native configurations 6117 6118x86 FreeBSD i[345]86-*-freebsd 6119x86 NetBSD i[345]86-*-netbsd 6120NS32k NetBSD ns32k-*-netbsd 6121Sparc NetBSD sparc-*-netbsd 6122 6123* New targets 6124 6125A29K VxWorks a29k-*-vxworks 6126HP PA PRO embedded (WinBond W89K & Oki OP50N) hppa*-*-pro* 6127CPU32 EST-300 emulator m68*-*-est* 6128PowerPC ELF powerpc-*-elf 6129WDC 65816 w65-*-* 6130 6131* Alpha OSF/1 support for procfs 6132 6133GDB now supports procfs under OSF/1-2.x and higher, which makes it 6134possible to attach to running processes. As the mounting of the /proc 6135filesystem is optional on the Alpha, GDB automatically determines 6136the availability of /proc during startup. This can lead to problems 6137if /proc is unmounted after GDB has been started. 6138 6139* Arguments to user-defined commands 6140 6141User commands may accept up to 10 arguments separated by whitespace. 6142Arguments are accessed within the user command via $arg0..$arg9. A 6143trivial example: 6144define adder 6145 print $arg0 + $arg1 + $arg2 6146 6147To execute the command use: 6148adder 1 2 3 6149 6150Defines the command "adder" which prints the sum of its three arguments. 6151Note the arguments are text substitutions, so they may reference variables, 6152use complex expressions, or even perform inferior function calls. 6153 6154* New `if' and `while' commands 6155 6156This makes it possible to write more sophisticated user-defined 6157commands. Both commands take a single argument, which is the 6158expression to evaluate, and must be followed by the commands to 6159execute, one per line, if the expression is nonzero, the list being 6160terminated by the word `end'. The `if' command list may include an 6161`else' word, which causes the following commands to be executed only 6162if the expression is zero. 6163 6164* Fortran source language mode 6165 6166GDB now includes partial support for Fortran 77. It will recognize 6167Fortran programs and can evaluate a subset of Fortran expressions, but 6168variables and functions may not be handled correctly. GDB will work 6169with G77, but does not yet know much about symbols emitted by other 6170Fortran compilers. 6171 6172* Better HPUX support 6173 6174Most debugging facilities now work on dynamic executables for HPPAs 6175running hpux9 or later. You can attach to running dynamically linked 6176processes, but by default the dynamic libraries will be read-only, so 6177for instance you won't be able to put breakpoints in them. To change 6178that behavior do the following before running the program: 6179 6180 adb -w a.out 6181 __dld_flags?W 0x5 6182 control-d 6183 6184This will cause the libraries to be mapped private and read-write. 6185To revert to the normal behavior, do this: 6186 6187 adb -w a.out 6188 __dld_flags?W 0x4 6189 control-d 6190 6191You cannot set breakpoints or examine data in the library until after 6192the library is loaded if the function/data symbols do not have 6193external linkage. 6194 6195GDB can now also read debug symbols produced by the HP C compiler on 6196HPPAs (sorry, no C++, Fortran or 68k support). 6197 6198* Target byte order now dynamically selectable 6199 6200You can choose which byte order to use with a target system, via the 6201commands "set endian big" and "set endian little", and you can see the 6202current setting by using "show endian". You can also give the command 6203"set endian auto", in which case GDB will use the byte order 6204associated with the executable. Currently, only embedded MIPS 6205configurations support dynamic selection of target byte order. 6206 6207* New DOS host serial code 6208 6209This version uses DPMI interrupts to handle buffered I/O, so you 6210no longer need to run asynctsr when debugging boards connected to 6211a PC's serial port. 6212 6213*** Changes in GDB-4.13: 6214 6215* New "complete" command 6216 6217This lists all the possible completions for the rest of the line, if it 6218were to be given as a command itself. This is intended for use by emacs. 6219 6220* Trailing space optional in prompt 6221 6222"set prompt" no longer adds a space for you after the prompt you set. This 6223allows you to set a prompt which ends in a space or one that does not. 6224 6225* Breakpoint hit counts 6226 6227"info break" now displays a count of the number of times the breakpoint 6228has been hit. This is especially useful in conjunction with "ignore"; you 6229can ignore a large number of breakpoint hits, look at the breakpoint info 6230to see how many times the breakpoint was hit, then run again, ignoring one 6231less than that number, and this will get you quickly to the last hit of 6232that breakpoint. 6233 6234* Ability to stop printing at NULL character 6235 6236"set print null-stop" will cause GDB to stop printing the characters of 6237an array when the first NULL is encountered. This is useful when large 6238arrays actually contain only short strings. 6239 6240* Shared library breakpoints 6241 6242In SunOS 4.x, SVR4, and Alpha OSF/1 configurations, you can now set 6243breakpoints in shared libraries before the executable is run. 6244 6245* Hardware watchpoints 6246 6247There is a new hardware breakpoint for the watch command for sparclite 6248targets. See gdb/sparclite/hw_breakpoint.note. 6249 6250Hardware watchpoints are also now supported under GNU/Linux. 6251 6252* Annotations 6253 6254Annotations have been added. These are for use with graphical interfaces, 6255and are still experimental. Currently only gdba.el uses these. 6256 6257* Improved Irix 5 support 6258 6259GDB now works properly with Irix 5.2. 6260 6261* Improved HPPA support 6262 6263GDB now works properly with the latest GCC and GAS. 6264 6265* New native configurations 6266 6267Sequent PTX4 i[34]86-sequent-ptx4 6268HPPA running OSF/1 hppa*-*-osf* 6269Atari TT running SVR4 m68*-*-sysv4* 6270RS/6000 LynxOS rs6000-*-lynxos* 6271 6272* New targets 6273 6274OS/9000 i[34]86-*-os9k 6275MIPS R4000 mips64*{,el}-*-{ecoff,elf} 6276Sparc64 sparc64-*-* 6277 6278* Hitachi SH7000 and E7000-PC ICE support 6279 6280There is now support for communicating with the Hitachi E7000-PC ICE. 6281This is available automatically when GDB is configured for the SH. 6282 6283* Fixes 6284 6285As usual, a variety of small fixes and improvements, both generic 6286and configuration-specific. See the ChangeLog for more detail. 6287 6288*** Changes in GDB-4.12: 6289 6290* Irix 5 is now supported 6291 6292* HPPA support 6293 6294GDB-4.12 on the HPPA has a number of changes which make it unable 6295to debug the output from the currently released versions of GCC and 6296GAS (GCC 2.5.8 and GAS-2.2 or PAGAS-1.36). Until the next major release 6297of GCC and GAS, versions of these tools designed to work with GDB-4.12 6298can be retrieved via anonymous ftp from jaguar.cs.utah.edu:/dist. 6299 6300 6301*** Changes in GDB-4.11: 6302 6303* User visible changes: 6304 6305* Remote Debugging 6306 6307The "set remotedebug" option is now consistent between the mips remote 6308target, remote targets using the gdb-specific protocol, UDI (AMD's 6309debug protocol for the 29k) and the 88k bug monitor. It is now an 6310integer specifying a debug level (normally 0 or 1, but 2 means more 6311debugging info for the mips target). 6312 6313* DEC Alpha native support 6314 6315GDB now works on the DEC Alpha. GCC 2.4.5 does not produce usable 6316debug info, but GDB works fairly well with the DEC compiler and should 6317work with a future GCC release. See the README file for a few 6318Alpha-specific notes. 6319 6320* Preliminary thread implementation 6321 6322GDB now has preliminary thread support for both SGI/Irix and LynxOS. 6323 6324* LynxOS native and target support for 386 6325 6326This release has been hosted on LynxOS 2.2, and also can be configured 6327to remotely debug programs running under LynxOS (see gdb/gdbserver/README 6328for details). 6329 6330* Improvements in C++ mangling/demangling. 6331 6332This release has much better g++ debugging, specifically in name 6333mangling/demangling, virtual function calls, print virtual table, 6334call methods, ...etc. 6335 6336*** Changes in GDB-4.10: 6337 6338 * User visible changes: 6339 6340Remote debugging using the GDB-specific (`target remote') protocol now 6341supports the `load' command. This is only useful if you have some 6342other way of getting the stub to the target system, and you can put it 6343somewhere in memory where it won't get clobbered by the download. 6344 6345Filename completion now works. 6346 6347When run under emacs mode, the "info line" command now causes the 6348arrow to point to the line specified. Also, "info line" prints 6349addresses in symbolic form (as well as hex). 6350 6351All vxworks based targets now support a user settable option, called 6352vxworks-timeout. This option represents the number of seconds gdb 6353should wait for responses to rpc's. You might want to use this if 6354your vxworks target is, perhaps, a slow software simulator or happens 6355to be on the far side of a thin network line. 6356 6357 * DEC alpha support 6358 6359This release contains support for using a DEC alpha as a GDB host for 6360cross debugging. Native alpha debugging is not supported yet. 6361 6362 6363*** Changes in GDB-4.9: 6364 6365 * Testsuite 6366 6367This is the first GDB release which is accompanied by a matching testsuite. 6368The testsuite requires installation of dejagnu, which should be available 6369via ftp from most sites that carry GNU software. 6370 6371 * C++ demangling 6372 6373'Cfront' style demangling has had its name changed to 'ARM' style, to 6374emphasize that it was written from the specifications in the C++ Annotated 6375Reference Manual, not necessarily to be compatible with AT&T cfront. Despite 6376disclaimers, it still generated too much confusion with users attempting to 6377use gdb with AT&T cfront. 6378 6379 * Simulators 6380 6381GDB now uses a standard remote interface to a simulator library. 6382So far, the library contains simulators for the Zilog Z8001/2, the 6383Hitachi H8/300, H8/500 and Super-H. 6384 6385 * New targets supported 6386 6387H8/300 simulator h8300-hitachi-hms or h8300hms 6388H8/500 simulator h8500-hitachi-hms or h8500hms 6389SH simulator sh-hitachi-hms or sh 6390Z8000 simulator z8k-zilog-none or z8ksim 6391IDT MIPS board over serial line mips-idt-ecoff 6392 6393Cross-debugging to GO32 targets is supported. It requires a custom 6394version of the i386-stub.c module which is integrated with the 6395GO32 memory extender. 6396 6397 * New remote protocols 6398 6399MIPS remote debugging protocol. 6400 6401 * New source languages supported 6402 6403This version includes preliminary support for Chill, a Pascal like language 6404used by telecommunications companies. Chill support is also being integrated 6405into the GNU compiler, but we don't know when it will be publically available. 6406 6407 6408*** Changes in GDB-4.8: 6409 6410 * HP Precision Architecture supported 6411 6412GDB now supports HP PA-RISC machines running HPUX. A preliminary 6413version of this support was available as a set of patches from the 6414University of Utah. GDB does not support debugging of programs 6415compiled with the HP compiler, because HP will not document their file 6416format. Instead, you must use GCC (version 2.3.2 or later) and PA-GAS 6417(as available from jaguar.cs.utah.edu:/dist/pa-gas.u4.tar.Z). 6418 6419Many problems in the preliminary version have been fixed. 6420 6421 * Faster and better demangling 6422 6423We have improved template demangling and fixed numerous bugs in the GNU style 6424demangler. It can now handle type modifiers such as `static' or `const'. Wide 6425character types (wchar_t) are now supported. Demangling of each symbol is now 6426only done once, and is cached when the symbol table for a file is read in. 6427This results in a small increase in memory usage for C programs, a moderate 6428increase in memory usage for C++ programs, and a fantastic speedup in 6429symbol lookups. 6430 6431`Cfront' style demangling still doesn't work with AT&T cfront. It was written 6432from the specifications in the Annotated Reference Manual, which AT&T's 6433compiler does not actually implement. 6434 6435 * G++ multiple inheritance compiler problem 6436 6437In the 2.3.2 release of gcc/g++, how the compiler resolves multiple 6438inheritance lattices was reworked to properly discover ambiguities. We 6439recently found an example which causes this new algorithm to fail in a 6440very subtle way, producing bad debug information for those classes. 6441The file 'gcc.patch' (in this directory) can be applied to gcc to 6442circumvent the problem. A future GCC release will contain a complete 6443fix. 6444 6445The previous G++ debug info problem (mentioned below for the gdb-4.7 6446release) is fixed in gcc version 2.3.2. 6447 6448 * Improved configure script 6449 6450The `configure' script will now attempt to guess your system type if 6451you don't supply a host system type. The old scheme of supplying a 6452host system triplet is preferable over using this. All the magic is 6453done in the new `config.guess' script. Examine it for details. 6454 6455We have also brought our configure script much more in line with the FSF's 6456version. It now supports the --with-xxx options. In particular, 6457`--with-minimal-bfd' can be used to make the GDB binary image smaller. 6458The resulting GDB will not be able to read arbitrary object file formats -- 6459only the format ``expected'' to be used on the configured target system. 6460We hope to make this the default in a future release. 6461 6462 * Documentation improvements 6463 6464There's new internal documentation on how to modify GDB, and how to 6465produce clean changes to the code. We implore people to read it 6466before submitting changes. 6467 6468The GDB manual uses new, sexy Texinfo conditionals, rather than arcane 6469M4 macros. The new texinfo.tex is provided in this release. Pre-built 6470`info' files are also provided. To build `info' files from scratch, 6471you will need the latest `makeinfo' release, which will be available in 6472a future texinfo-X.Y release. 6473 6474*NOTE* The new texinfo.tex can cause old versions of TeX to hang. 6475We're not sure exactly which versions have this problem, but it has 6476been seen in 3.0. We highly recommend upgrading to TeX version 3.141 6477or better. If that isn't possible, there is a patch in 6478`texinfo/tex3patch' that will modify `texinfo/texinfo.tex' to work 6479around this problem. 6480 6481 * New features 6482 6483GDB now supports array constants that can be used in expressions typed in by 6484the user. The syntax is `{element, element, ...}'. Ie: you can now type 6485`print {1, 2, 3}', and it will build up an array in memory malloc'd in 6486the target program. 6487 6488The new directory `gdb/sparclite' contains a program that demonstrates 6489how the sparc-stub.c remote stub runs on a Fujitsu SPARClite processor. 6490 6491 * New native hosts supported 6492 6493HP/PA-RISC under HPUX using GNU tools hppa1.1-hp-hpux 6494386 CPUs running SCO Unix 3.2v4 i386-unknown-sco3.2v4 6495 6496 * New targets supported 6497 6498AMD 29k family via UDI a29k-amd-udi or udi29k 6499 6500 * New file formats supported 6501 6502BFD now supports reading HP/PA-RISC executables (SOM file format?), 6503HPUX core files, and SCO 3.2v2 core files. 6504 6505 * Major bug fixes 6506 6507Attaching to processes now works again; thanks for the many bug reports. 6508 6509We have also stomped on a bunch of core dumps caused by 6510printf_filtered("%s") problems. 6511 6512We eliminated a copyright problem on the rpc and ptrace header files 6513for VxWorks, which was discovered at the last minute during the 4.7 6514release. You should now be able to build a VxWorks GDB. 6515 6516You can now interrupt gdb while an attached process is running. This 6517will cause the attached process to stop, and give control back to GDB. 6518 6519We fixed problems caused by using too many file descriptors 6520for reading symbols from object files and libraries. This was 6521especially a problem for programs that used many (~100) shared 6522libraries. 6523 6524The `step' command now only enters a subroutine if there is line number 6525information for the subroutine. Otherwise it acts like the `next' 6526command. Previously, `step' would enter subroutines if there was 6527any debugging information about the routine. This avoids problems 6528when using `cc -g1' on MIPS machines. 6529 6530 * Internal improvements 6531 6532GDB's internal interfaces have been improved to make it easier to support 6533debugging of multiple languages in the future. 6534 6535GDB now uses a common structure for symbol information internally. 6536Minimal symbols (derived from linkage symbols in object files), partial 6537symbols (from a quick scan of debug information), and full symbols 6538contain a common subset of information, making it easier to write 6539shared code that handles any of them. 6540 6541 * New command line options 6542 6543We now accept --silent as an alias for --quiet. 6544 6545 * Mmalloc licensing 6546 6547The memory-mapped-malloc library is now licensed under the GNU Library 6548General Public License. 6549 6550*** Changes in GDB-4.7: 6551 6552 * Host/native/target split 6553 6554GDB has had some major internal surgery to untangle the support for 6555hosts and remote targets. Now, when you configure GDB for a remote 6556target, it will no longer load in all of the support for debugging 6557local programs on the host. When fully completed and tested, this will 6558ensure that arbitrary host/target combinations are possible. 6559 6560The primary conceptual shift is to separate the non-portable code in 6561GDB into three categories. Host specific code is required any time GDB 6562is compiled on that host, regardless of the target. Target specific 6563code relates to the peculiarities of the target, but can be compiled on 6564any host. Native specific code is everything else: it can only be 6565built when the host and target are the same system. Child process 6566handling and core file support are two common `native' examples. 6567 6568GDB's use of /proc for controlling Unix child processes is now cleaner. 6569It has been split out into a single module under the `target_ops' vector, 6570plus two native-dependent functions for each system that uses /proc. 6571 6572 * New hosts supported 6573 6574HP/Apollo 68k (under the BSD domain) m68k-apollo-bsd or apollo68bsd 6575386 CPUs running various BSD ports i386-unknown-bsd or 386bsd 6576386 CPUs running SCO Unix i386-unknown-scosysv322 or i386sco 6577 6578 * New targets supported 6579 6580Fujitsu SPARClite sparclite-fujitsu-none or sparclite 658168030 and CPU32 m68030-*-*, m68332-*-* 6582 6583 * New native hosts supported 6584 6585386 CPUs running various BSD ports i386-unknown-bsd or 386bsd 6586 (386bsd is not well tested yet) 6587386 CPUs running SCO Unix i386-unknown-scosysv322 or sco 6588 6589 * New file formats supported 6590 6591BFD now supports COFF files for the Zilog Z8000 microprocessor. It 6592supports reading of `a.out.adobe' object files, which are an a.out 6593format extended with minimal information about multiple sections. 6594 6595 * New commands 6596 6597`show copying' is the same as the old `info copying'. 6598`show warranty' is the same as `info warrantee'. 6599These were renamed for consistency. The old commands continue to work. 6600 6601`info handle' is a new alias for `info signals'. 6602 6603You can now define pre-command hooks, which attach arbitrary command 6604scripts to any command. The commands in the hook will be executed 6605prior to the user's command. You can also create a hook which will be 6606executed whenever the program stops. See gdb.texinfo. 6607 6608 * C++ improvements 6609 6610We now deal with Cfront style name mangling, and can even extract type 6611info from mangled symbols. GDB can automatically figure out which 6612symbol mangling style your C++ compiler uses. 6613 6614Calling of methods and virtual functions has been improved as well. 6615 6616 * Major bug fixes 6617 6618The crash that occured when debugging Sun Ansi-C compiled binaries is 6619fixed. This was due to mishandling of the extra N_SO stabs output 6620by the compiler. 6621 6622We also finally got Ultrix 4.2 running in house, and fixed core file 6623support, with help from a dozen people on the net. 6624 6625John M. Farrell discovered that the reason that single-stepping was so 6626slow on all of the Mips based platforms (primarily SGI and DEC) was 6627that we were trying to demangle and lookup a symbol used for internal 6628purposes on every instruction that was being stepped through. Changing 6629the name of that symbol so that it couldn't be mistaken for a C++ 6630mangled symbol sped things up a great deal. 6631 6632Rich Pixley sped up symbol lookups in general by getting much smarter 6633about when C++ symbol mangling is necessary. This should make symbol 6634completion (TAB on the command line) much faster. It's not as fast as 6635we'd like, but it's significantly faster than gdb-4.6. 6636 6637 * AMD 29k support 6638 6639A new user controllable variable 'call_scratch_address' can 6640specify the location of a scratch area to be used when GDB 6641calls a function in the target. This is necessary because the 6642usual method of putting the scratch area on the stack does not work 6643in systems that have separate instruction and data spaces. 6644 6645We integrated changes to support the 29k UDI (Universal Debugger 6646Interface), but discovered at the last minute that we didn't have all 6647of the appropriate copyright paperwork. We are working with AMD to 6648resolve this, and hope to have it available soon. 6649 6650 * Remote interfaces 6651 6652We have sped up the remote serial line protocol, especially for targets 6653with lots of registers. It now supports a new `expedited status' ('T') 6654message which can be used in place of the existing 'S' status message. 6655This allows the remote stub to send only the registers that GDB 6656needs to make a quick decision about single-stepping or conditional 6657breakpoints, eliminating the need to fetch the entire register set for 6658each instruction being stepped through. 6659 6660The GDB remote serial protocol now implements a write-through cache for 6661registers, only re-reading the registers if the target has run. 6662 6663There is also a new remote serial stub for SPARC processors. You can 6664find it in gdb-4.7/gdb/sparc-stub.c. This was written to support the 6665Fujitsu SPARClite processor, but will run on any stand-alone SPARC 6666processor with a serial port. 6667 6668 * Configuration 6669 6670Configure.in files have become much easier to read and modify. A new 6671`table driven' format makes it more obvious what configurations are 6672supported, and what files each one uses. 6673 6674 * Library changes 6675 6676There is a new opcodes library which will eventually contain all of the 6677disassembly routines and opcode tables. At present, it only contains 6678Sparc and Z8000 routines. This will allow the assembler, debugger, and 6679disassembler (binutils/objdump) to share these routines. 6680 6681The libiberty library is now copylefted under the GNU Library General 6682Public License. This allows more liberal use, and was done so libg++ 6683can use it. This makes no difference to GDB, since the Library License 6684grants all the rights from the General Public License. 6685 6686 * Documentation 6687 6688The file gdb-4.7/gdb/doc/stabs.texinfo is a (relatively) complete 6689reference to the stabs symbol info used by the debugger. It is (as far 6690as we know) the only published document on this fascinating topic. We 6691encourage you to read it, compare it to the stabs information on your 6692system, and send improvements on the document in general (to 6693bug-gdb@prep.ai.mit.edu). 6694 6695And, of course, many bugs have been fixed. 6696 6697 6698*** Changes in GDB-4.6: 6699 6700 * Better support for C++ function names 6701 6702GDB now accepts as input the "demangled form" of C++ overloaded function 6703names and member function names, and can do command completion on such names 6704(using TAB, TAB-TAB, and ESC-?). The names have to be quoted with a pair of 6705single quotes. Examples are 'func (int, long)' and 'obj::operator==(obj&)'. 6706Make use of command completion, it is your friend. 6707 6708GDB also now accepts a variety of C++ mangled symbol formats. They are 6709the GNU g++ style, the Cfront (ARM) style, and the Lucid (lcc) style. 6710You can tell GDB which format to use by doing a 'set demangle-style {gnu, 6711lucid, cfront, auto}'. 'gnu' is the default. Do a 'set demangle-style foo' 6712for the list of formats. 6713 6714 * G++ symbol mangling problem 6715 6716Recent versions of gcc have a bug in how they emit debugging information for 6717C++ methods (when using dbx-style stabs). The file 'gcc.patch' (in this 6718directory) can be applied to gcc to fix the problem. Alternatively, if you 6719can't fix gcc, you can #define GCC_MANGLE_BUG when compling gdb/symtab.c. The 6720usual symptom is difficulty with setting breakpoints on methods. GDB complains 6721about the method being non-existent. (We believe that version 2.2.2 of GCC has 6722this problem.) 6723 6724 * New 'maintenance' command 6725 6726All of the commands related to hacking GDB internals have been moved out of 6727the main command set, and now live behind the 'maintenance' command. This 6728can also be abbreviated as 'mt'. The following changes were made: 6729 6730 dump-me -> maintenance dump-me 6731 info all-breakpoints -> maintenance info breakpoints 6732 printmsyms -> maintenance print msyms 6733 printobjfiles -> maintenance print objfiles 6734 printpsyms -> maintenance print psymbols 6735 printsyms -> maintenance print symbols 6736 6737The following commands are new: 6738 6739 maintenance demangle Call internal GDB demangler routine to 6740 demangle a C++ link name and prints the result. 6741 maintenance print type Print a type chain for a given symbol 6742 6743 * Change to .gdbinit file processing 6744 6745We now read the $HOME/.gdbinit file before processing the argv arguments 6746(e.g. reading symbol files or core files). This allows global parameters to 6747be set, which will apply during the symbol reading. The ./.gdbinit is still 6748read after argv processing. 6749 6750 * New hosts supported 6751 6752Solaris-2.0 !!! sparc-sun-solaris2 or sun4sol2 6753 6754GNU/Linux support i386-unknown-linux or linux 6755 6756We are also including code to support the HP/PA running BSD and HPUX. This 6757is almost guaranteed not to work, as we didn't have time to test or build it 6758for this release. We are including it so that the more adventurous (or 6759masochistic) of you can play with it. We also had major problems with the 6760fact that the compiler that we got from HP doesn't support the -g option. 6761It costs extra. 6762 6763 * New targets supported 6764 6765Hitachi H8/300 h8300-hitachi-hms or h8300hms 6766 6767 * More smarts about finding #include files 6768 6769GDB now remembers the compilation directory for all include files, and for 6770all files from which C is generated (like yacc and lex sources). This 6771greatly improves GDB's ability to find yacc/lex sources, and include files, 6772especially if you are debugging your program from a directory different from 6773the one that contains your sources. 6774 6775We also fixed a bug which caused difficulty with listing and setting 6776breakpoints in include files which contain C code. (In the past, you had to 6777try twice in order to list an include file that you hadn't looked at before.) 6778 6779 * Interesting infernals change 6780 6781GDB now deals with arbitrary numbers of sections, where the symbols for each 6782section must be relocated relative to that section's landing place in the 6783target's address space. This work was needed to support ELF with embedded 6784stabs used by Solaris-2.0. 6785 6786 * Bug fixes (of course!) 6787 6788There have been loads of fixes for the following things: 6789 mips, rs6000, 29k/udi, m68k, g++, type handling, elf/dwarf, m88k, 6790 i960, stabs, DOS(GO32), procfs, etc... 6791 6792See the ChangeLog for details. 6793 6794*** Changes in GDB-4.5: 6795 6796 * New machines supported (host and target) 6797 6798IBM RS6000 running AIX rs6000-ibm-aix or rs6000 6799 6800SGI Irix-4.x mips-sgi-irix4 or iris4 6801 6802 * New malloc package 6803 6804GDB now uses a new memory manager called mmalloc, based on gmalloc. 6805Mmalloc is capable of handling mutiple heaps of memory. It is also 6806capable of saving a heap to a file, and then mapping it back in later. 6807This can be used to greatly speedup the startup of GDB by using a 6808pre-parsed symbol table which lives in a mmalloc managed heap. For 6809more details, please read mmalloc/mmalloc.texi. 6810 6811 * info proc 6812 6813The 'info proc' command (SVR4 only) has been enhanced quite a bit. See 6814'help info proc' for details. 6815 6816 * MIPS ecoff symbol table format 6817 6818The code that reads MIPS symbol table format is now supported on all hosts. 6819Thanks to MIPS for releasing the sym.h and symconst.h files to make this 6820possible. 6821 6822 * File name changes for MS-DOS 6823 6824Many files in the config directories have been renamed to make it easier to 6825support GDB on MS-DOSe systems (which have very restrictive file name 6826conventions :-( ). MS-DOSe host support (under DJ Delorie's GO32 6827environment) is close to working but has some remaining problems. Note 6828that debugging of DOS programs is not supported, due to limitations 6829in the ``operating system'', but it can be used to host cross-debugging. 6830 6831 * Cross byte order fixes 6832 6833Many fixes have been made to support cross debugging of Sparc and MIPS 6834targets from hosts whose byte order differs. 6835 6836 * New -mapped and -readnow options 6837 6838If memory-mapped files are available on your system through the 'mmap' 6839system call, you can use the -mapped option on the `file' or 6840`symbol-file' commands to cause GDB to write the symbols from your 6841program into a reusable file. If the program you are debugging is 6842called `/path/fred', the mapped symbol file will be `./fred.syms'. 6843Future GDB debugging sessions will notice the presence of this file, 6844and will quickly map in symbol information from it, rather than reading 6845the symbol table from the executable program. Using the '-mapped' 6846option in a GDB `file' or `symbol-file' command has the same effect as 6847starting GDB with the '-mapped' command-line option. 6848 6849You can cause GDB to read the entire symbol table immediately by using 6850the '-readnow' option with any of the commands that load symbol table 6851information (or on the GDB command line). This makes the command 6852slower, but makes future operations faster. 6853 6854The -mapped and -readnow options are typically combined in order to 6855build a `fred.syms' file that contains complete symbol information. 6856A simple GDB invocation to do nothing but build a `.syms' file for future 6857use is: 6858 6859 gdb -batch -nx -mapped -readnow programname 6860 6861The `.syms' file is specific to the host machine on which GDB is run. 6862It holds an exact image of GDB's internal symbol table. It cannot be 6863shared across multiple host platforms. 6864 6865 * longjmp() handling 6866 6867GDB is now capable of stepping and nexting over longjmp(), _longjmp(), and 6868siglongjmp() without losing control. This feature has not yet been ported to 6869all systems. It currently works on many 386 platforms, all MIPS-based 6870platforms (SGI, DECstation, etc), and Sun3/4. 6871 6872 * Solaris 2.0 6873 6874Preliminary work has been put in to support the new Solaris OS from Sun. At 6875this time, it can control and debug processes, but it is not capable of 6876reading symbols. 6877 6878 * Bug fixes 6879 6880As always, many many bug fixes. The major areas were with g++, and mipsread. 6881People using the MIPS-based platforms should experience fewer mysterious 6882crashes and trashed symbol tables. 6883 6884*** Changes in GDB-4.4: 6885 6886 * New machines supported (host and target) 6887 6888SCO Unix on i386 IBM PC clones i386-sco-sysv or i386sco 6889 (except core files) 6890BSD Reno on Vax vax-dec-bsd 6891Ultrix on Vax vax-dec-ultrix 6892 6893 * New machines supported (target) 6894 6895AMD 29000 embedded, using EBMON a29k-none-none 6896 6897 * C++ support 6898 6899GDB continues to improve its handling of C++. `References' work better. 6900The demangler has also been improved, and now deals with symbols mangled as 6901per the Annotated C++ Reference Guide. 6902 6903GDB also now handles `stabs' symbol information embedded in MIPS 6904`ecoff' symbol tables. Since the ecoff format was not easily 6905extensible to handle new languages such as C++, this appeared to be a 6906good way to put C++ debugging info into MIPS binaries. This option 6907will be supported in the GNU C compiler, version 2, when it is 6908released. 6909 6910 * New features for SVR4 6911 6912GDB now handles SVR4 shared libraries, in the same fashion as SunOS 6913shared libraries. Debugging dynamically linked programs should present 6914only minor differences from debugging statically linked programs. 6915 6916The `info proc' command will print out information about any process 6917on an SVR4 system (including the one you are debugging). At the moment, 6918it prints the address mappings of the process. 6919 6920If you bring up GDB on another SVR4 system, please send mail to 6921bug-gdb@prep.ai.mit.edu to let us know what changes were reqired (if any). 6922 6923 * Better dynamic linking support in SunOS 6924 6925Reading symbols from shared libraries which contain debugging symbols 6926now works properly. However, there remain issues such as automatic 6927skipping of `transfer vector' code during function calls, which 6928make it harder to debug code in a shared library, than to debug the 6929same code linked statically. 6930 6931 * New Getopt 6932 6933GDB is now using the latest `getopt' routines from the FSF. This 6934version accepts the -- prefix for options with long names. GDB will 6935continue to accept the old forms (-option and +option) as well. 6936Various single letter abbreviations for options have been explicity 6937added to the option table so that they won't get overshadowed in the 6938future by other options that begin with the same letter. 6939 6940 * Bugs fixed 6941 6942The `cleanup_undefined_types' bug that many of you noticed has been squashed. 6943Many assorted bugs have been handled. Many more remain to be handled. 6944See the various ChangeLog files (primarily in gdb and bfd) for details. 6945 6946 6947*** Changes in GDB-4.3: 6948 6949 * New machines supported (host and target) 6950 6951Amiga 3000 running Amix m68k-cbm-svr4 or amix 6952NCR 3000 386 running SVR4 i386-ncr-svr4 or ncr3000 6953Motorola Delta 88000 running Sys V m88k-motorola-sysv or delta88 6954 6955 * Almost SCO Unix support 6956 6957We had hoped to support: 6958SCO Unix on i386 IBM PC clones i386-sco-sysv or i386sco 6959(except for core file support), but we discovered very late in the release 6960that it has problems with process groups that render gdb unusable. Sorry 6961about that. I encourage people to fix it and post the fixes. 6962 6963 * Preliminary ELF and DWARF support 6964 6965GDB can read ELF object files on System V Release 4, and can handle 6966debugging records for C, in DWARF format, in ELF files. This support 6967is preliminary. If you bring up GDB on another SVR4 system, please 6968send mail to bug-gdb@prep.ai.mit.edu to let us know what changes were 6969reqired (if any). 6970 6971 * New Readline 6972 6973GDB now uses the latest `readline' library. One user-visible change 6974is that two tabs will list possible command completions, which previously 6975required typing M-? (meta-question mark, or ESC ?). 6976 6977 * Bugs fixed 6978 6979The `stepi' bug that many of you noticed has been squashed. 6980Many bugs in C++ have been handled. Many more remain to be handled. 6981See the various ChangeLog files (primarily in gdb and bfd) for details. 6982 6983 * State of the MIPS world (in case you wondered): 6984 6985GDB can understand the symbol tables emitted by the compilers 6986supplied by most vendors of MIPS-based machines, including DEC. These 6987symbol tables are in a format that essentially nobody else uses. 6988 6989Some versions of gcc come with an assembler post-processor called 6990mips-tfile. This program is required if you want to do source-level 6991debugging of gcc-compiled programs. I believe FSF does not ship 6992mips-tfile with gcc version 1, but it will eventually come with gcc 6993version 2. 6994 6995Debugging of g++ output remains a problem. g++ version 1.xx does not 6996really support it at all. (If you're lucky, you should be able to get 6997line numbers and stack traces to work, but no parameters or local 6998variables.) With some work it should be possible to improve the 6999situation somewhat. 7000 7001When gcc version 2 is released, you will have somewhat better luck. 7002However, even then you will get confusing results for inheritance and 7003methods. 7004 7005We will eventually provide full debugging of g++ output on 7006DECstations. This will probably involve some kind of stabs-in-ecoff 7007encapulation, but the details have not been worked out yet. 7008 7009 7010*** Changes in GDB-4.2: 7011 7012 * Improved configuration 7013 7014Only one copy of `configure' exists now, and it is not self-modifying. 7015Porting BFD is simpler. 7016 7017 * Stepping improved 7018 7019The `step' and `next' commands now only stop at the first instruction 7020of a source line. This prevents the multiple stops that used to occur 7021in switch statements, for-loops, etc. `Step' continues to stop if a 7022function that has debugging information is called within the line. 7023 7024 * Bug fixing 7025 7026Lots of small bugs fixed. More remain. 7027 7028 * New host supported (not target) 7029 7030Intel 386 PC clone running Mach i386-none-mach 7031 7032 7033*** Changes in GDB-4.1: 7034 7035 * Multiple source language support 7036 7037GDB now has internal scaffolding to handle several source languages. 7038It determines the type of each source file from its filename extension, 7039and will switch expression parsing and number formatting to match the 7040language of the function in the currently selected stack frame. 7041You can also specifically set the language to be used, with 7042`set language c' or `set language modula-2'. 7043 7044 * GDB and Modula-2 7045 7046GDB now has preliminary support for the GNU Modula-2 compiler, 7047currently under development at the State University of New York at 7048Buffalo. Development of both GDB and the GNU Modula-2 compiler will 7049continue through the fall of 1991 and into 1992. 7050 7051Other Modula-2 compilers are currently not supported, and attempting to 7052debug programs compiled with them will likely result in an error as the 7053symbol table is read. Feel free to work on it, though! 7054 7055There are hooks in GDB for strict type checking and range checking, 7056in the `Modula-2 philosophy', but they do not currently work. 7057 7058 * set write on/off 7059 7060GDB can now write to executable and core files (e.g. patch 7061a variable's value). You must turn this switch on, specify 7062the file ("exec foo" or "core foo"), *then* modify it, e.g. 7063by assigning a new value to a variable. Modifications take 7064effect immediately. 7065 7066 * Automatic SunOS shared library reading 7067 7068When you run your program, GDB automatically determines where its 7069shared libraries (if any) have been loaded, and reads their symbols. 7070The `share' command is no longer needed. This also works when 7071examining core files. 7072 7073 * set listsize 7074 7075You can specify the number of lines that the `list' command shows. 7076The default is 10. 7077 7078 * New machines supported (host and target) 7079 7080SGI Iris (MIPS) running Irix V3: mips-sgi-irix or iris 7081Sony NEWS (68K) running NEWSOS 3.x: m68k-sony-sysv or news 7082Ultracomputer (29K) running Sym1: a29k-nyu-sym1 or ultra3 7083 7084 * New hosts supported (not targets) 7085 7086IBM RT/PC: romp-ibm-aix or rtpc 7087 7088 * New targets supported (not hosts) 7089 7090AMD 29000 embedded with COFF a29k-none-coff 7091AMD 29000 embedded with a.out a29k-none-aout 7092Ultracomputer remote kernel debug a29k-nyu-kern 7093 7094 * New remote interfaces 7095 7096AMD 29000 Adapt 7097AMD 29000 Minimon 7098 7099 7100*** Changes in GDB-4.0: 7101 7102 * New Facilities 7103 7104Wide output is wrapped at good places to make the output more readable. 7105 7106Gdb now supports cross-debugging from a host machine of one type to a 7107target machine of another type. Communication with the target system 7108is over serial lines. The ``target'' command handles connecting to the 7109remote system; the ``load'' command will download a program into the 7110remote system. Serial stubs for the m68k and i386 are provided. Gdb 7111also supports debugging of realtime processes running under VxWorks, 7112using SunRPC Remote Procedure Calls over TCP/IP to talk to a debugger 7113stub on the target system. 7114 7115New CPUs supported include the AMD 29000 and Intel 960. 7116 7117GDB now reads object files and symbol tables via a ``binary file'' 7118library, which allows a single copy of GDB to debug programs of multiple 7119object file types such as a.out and coff. 7120 7121There is now a GDB reference card in "doc/refcard.tex". (Make targets 7122refcard.dvi and refcard.ps are available to format it). 7123 7124 7125 * Control-Variable user interface simplified 7126 7127All variables that control the operation of the debugger can be set 7128by the ``set'' command, and displayed by the ``show'' command. 7129 7130For example, ``set prompt new-gdb=>'' will change your prompt to new-gdb=>. 7131``Show prompt'' produces the response: 7132Gdb's prompt is new-gdb=>. 7133 7134What follows are the NEW set commands. The command ``help set'' will 7135print a complete list of old and new set commands. ``help set FOO'' 7136will give a longer description of the variable FOO. ``show'' will show 7137all of the variable descriptions and their current settings. 7138 7139confirm on/off: Enables warning questions for operations that are 7140 hard to recover from, e.g. rerunning the program while 7141 it is already running. Default is ON. 7142 7143editing on/off: Enables EMACS style command line editing 7144 of input. Previous lines can be recalled with 7145 control-P, the current line can be edited with control-B, 7146 you can search for commands with control-R, etc. 7147 Default is ON. 7148 7149history filename NAME: NAME is where the gdb command history 7150 will be stored. The default is .gdb_history, 7151 or the value of the environment variable 7152 GDBHISTFILE. 7153 7154history size N: The size, in commands, of the command history. The 7155 default is 256, or the value of the environment variable 7156 HISTSIZE. 7157 7158history save on/off: If this value is set to ON, the history file will 7159 be saved after exiting gdb. If set to OFF, the 7160 file will not be saved. The default is OFF. 7161 7162history expansion on/off: If this value is set to ON, then csh-like 7163 history expansion will be performed on 7164 command line input. The default is OFF. 7165 7166radix N: Sets the default radix for input and output. It can be set 7167 to 8, 10, or 16. Note that the argument to "radix" is interpreted 7168 in the current radix, so "set radix 10" is always a no-op. 7169 7170height N: This integer value is the number of lines on a page. Default 7171 is 24, the current `stty rows'' setting, or the ``li#'' 7172 setting from the termcap entry matching the environment 7173 variable TERM. 7174 7175width N: This integer value is the number of characters on a line. 7176 Default is 80, the current `stty cols'' setting, or the ``co#'' 7177 setting from the termcap entry matching the environment 7178 variable TERM. 7179 7180Note: ``set screensize'' is obsolete. Use ``set height'' and 7181``set width'' instead. 7182 7183print address on/off: Print memory addresses in various command displays, 7184 such as stack traces and structure values. Gdb looks 7185 more ``symbolic'' if you turn this off; it looks more 7186 ``machine level'' with it on. Default is ON. 7187 7188print array on/off: Prettyprint arrays. New convenient format! Default 7189 is OFF. 7190 7191print demangle on/off: Print C++ symbols in "source" form if on, 7192 "raw" form if off. 7193 7194print asm-demangle on/off: Same, for assembler level printouts 7195 like instructions. 7196 7197print vtbl on/off: Prettyprint C++ virtual function tables. Default is OFF. 7198 7199 7200 * Support for Epoch Environment. 7201 7202The epoch environment is a version of Emacs v18 with windowing. One 7203new command, ``inspect'', is identical to ``print'', except that if you 7204are running in the epoch environment, the value is printed in its own 7205window. 7206 7207 7208 * Support for Shared Libraries 7209 7210GDB can now debug programs and core files that use SunOS shared libraries. 7211Symbols from a shared library cannot be referenced 7212before the shared library has been linked with the program (this 7213happens after you type ``run'' and before the function main() is entered). 7214At any time after this linking (including when examining core files 7215from dynamically linked programs), gdb reads the symbols from each 7216shared library when you type the ``sharedlibrary'' command. 7217It can be abbreviated ``share''. 7218 7219sharedlibrary REGEXP: Load shared object library symbols for files 7220 matching a unix regular expression. No argument 7221 indicates to load symbols for all shared libraries. 7222 7223info sharedlibrary: Status of loaded shared libraries. 7224 7225 7226 * Watchpoints 7227 7228A watchpoint stops execution of a program whenever the value of an 7229expression changes. Checking for this slows down execution 7230tremendously whenever you are in the scope of the expression, but is 7231quite useful for catching tough ``bit-spreader'' or pointer misuse 7232problems. Some machines such as the 386 have hardware for doing this 7233more quickly, and future versions of gdb will use this hardware. 7234 7235watch EXP: Set a watchpoint (breakpoint) for an expression. 7236 7237info watchpoints: Information about your watchpoints. 7238 7239delete N: Deletes watchpoint number N (same as breakpoints). 7240disable N: Temporarily turns off watchpoint number N (same as breakpoints). 7241enable N: Re-enables watchpoint number N (same as breakpoints). 7242 7243 7244 * C++ multiple inheritance 7245 7246When used with a GCC version 2 compiler, GDB supports multiple inheritance 7247for C++ programs. 7248 7249 * C++ exception handling 7250 7251Gdb now supports limited C++ exception handling. Besides the existing 7252ability to breakpoint on an exception handler, gdb can breakpoint on 7253the raising of an exception (before the stack is peeled back to the 7254handler's context). 7255 7256catch FOO: If there is a FOO exception handler in the dynamic scope, 7257 set a breakpoint to catch exceptions which may be raised there. 7258 Multiple exceptions (``catch foo bar baz'') may be caught. 7259 7260info catch: Lists all exceptions which may be caught in the 7261 current stack frame. 7262 7263 7264 * Minor command changes 7265 7266The command ``call func (arg, arg, ...)'' now acts like the print 7267command, except it does not print or save a value if the function's result 7268is void. This is similar to dbx usage. 7269 7270The ``up'' and ``down'' commands now always print the frame they end up 7271at; ``up-silently'' and `down-silently'' can be used in scripts to change 7272frames without printing. 7273 7274 * New directory command 7275 7276'dir' now adds directories to the FRONT of the source search path. 7277The path starts off empty. Source files that contain debug information 7278about the directory in which they were compiled can be found even 7279with an empty path; Sun CC and GCC include this information. If GDB can't 7280find your source file in the current directory, type "dir .". 7281 7282 * Configuring GDB for compilation 7283 7284For normal use, type ``./configure host''. See README or gdb.texinfo 7285for more details. 7286 7287GDB now handles cross debugging. If you are remotely debugging between 7288two different machines, type ``./configure host -target=targ''. 7289Host is the machine where GDB will run; targ is the machine 7290where the program that you are debugging will run. 7291