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