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