gdb/doc: space out list entries, fix one type
[deliverable/binutils-gdb.git] / gdb / NEWS
CommitLineData
c906108c
SS
1 What has changed in GDB?
2 (Organized release by release)
3
ed6a896c
JB
4*** Changes since GDB 10
5
6791b117
PA
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
d3483b43
JT
16* GDB now supports core file debugging for x86_64 Cygwin programs.
17
ed6a896c 18*** Changes in GDB 10
4decd62b 19
995d3a19
SV
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
5b4a1a8d
PW
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
0d79cdc4
AM
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
7cf663a9
PA
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
bf84f706
MR
62* New features in the GDB remote stub, GDBserver
63
64 ** GDBserver is now supported on RISC-V GNU/Linux.
65
6a17d503
SM
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
3f602821
EZ
79* Debugging MS-Windows processes now sets $_exitsignal when the
80 inferior is terminated by a signal, instead of setting $_exitcode.
81
8fb75323
CB
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
7928d571
HD
86* The $_siginfo convenience variable now also works on Windows targets,
87 and will display the EXCEPTION_RECORD of the last handled exception.
88
7c043ba6 89* TUI windows can now be arranged horizontally.
63e163f2
AB
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.
46f9f931
HD
96
97* On Windows targets, it is now possible to debug 32-bit programs with a
98 64-bit GDB.
7c043ba6 99
e47e48f6
PW
100* New commands
101
102set exec-file-mismatch -- Set exec-file-mismatch handling (ask|warn|off).
103show exec-file-mismatch -- Show exec-file-mismatch handling (ask|warn|off).
98c59b52
PA
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.
e47e48f6 111
ee325b61
TT
112tui 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
caa7fd04
AB
116maintenance 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
b089853a
KB
122maintenance 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
5b860c93
PW
126* Changed commands
127
128alias [-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
bf84f706
MR
141* New targets
142
143GNU/Linux/RISC-V (gdbserver) riscv*-*-linux*
39791af2 144BPF bpf-unknown-none
bf84f706 145
01b1af32
TT
146* Python API
147
148 ** gdb.register_window_type can be used to implement new TUI windows
149 in Python.
150
1acda803
TT
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
2b2fbab8
TT
156 ** Commands written in Python can be in the "TUI" help class by
157 registering with the new constant gdb.COMMAND_TUI.
158
87dbc774
AB
159 ** New method gdb.PendingFrame.architecture () to retrieve the
160 architecture of the pending frame.
161
0f767f94
AB
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
64cb3757
AB
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
68cf161c
LC
172* Guile API
173
ae5369e7 174 ** GDB can now be built with GNU Guile 3.0 and 2.2 in addition to 2.0.
68cf161c
LC
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
4decd62b 182*** Changes in GDB 9
9335e75a 183
1a3da2cd
AB
184* 'thread-exited' event is now available in the annotations interface.
185
7734102d
EZ
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
aed61d02
PW
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
81a24d04
JB
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
3d31bc39
AH
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].
d851aa71 206
eb41253a 207* Two new convenience functions $_cimag and $_creal that extract the
8bdc1658
AB
208 imaginary and real parts respectively from complex numbers.
209
52ce35e2
TT
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
bf498525
PW
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
e3ec872f
YS
220* The RX port now supports XML target descriptions.
221
4993045d
PW
222* GDB now shows the Ada task names at more places, e.g. in task switching
223 messages.
224
6a062a93
CB
225* GDB can now be compiled with Python 3 on Windows.
226
37f6a7f4
TT
227* New convenience variable $_ada_exception holds the address of the
228 Ada exception being thrown. This is set by Ada-related catchpoints.
229
179aed7f
AB
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
ed2a2229
CB
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
e49b22ff
CB
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
52093e1b
MB
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
e1f2e1a2
CB
257 ** gdb.Type has a new property 'objfile' which returns the objfile the
258 type was defined in.
259
bc4268a5
PW
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
2906593f
CB
265 ** The new function gdb.lookup_static_symbol can be used to look up
266 symbols with static linkage.
267
086baaf1
AB
268 ** The new function gdb.lookup_static_symbols can be used to look up
269 all static symbols with static linkage.
270
c620ed88
CB
271 ** gdb.Objfile has new methods 'lookup_global_symbol' and
272 'lookup_static_symbol' to lookup a symbol from this objfile only.
273
0b27c27d
CB
274 ** gdb.Block now supports the dictionary syntax for accessing symbols in
275 this block (e.g. block['local_variable']).
276
136afab8
PW
277* New commands
278
e2c52041
PW
279| [COMMAND] | SHELL_COMMAND
280| -d DELIM COMMAND DELIM SHELL_COMMAND
281pipe [COMMAND] | SHELL_COMMAND
282pipe -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
bf498525
PW
287define-prefix COMMAND
288 Define or mark a command as a user-defined prefix command.
289
fdbc9870
PA
290with SETTING [VALUE] [-- COMMAND]
291w 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
302maint with SETTING [VALUE] [-- COMMAND]
303 Like "with", but works with "maintenance set" settings.
304
136afab8
PW
305set may-call-functions [on|off]
306show 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
000439d5
TT
315set print finish [on|off]
316show 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
1bd0c6e4
AB
322set print max-depth
323show 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
d8edc8b7
PW
329set print raw-values [on|off]
330show 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
b7060614
AH
335set 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
e664d728
PW
339set style title foreground COLOR
340set style title background COLOR
341set style title intensity VALUE
342 Control the styling of titles.
343
344set style highlight foreground COLOR
345set style highlight background COLOR
346set style highlight intensity VALUE
347 Control the styling of highlightings.
348
22138db6
TT
349maint set worker-threads
350maint show worker-threads
351 Control the number of worker threads that can be used by GDB. The
e49b22ff 352 default is 0. "unlimited" lets GDB choose a number that is
22138db6
TT
353 reasonable. Currently worker threads are only used when demangling
354 the names of linker symbols.
355
a2a7af0c
TT
356set style tui-border foreground COLOR
357set style tui-border background COLOR
358 Control the styling of TUI borders.
359
360set style tui-active-border foreground COLOR
361set style tui-active-border background COLOR
362 Control the styling of the active TUI border.
363
c6ac8931
PA
364maint set test-settings KIND
365maint show test-settings KIND
dca0f6c0
PA
366 A set of commands used by the testsuite for exercising the settings
367 infrastructure.
368
45e42163
TT
369maint set tui-resize-message [on|off]
370maint 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
bc4268a5
PW
375set print frame-info [short-location|location|location-and-address
376 |source-and-location|source-line|auto]
377show 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
d1da6b01
TT
383set tui compact-source
384show 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
59c35742
AB
391info modules [-q] [REGEXP]
392 Return a list of Fortran modules matching REGEXP, or all modules if
393 no REGEXP is given.
394
165f8965
AB
395info 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
402info 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
6cc8564b
LM
409set debug remote-packet-max-chars
410show 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
65c574f6
PA
415info connections
416 Lists the target connections currently in use.
417
e664d728
PW
418* Changed commands
419
420help
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
425apropos [-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
1f6f6e21
PW
432printf
433eval
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
ae60f04e
PW
439info 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
e664d728
PW
445show 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
bc4268a5
PW
450set 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
2daf894e
PA
454set print raw-frame-arguments
455show 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.
e664d728 461
65c574f6
PA
462add-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
468info 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
3345721a
PA
473maint test-options require-delimiter
474maint test-options unknown-is-error
475maint test-options unknown-is-operand
476maint show test-options-completion-result
477 Commands used by the testsuite to validate the command options
478 framework.
479
78e8cb91
TT
480focus, winheight, +, -, >, <
481 These commands are now case-sensitive.
482
3345721a
PA
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]
d8edc8b7 504 -raw-values [on|off]
3345721a
PA
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]
bc4268a5
PW
523 -frame-info auto|source-line|location|source-and-location
524 |location-and-address|short-location
3345721a
PA
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
ae60f04e
PW
541 ** The new "info sources" options -dirname and -basename options
542 are using the standard '-OPT' infrastructure.
543
3345721a
PA
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
d8edc8b7 549 (gdb) p -ra -p -o 0 -- *myptr
3345721a
PA
550
551 The above is equivalent to:
552
d8edc8b7 553 (gdb) print -raw-values -pretty -object off -- *myptr
3345721a 554
a8eab7c6
AB
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
4acfdd20
AB
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
3345721a
PA
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
60cfcb20
AB
570 ** GDB can now complete the options of the "info threads", "info
571 functions", "info variables", "info locals", and "info args"
572 commands.
54d66006 573
3345721a
PA
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
26648588
JV
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
30056ea0
AB
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
7dc42066
AB
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
db5960b4
AB
601-symbol-info-modules, this is the MI equivalent of the CLI 'info
602 modules' command.
603
293b38d6
AB
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
aa7ca1bb
AH
608* Other MI changes
609
5a3a0d63
JB
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
aa7ca1bb
AH
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
b7060614
AH
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
c6bdbeb7
AH
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
86c6b807
TT
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
11061048
TT
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
abf516c6
UW
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
ddd44b70
DD
656* New Simulators
657
658TI PRU pru-*-elf
659
dae8b3eb
RO
660* Removed targets and native configurations
661
662Solaris 10 i?86-*-solaris2.10, x86_64-*-solaris2.10,
663 sparc*-*-solaris2.10
664
9335e75a 665*** Changes in GDB 8.3
4e5b2f89 666
8d619c01
EBM
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
078a0207
KS
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
c7ab0aef
SDJ
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
7d11235d
SM
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
e8bf1ce4
JB
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
b0f492b9
GB
691* GDB in batch mode now exits with status 1 if the last command to be
692 executed failed.
693
b5ffee31
AB
694* The RISC-V target now supports target descriptions.
695
e9076973
JB
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
140a4bc0
TT
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
041be526
SM
714* Removed support for old demangling styles arm, edg, gnu, hp and
715 lucid.
716
a14c4daa
PW
717* New commands
718
078a0207
KS
719set debug compile-cplus-types
720show debug compile-cplus-types
721 Control the display of debug output about type conversion in the
82f06518 722 C++ compile feature. Commands have no effect while compiling
078a0207
KS
723 for other languages.
724
3e68067f
SM
725set debug skip
726show debug skip
727 Control whether debug output about files/functions skipping is
728 displayed.
729
a14c4daa
PW
730frame 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
735taas COMMAND
736 Apply a command to all threads (ignoring errors and empty output).
737 Shortcut for 'thread apply all -s COMMAND'.
738
739faas COMMAND
740 Apply a command to all frames (ignoring errors and empty output).
741 Shortcut for 'frame apply all -s COMMAND'.
742
743tfaas 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
3c3bb058
AB
748maint set dwarf unwinders (on|off)
749maint show dwarf unwinders
750 Control whether DWARF unwinders can be used.
751
8b113111
JB
752info proc files
753 Display a list of open files for a process.
754
a14c4daa
PW
755* Changed commands
756
669e09f6
PW
757Changes 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
c1168a2f
JD
765target remote FILENAME
766target 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
e0a7911f
PW
770info args [-q] [-t TYPEREGEXP] [NAMEREGEXP]
771info functions [-q] [-t TYPEREGEXP] [NAMEREGEXP]
772info locals [-q] [-t TYPEREGEXP] [NAMEREGEXP]
773info 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
604c4ca9
PW
779info functions
780info types
781info variables
782rbreak
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
a14c4daa
PW
788thread 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
7806cea7
TT
793set tui tab-width NCHARS
794show tui tab-width NCHARS
795 "set tui tab-width" replaces the "tabset" command, which has been deprecated.
796
140a4bc0
TT
797set style enabled [on|off]
798show style enabled
799 Enable or disable terminal styling. Styling is enabled by default
7557a514 800 on most hosts, but disabled by default when in batch mode.
140a4bc0 801
d085f989
TT
802set style sources [on|off]
803show 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
140a4bc0
TT
808set style filename foreground COLOR
809set style filename background COLOR
810set style filename intensity VALUE
811 Control the styling of file names.
812
813set style function foreground COLOR
814set style function background COLOR
815set style function intensity VALUE
816 Control the styling of function names.
817
818set style variable foreground COLOR
819set style variable background COLOR
820set style variable intensity VALUE
821 Control the styling of variable names.
822
823set style address foreground COLOR
824set style address background COLOR
825set style address intensity VALUE
826 Control the styling of addresses.
827
26fb3983
JV
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
6d52907e
JV
836 ** Command responses and notifications that include a frame now include
837 the frame's architecture in a new "arch" attribute.
838
52a187f8
JW
839* New native configurations
840
841GNU/Linux/RISC-V riscv*-*-linux*
74792ff7 842FreeBSD/riscv riscv*-*-freebsd*
52a187f8
JW
843
844* New targets
845
846GNU/Linux/RISC-V riscv*-*-linux*
416a69af
HAQ
847CSKY ELF csky*-*-elf
848CSKY GNU/LINUX csky*-*-linux
ed65e20b 849FreeBSD/riscv riscv*-*-freebsd*
197df35e
JB
850NXP S12Z s12z-*-elf
851GNU/Linux/OpenRISC or1k*-*-linux*
52a187f8 852
742a7df5
EZ
853* Removed targets
854
855GDB no longer supports native debugging on versions of MS-Windows
856before Windows XP.
857
a40bf0c2
SM
858* Python API
859
2c3fc25d
KB
860 ** GDB no longer supports Python versions less than 2.6.
861
a40bf0c2
SM
862 ** The gdb.Inferior type has a new 'progspace' property, which is the program
863 space associated to that inferior.
864
0ae1a321
SM
865 ** The gdb.Progspace type has a new 'objfiles' method, which returns the list
866 of objfiles associated to that program space.
867
51e78fc5
TT
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
af54ade9
KB
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
f35d5ade
TT
879* Configure changes
880
881--enable-ubsan
882
eff98030
TT
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.
f35d5ade 888
4e5b2f89 889*** Changes in GDB 8.2
cd385f94 890
471b9d15
MR
891* The 'set disassembler-options' command now supports specifying options
892 for the MIPS target.
893
d4d429d5
PT
894* The 'symbol-file' command now accepts an '-o' option to add a relative
895 offset to all sections.
896
291f9a96
PT
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
ed6dfe51
PT
901* The 'add-symbol-file' command no longer requires the second argument
902 (address of the text section).
903
4b2dfa9d
MR
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
eb6af809
TT
910* The pager now allows a "c" response, meaning to disable the pager
911 for the rest of the current command.
912
b744723f
AA
913* The commands 'info variables/functions/types' now show the source line
914 numbers of symbol definitions when available.
915
2d97a5d9
JB
916* 'info proc' now works on running processes on FreeBSD systems and core
917 files created on FreeBSD systems.
918
007e1530
TT
919* C expressions can now use _Alignof, and C++ expressions can now use
920 alignof.
921
1461bdac
AH
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
386a8676
JB
925* New commands
926
927set debug fbsd-nat
928show debug fbsd-nat
929 Control display of debugging info regarding the FreeBSD native target.
930
3fcded8f
JB
931set|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
4a4495d6
MM
936set|show record btrace cpu
937 Controls the processor to be used for enabling errata workarounds for
938 branch trace decode.
939
5045b3d7
GB
940maint check libthread-db
941 Run integrity checks on the current inferior's thread debugging
942 library
943
944maint set check-libthread-db (on|off)
945maint 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
6d7bb824
TT
950* Python API
951
952 ** Type alignment is now exposed via the "align" attribute of a gdb.Type.
953
a913fffb
TT
954 ** The commands attached to a breakpoint can be set by assigning to
955 the breakpoint's "commands" field.
956
56bcdbea
TT
957 ** gdb.execute can now execute multi-line gdb commands.
958
7729052b
TT
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
984ee559
TT
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
dbbb1059
AB
967* New targets
968
969RiscV ELF riscv*-*-elf
970
a2a79012
PA
971* Removed targets and native configurations
972
973m88k running OpenBSD m88*-*-openbsd*
8a3de5e1
PA
974SH-5/SH64 ELF sh64-*-elf*, SH-5/SH64 support in sh*
975SH-5/SH64 running GNU/Linux SH-5/SH64 support in sh*-*-linux*
976SH-5/SH64 running OpenBSD SH-5/SH64 support in sh*-*-openbsd*
a2a79012 977
a3b60e45
JK
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
056dec39 988* Configure changes
44cee4fd
TT
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
056dec39
TT
995--disable-gdbcli has been removed
996 This is now silently accepted, but does nothing.
997
cd385f94 998*** Changes in GDB 8.1
305d16a9 999
cef0f868
SH
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
7c161838
SDJ
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
97cbe998
SDJ
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
2400729e
UW
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
289e23aa
AA
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
0a2dde4a
SDJ
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
d044bac8
PA
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
c179febe
SL
1062* New command line options (gcore)
1063
1064-a
1065 Dump all memory mappings.
1066
a20714ff
PA
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
b89641ba
SM
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.
a20714ff 1088
bd69330d
PA
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
7c96f8c1
TT
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
4e725347
JB
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.
d8ae99a7 1120
824cc835
PM
1121 ** Python breakpoints can now accept explicit locations. See the
1122 manual for a further description of this feature.
1123
1124
6d580b63
YQ
1125* New features in the GDB remote stub, GDBserver
1126
bc3b087d
SDJ
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
6d580b63
YQ
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.
aefd8b33 1144
0a2dde4a
SDJ
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
e547c119
JB
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
7403715e
TT
1154* Trait objects can now be inspected When debugging Rust code. This
1155 requires compiler support which will appear in Rust 1.24.
1156
aefd8b33
SDJ
1157* New remote packets
1158
0a2dde4a
SDJ
1159QEnvironmentHexEncoded
1160 Inform GDBserver of an environment variable that is to be passed to
1161 the inferior when starting it.
1162
1163QEnvironmentUnset
1164 Inform GDBserver of an environment variable that is to be unset
1165 before starting the remote inferior.
1166
1167QEnvironmentReset
1168 Inform GDBserver that the environment should be reset (i.e.,
1169 user-set environment variables should be unset).
1170
aefd8b33
SDJ
1171QStartupWithShell
1172 Indicates whether the inferior must be started with a shell or not.
1173
bc3b087d
SDJ
1174QSetWorkingDir
1175 Tell GDBserver that the inferior to be started should use a specific
1176 working directory.
1177
8e2141c6
YQ
1178* The "maintenance print c-tdesc" command now takes an optional
1179 argument which is the file name of XML target description.
1180
1526853e
SM
1181* The "maintenance selftest" command now takes an optional argument to
1182 filter the tests to be run.
1183
d0fe4701
XR
1184* The "enable", and "disable" commands now accept a range of
1185 breakpoint locations, e.g. "enable 1.3-5".
1186
c4dcb155
SM
1187* New commands
1188
d092c5a2
SDJ
1189set|show cwd
1190 Set and show the current working directory for the inferior.
1191
6e41ddec
JK
1192set|show compile-gcc
1193 Set and show compilation command used for compiling and injecting code
1194 with the 'compile' commands.
1195
c4dcb155
SM
1196set debug separate-debug-file
1197show debug separate-debug-file
1198 Control the display of debug output about separate debug file search.
1199
1e52e849
SL
1200set dump-excluded-mappings
1201show dump-excluded-mappings
1202 Control whether mappings marked with the VM_DONTDUMP flag should be
1203 dumped when generating a core file.
1204
1526853e
SM
1205maint info selftests
1206 List the registered selftests.
1207
4e5a4f58
JB
1208starti
1209 Start the debugged program stopping at the first instruction.
1210
b282f0f2
SH
1211set|show debug or1k
1212 Control display of debugging messages related to OpenRISC targets.
1213
883fd55a
KS
1214set|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
44d0fb3a
RK
1218* TUI Single-Key mode now supports two new shortcut keys: `i' for stepi and
1219 `o' for nexti.
1220
d69cf9b2
PA
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
351787dd
JB
1247* New native configurations
1248
1249FreeBSD/aarch64 aarch64*-*-freebsd*
4f9d9906 1250FreeBSD/arm arm*-*-freebsd*
351787dd 1251
c0f84956
JB
1252* New targets
1253
1254FreeBSD/aarch64 aarch64*-*-freebsd*
7176dfd2 1255FreeBSD/arm arm*-*-freebsd*
b282f0f2 1256OpenRISC ELF or1k*-*-elf
c0f84956 1257
281c4447
RO
1258* Removed targets and native configurations
1259
1260Solaris 2.0-9 i?86-*-solaris2.[0-9], sparc*-*-solaris2.[0-9]
1261
305d16a9 1262*** Changes in GDB 8.0
51547df6
MS
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.
751b375e 1267
c0f55cc6
AV
1268* GDB now supports C++11 rvalue references.
1269
0a0faf9f
TW
1270* Python Scripting
1271
1272 ** New functions to start, stop and access a running btrace recording.
c0f55cc6 1273 ** Rvalue references are now supported in gdb.Type.
0a0faf9f 1274
20b477a7
LM
1275* GDB now supports recording and replaying rdrand and rdseed Intel 64
1276 instructions.
1277
e6485aaf 1278* Building GDB and GDBserver now requires a C++11 compiler.
d2946923
PA
1279
1280 For example, GCC 4.8 or later.
cf6de44d
PA
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
f2ff9acd
SM
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
8ba42bc5
EZ
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
24cdb46e
РИ
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
9c37b5ae
TT
1305* Support for Java programs compiled with gcj has been removed.
1306
df3ee9ca
PA
1307* User commands now accept an unlimited number of arguments.
1308 Previously, only up to 10 was accepted.
1309
01770bbd
PA
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
3f7b46f2
IR
1322* Target descriptions can now describe registers for sparc32 and sparc64.
1323
0ae60b63
JK
1324* GDB now supports DWARF version 5 (debug information format).
1325 Its .debug_names index is not yet supported.
1326
b268007c
JB
1327* New native configurations
1328
1329FreeBSD/mips mips*-*-freebsd
1330
ad0a504f
AK
1331* New targets
1332
1333Synopsys ARC arc*-*-elf32
387360da 1334FreeBSD/mips mips*-*-freebsd
ad0a504f 1335
db6be0d5
SM
1336* Removed targets and native configurations
1337
1338Alpha running FreeBSD alpha*-*-freebsd*
1339Alpha running GNU/kFreeBSD alpha*-*-kfreebsd*-gnu
1340
78cbbba8
LM
1341* New commands
1342
1343flash-erase
1344 Erases all the flash memory regions reported by the target.
1345
db6be0d5
SM
1346maint print arc arc-instruction address
1347 Print internal disassembler information about instruction at a given address.
51457a05 1348
db6be0d5 1349* New options
65b48a81
PB
1350
1351set disassembler-options
1352show 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
db6be0d5 1359* New MI commands
eea78757 1360
db6be0d5
SM
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.
1e1a8bef 1364
db6be0d5
SM
1365-file-list-shared-libraries
1366 List the shared libraries in the program. This is
1367 equivalent to the CLI command "info shared".
1e1a8bef 1368
bea298f9
XR
1369-catch-handlers
1370 Catchpoints stopping the program when Ada exceptions are
1371 handled. This is equivalent to the CLI command "catch handlers".
1372
751b375e 1373*** Changes in GDB 7.12
1233c0ba 1374
69ffd7f2
PA
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
c0272db5
TW
1382* GDBserver now supports recording btrace without maintaining an active
1383 GDB connection.
1384
bb556f1f
TK
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
9920b434
BH
1399* Fortran: Support structures with fields of dynamic types and
1400 arrays of dynamic types.
1401
34c41c68
DE
1402* The symbol dumping maintenance commands have new syntax.
1403maint print symbols [-pc address] [--] [filename]
1404maint print symbols [-objfile objfile] [-source source] [--] [filename]
1405maint print psymbols [-objfile objfile] [-pc address] [--] [filename]
1406maint print psymbols [-objfile objfile] [-source source] [--] [filename]
1407maint print msymbols [-objfile objfile] [--] [filename]
1408
81516450
DE
1409* GDB now supports multibit bitfields and enums in target register
1410 descriptions.
1411
f2f3ccb9
SM
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
012b3a21
WT
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
0bdfa368
TT
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
86f78169
PA
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
e3487908
GKB
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
d2dffb8d
DE
1454* New commands
1455
1456skip -file file
1457skip -gfile file-glob-pattern
1458skip -function function
1459skip -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
f2403c39 1464maint info line-table REGEXP
82f06518 1465 Display the contents of GDB's internal line table data structure.
f2403c39 1466
dcd1f979
TT
1467maint selftest
1468 Run any GDB unit tests that were compiled in.
1469
86f78169
PA
1470new-ui INTERP TTY
1471 Start a new user interface instance running INTERP as interpreter,
1472 using the TTY file for input/output.
1473
93daf339
TT
1474* Python Scripting
1475
1476 ** gdb.Breakpoint objects have a new attribute "pending", which
1477 indicates whether the breakpoint is pending.
8d2a0a14
TT
1478 ** Three new breakpoint-related events have been added:
1479 gdb.breakpoint_created, gdb.breakpoint_modified, and
1480 gdb.breakpoint_deleted.
93daf339 1481
463888ab
РИ
1482signal-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
c37c0ba6
MK
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
f7c38292
PA
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
22084c42
MK
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
38b022b4
SM
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
4034d0ff
AT
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
a28d8e50
YTL
1517* New targets
1518
1519Andes NDS32 nds32*-*-elf
1520
1233c0ba 1521*** Changes in GDB 7.11
7c79d316 1522
6e9567fe
JB
1523* GDB now supports debugging kernel-based threads on FreeBSD.
1524
5d5658a1
PA
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
663f6d42 1544 previous releases. See also $_gthread below.
5d5658a1
PA
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
71ef29a8
PA
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
c84f6bbf
PA
1562* You can use "info threads -gid" to display the global thread ID of
1563 all threads.
1564
663f6d42
PA
1565* The new convenience variable $_gthread holds the global number of
1566 the current thread.
1567
e3940304
PA
1568* The new convenience variable $_inferior holds the number of the
1569 current inferior.
1570
f303dbd6
PA
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
cbb55fa7
MM
1578* Record btrace now supports non-stop mode.
1579
58d2eda5
PL
1580* Support for tracepoints on aarch64-linux was added in GDBserver.
1581
da8c46d2 1582* The 'record instruction-history' command now indicates speculative execution
bc504a31 1583 when using the Intel Processor Trace recording format.
da8c46d2 1584
629500fa
KS
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
02f024f9
YQ
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
4d9d419e
PL
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
eda14cf2
YQ
1597* GDB now supports displaced stepping on AArch64 GNU/Linux.
1598
be81798b
PA
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
3685b09f
PMR
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
fbea99ea
PA
1606* New commands
1607
1608maint set target-non-stop (on|off|auto)
1609maint 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
18989b3c
AB
1614maint set bfd-sharing
1615maint show bfd-sharing
1616 Control the reuse of bfd objects.
1617
566f5e3b
AB
1618set debug bfd-cache
1619show debug bfd-cache
1620 Control display of debugging info regarding bfd caching.
1621
6e9567fe
JB
1622set debug fbsd-lwp
1623show debug fbsd-lwp
1624 Control display of debugging info regarding FreeBSD threads.
1625
73b8c1fd
PA
1626set remote multiprocess-extensions-packet
1627show remote multiprocess-extensions-packet
1628 Set/show the use of the remote protocol multiprocess extensions.
1629
65706a29
PA
1630set remote thread-events
1631show remote thread-events
1632 Set/show the use of thread create/exit events.
1633
3685b09f
PMR
1634set ada print-signatures on|off
1635show ada print-signatures"
1636 Control whether parameter types and return types are displayed in overloads
82f06518 1637 selection menus. It is activated (@code{on}) by default.
3685b09f 1638
5fdf6324
AB
1639set max-value-size
1640show 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
6ff0ba5f
DE
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
0c532a29
MM
1652* The "record instruction-history" command accepts a new modifier: /s.
1653 It behaves exactly like /m and prints mixed source+disassembly.
1654
f2665db5
MM
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
40e0b271
PA
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
fd2ae5d6 1667* Support for reading/writing memory and extracting values on architectures
d63dd61e 1668 whose memory is addressable in units of any integral multiple of 8 bits.
fd2ae5d6 1669
9f757bf7
XR
1670catch handlers
1671 Allows to break when an Ada exception is handled.
1672
b459a59b
DB
1673* New remote packets
1674
1675exec stop reason
1676 Indicates that an exec system call was executed.
1677
1678exec-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
de979965
PA
1684vCtrlC
1685 Equivalent to interrupting with the ^C character, but works in
1686 non-stop mode.
1687
65706a29
PA
1688thread created stop reason (T05 create:...)
1689 Indicates that the thread was just created and is stopped at entry.
1690
1691thread exit stop reply (w exitcode;tid)
1692 Indicates that the thread has terminated.
1693
1694QThreadEvents
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
f2faf941 1702N stop reply
f2faf941
PA
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
aab3c527
JK
1707QCatchSyscalls
1708 Enables/disables catching syscalls from the inferior process.
1709 The remote stub reports support for this packet to GDB's qSupported query.
82075af2
JS
1710
1711syscall_entry stop reason
1712 Indicates that a syscall was just called.
1713
1714syscall_return stop reason
1715 Indicates that a syscall just returned.
1716
b459a59b
DB
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
1723set remote exec-event-feature-packet
1724show remote exec-event-feature-packet
1725 Set/show the use of the remote exec event feature.
1726
79efa585
SM
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
19d9d4ef
DB
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
82075af2
JS
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
1744set remote catch-syscall-packet
1745show remote catch-syscall-packet
1746 Set/show the use of the remote catch syscall feature.
1747
1c35a88f
LM
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
84654457
PA
1754* Python Scripting
1755
22a02324
PA
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.
84654457
PA
1760 ** gdb.InferiorThread objects have a new attribute "inferior", which
1761 is the Inferior object the thread belongs to.
1762
7c79d316 1763*** Changes in GDB 7.10
df8411da 1764
c16a3f52
OJ
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
18a94d75
DE
1769* Support for Sun's version of the "stabs" debug file format has been removed.
1770
df8411da
SDJ
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.
3b2f13ff 1778
d33279b3
AT
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
236af5e3
YG
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
b6577aab
DE
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
b30a0bc3
JB
1791* The "info dll", an alias of the "info sharedlibrary" command,
1792 is now available on all platforms.
1793
599bd15c
GB
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
a9a5a3d1
GB
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
1b6e6f5c
GB
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
cf75d6c3
AB
1812* The "dump" command now supports verilog hex format.
1813
417c80f9
AA
1814* GDB now supports the vector ABI on S/390 GNU/Linux targets.
1815
51aad7cc
GB
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
51f0e40d
AB
1823* The "tui reg" command now provides completion for all of the
1824 available register groups, including target specific groups.
1825
b58c513b
PP
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
bc460514
PP
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.
b58c513b 1831
37442ce1
DE
1832* Guile Scripting
1833
1834 ** Memory ports can now be unbuffered.
1835
3a8b707a
DE
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.
d11916aa 1841 ** You can now write frame unwinders in Python.
59fb7612
SS
1842 ** gdb.Type objects have a new method "optimized_out",
1843 returning optimized out gdb.Value instance of this type.
4c082a81
SC
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.
3a8b707a 1847
f57d2163
DE
1848* New commands
1849
1850maint print symbol-cache
1851 Print the contents of the symbol cache.
1852
1853maint print symbol-cache-statistics
1854 Print statistics of symbol cache usage.
1855
1856maint flush-symbol-cache
1857 Flush the contents of the symbol cache.
1858
f4abbc16
MM
1859record btrace bts
1860record bts
1861 Start branch trace recording using Branch Trace Store (BTS) format.
1862
36de76f9
JK
1863compile print
1864 Evaluate expression by using the compiler and print result.
1865
a4ea0946
AB
1866tui enable
1867tui disable
1868 Explicit commands for enabling and disabling tui mode.
1869
29c1c244
WT
1870show mpx bound
1871set mpx bound on i386 and amd64
bc504a31 1872 Support for bound table investigation on Intel MPX enabled applications.
29c1c244 1873
b20a6524
MM
1874record btrace pt
1875record pt
bc504a31 1876 Start branch trace recording using Intel Processor Trace format.
b20a6524 1877
b0627500
MM
1878maint info btrace
1879 Print information about branch tracing internals.
1880
1881maint btrace packet-history
1882 Print the raw branch tracing data.
1883
1884maint btrace clear-packet-history
1885 Discard the stored raw branch tracing data.
1886
1887maint btrace clear
1888 Discard all branch tracing data. It will be fetched and processed
1889 anew by the next "record" command.
1890
253828f1
JK
1891* New options
1892
b4f54984
DE
1893set debug dwarf-die
1894 Renamed from "set debug dwarf2-die".
1895show debug dwarf-die
1896 Renamed from "show debug dwarf2-die".
1897
1898set debug dwarf-read
1899 Renamed from "set debug dwarf2-read".
1900show debug dwarf-read
1901 Renamed from "show debug dwarf2-read".
1902
1903maint set dwarf always-disassemble
1904 Renamed from "maint set dwarf2 always-disassemble".
1905maint show dwarf always-disassemble
1906 Renamed from "maint show dwarf2 always-disassemble".
1907
1908maint set dwarf max-cache-age
1909 Renamed from "maint set dwarf2 max-cache-age".
1910maint show dwarf max-cache-age
1911 Renamed from "maint show dwarf2 max-cache-age".
1912
27e0867f
DE
1913set debug dwarf-line
1914show debug dwarf-line
1915 Control display of debugging info regarding DWARF line processing.
1916
ef0b411a
GB
1917set max-completions
1918show 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
fc637f04
PP
1924set history remove-duplicates
1925show history remove-duplicates
1926 Control the removal of duplicate history entries.
1927
f57d2163
DE
1928maint set symbol-cache-size
1929maint show symbol-cache-size
1930 Control the size of the symbol cache.
1931
d33501a5
MM
1932set|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
7a6a1731
GB
1938set debug linux-namespaces
1939show debug linux-namespaces
1940 Control display of debugging info regarding Linux namespaces.
1941
b20a6524
MM
1942set|show record btrace pt buffer-size
1943 Set and show the size of the ring buffer used for branch tracing in
bc504a31 1944 Intel Processor Trace format.
b20a6524
MM
1945 The obtained size may differ from the requested size. Use "info
1946 record" to see the obtained buffer size.
1947
b0627500
MM
1948maint set|show btrace pt skip-pad
1949 Set and show whether PAD packets are skipped when computing the
1950 packet history.
1951
253828f1
JK
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
9f050062
DE
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
f4abbc16
MM
1960* New remote packets
1961
1962qXfer:btrace-conf:read
1963 Return the branch trace configuration for the current thread.
1964
d33501a5
MM
1965Qbtrace-conf:bts:size
1966 Set the requested ring buffer size for branch tracing in BTS format.
1967
b20a6524 1968Qbtrace:pt
82f06518 1969 Enable Intel Processor Trace-based branch tracing for the current
b20a6524
MM
1970 process. The remote stub reports support for this packet to GDB's
1971 qSupported query.
1972
1973Qbtrace-conf:pt:size
bc504a31 1974 Set the requested ring buffer size for branch tracing in Intel Processor
b20a6524
MM
1975 Trace format.
1976
f7e6eed5
PA
1977swbreak 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
1983hwbreak stop reason
1984 Indicates the target stopped for a hardware breakpoint. This is
1985 required for correct non-stop mode operation.
1986
0a93529c
GB
1987vFile:fstat:
1988 Return information about files on the remote system.
1989
c78fa86a
GB
1990qXfer: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
15a201c8
GB
1994vFile: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
0d71eef5
DB
2000fork stop reason
2001 Indicates that a fork system call was executed.
2002
2003vfork stop reason
2004 Indicates that a vfork system call was executed.
2005
2006vforkdone 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
2010fork-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
d33501a5
MM
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
b05e3b0d
JM
2029* GDB now has support for DTrace USDT (Userland Static Defined
2030 Tracing) probes. The supported targets are x86_64-*-linux-gnu.
2031
550bdf96
AA
2032* GDB now supports access to vector registers on S/390 GNU/Linux
2033 targets.
2034
4f45d445
JK
2035* Removed command line options
2036
2037-xdb HP-UX XDB compatibility mode.
2038
0800b440
JK
2039* Removed targets and native configurations
2040
2041HP/PA running HP-UX hppa*-*-hpux*
2042Itanium running HP-UX ia64-*-hpux*
2043
58bfce93
MM
2044* New configure options
2045
2046--with-intel-pt
2047 This configure option allows the user to build GDB with support for
bc504a31 2048 Intel Processor Trace (default: auto). This requires libipt.
58bfce93
MM
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
f5f85ab9
JB
2055*** Changes in GDB 7.9.1
2056
2057* Python Scripting
2058
2059 ** Xmethods can now specify a result type.
2060
3b2f13ff 2061*** Changes in GDB 7.9
919b9a93 2062
05db5edd
ST
2063* GDB now supports hardware watchpoints on x86 GNU Hurd.
2064
5f3b99cf 2065* Python Scripting
2b4fd423
DE
2066
2067 ** You can now access frame registers from Python scripts.
2068 ** New attribute 'producer' for gdb.Symtab objects.
d096d8c1
DE
2069 ** gdb.Objfile objects have a new attribute "progspace",
2070 which is the gdb.Progspace object of the containing program space.
a0be3e44 2071 ** gdb.Objfile objects have a new attribute "owner".
7c50a931
DE
2072 ** gdb.Objfile objects have a new attribute "build_id",
2073 which is the build ID generated when the file was built.
86e4ed39 2074 ** gdb.Objfile objects have a new method "add_separate_debug_file".
4ffbba72
DE
2075 ** A new event "gdb.clear_objfiles" has been added, triggered when
2076 selecting a new file to debug.
02be9a71 2077 ** You can now add attributes to gdb.Objfile and gdb.Progspace objects.
6dddd6a5 2078 ** New function gdb.lookup_objfile.
5f3b99cf 2079
8fda9068
YQ
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
faa42425
DE
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
bb2ec1b3
TT
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
81219e53
DE
2105* New commands
2106
439250fb
DE
2107demangle [-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
81219e53
DE
2113queue-signal signal-name-or-number
2114 Queue a signal to be delivered to the thread when it is resumed.
2115
f10c5b19
JK
2116add-auto-load-scripts-directory directory
2117 Add entries to the list of directories from which to load auto-loaded
2118 scripts.
2119
f5b95c01
AA
2120maint print user-registers
2121 List all currently available "user" registers.
2122
bb2ec1b3
TT
2123compile 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
2127compile 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
70509625
PA
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
a25a5a45
PA
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
cc485e62
DE
2150* New options
2151
2152set debug symbol-lookup
2153show debug symbol-lookup
2154 Control display of debugging info regarding symbol lookup.
2155
2ddf4301
SM
2156* MI changes
2157
2158 ** The -list-thread-groups command outputs an exit-code field for
2159 inferiors that have exited.
2160
bb7e3f4d
YQ
2161* New targets
2162
2163MIPS SDE mips*-sde*-elf*
2164
3831839c
PA
2165* Removed targets
2166
2167Support for these obsolete configurations has been removed.
2168
5ab806de
PA
2169Alpha running OSF/1 (or Tru64) alpha*-*-osf*
2170SGI Irix-5.x mips-*-irix5*
2171SGI Irix-6.x mips-*-irix6*
09dd9a69
PA
2172VAX running (4.2 - 4.3 Reno) BSD vax-*-bsd*
2173VAX running Ultrix vax-*-ultrix*
3831839c 2174
6bf6fd09
JB
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
919b9a93 2179*** Changes in GDB 7.8
e9475ead 2180
8d551b02
DE
2181* New command line options
2182
2183-D data-directory
2184 This is an alias for the --data-directory option.
2185
e9475ead
SA
2186* GDB supports printing and modifying of variable length automatic arrays
2187 as specified in ISO C99.
2188
a75fef0e
NC
2189* The ARM simulator now supports instruction level tracing
2190 with or without disassembly.
b7bba001 2191
ed3ef339
DE
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
2201guile [code]
2202gu [code]
2203 Invoke CODE by passing it to the Guile interpreter.
2204
2205guile-repl
2206gr
2207 Start a Guile interactive prompt (or "repl" for "read-eval-print loop").
2208
2209info 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
c6044dd1
JB
2215* New options
2216
770e7fc7
DE
2217set print symbol-loading (off|brief|full)
2218show 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
ed3ef339
DE
2224set guile print-stack (none|message|full)
2225show guile print-stack
2226 Show a stack trace when an error is encountered in a Guile script.
2227
2228set auto-load guile-scripts (on|off)
2229show auto-load guile-scripts
2230 Control auto-loading of Guile script files.
2231
c6044dd1
JB
2232maint ada set ignore-descriptive-types (on|off)
2233maint 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
6a3cb8e8
PA
2239set 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
67b5c0c1
MM
2245set record btrace replay-memory-access (read-only|read-write)
2246show record btrace replay-memory-access
2247 Control what memory accesses are allowed during replay.
2248
329ea579
PA
2249maint set target-async (on|off)
2250maint show target-async
5784b3ca
JK
2251 This controls whether GDB targets operate in synchronous or
2252 asynchronous mode. Normally the default is asynchronous, if it is
329ea579 2253 available; but this can be changed to more easily debug problems
5784b3ca 2254 occurring only in synchronous mode.
329ea579
PA
2255
2256set mi-async (on|off)
2257show 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
87ce2a04
DE
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
5de9129b
MM
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
8710b709
MM
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
0688d04e
MM
2289* The ranges given as arguments to the 'record function-call-history' and
2290 'record instruction-history' commands are now inclusive.
2291
066ce621 2292* The btrace record target now supports the 'record goto' command.
0b722aec
MM
2293 For locations inside the execution trace, the back trace is computed
2294 based on the information stored in the execution trace.
066ce621 2295
52834460
MM
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
237b092b
AA
2300* The "catch syscall" command now works on s390*-linux* targets.
2301
936d2992
PA
2302* The "compare-sections" command is no longer specific to target
2303 remote. It now works with all targets.
2304
930ee1b1
PA
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
6a3cb8e8
PA
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
bc504a31 2320* GDB now supports access to Intel MPX registers on GNU/Linux.
dc304a94 2321
bc504a31
PA
2322* Support for Intel AVX-512 registers on GNU/Linux.
2323 Support displaying and modifying Intel AVX-512 registers
dc304a94
JK
2324 $zmm0 - $zmm31 and $k0 - $k7 on GNU/Linux.
2325
969c39fb
MM
2326* New remote packets
2327
2328qXfer:btrace:read's annex
2329 The qXfer:btrace:read packet supports a new annex 'delta' to read
2330 branch trace incrementally.
2331
f7bd0f78
SC
2332* Python Scripting
2333
2334 ** Valid Python operations on gdb.Value objects representing
2335 structs/classes invoke the corresponding overloaded operators if
2336 available.
0c6e92a5
SC
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.
f7bd0f78 2342
36c24d95
UW
2343* New targets
2344PowerPC64 GNU/Linux little-endian powerpc64le-*-linux*
2345
95060284
JB
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
7f3c0343
JB
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
329ea579
PA
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
b7bba001 2365*** Changes in GDB 7.7
2d450646 2366
33a97bbe
OJ
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
08248ca9
SDJ
2371* GDB now supports SystemTap SDT probes on AArch64 GNU/Linux.
2372
73869dc2
DE
2373* GDB now supports Fission DWP file format version 2.
2374 http://gcc.gnu.org/wiki/DebugFission
2375
a280dbd1
SDJ
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
52e260a3
DE
2384* The "maintenance print objfiles" command now takes an optional regexp.
2385
9f948660
SDJ
2386* The "catch syscall" command now works on arm*-linux* targets.
2387
901461f8
PA
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
caf26be9
SB
2402* New script contrib/gdb-add-index.sh for adding .gdb_index sections
2403 to binaries.
2404
1e611234
PM
2405* Python scripting
2406
2407 ** Frame filters and frame decorators have been added.
f76c27b5 2408 ** Temporary breakpoints are now supported.
bc79de95 2409 ** Line tables representation has been added.
a16b0e22
SC
2410 ** New attribute 'parent_type' for gdb.Field objects.
2411 ** gdb.Field objects can be used as subscripts on gdb.Value objects.
c0d48811 2412 ** New attribute 'name' for gdb.Type objects.
1e611234 2413
a1217d97
SL
2414* New targets
2415
2416Nios II ELF nios2*-*-elf
2417Nios II GNU/Linux nios2*-*-linux
42059f0e 2418Texas Instruments MSP430 msp430*-*-elf
a1217d97 2419
2659903b
JK
2420* Removed native configurations
2421
2422Support for these a.out NetBSD and OpenBSD obsolete configurations has
2423been removed. ELF variants of these configurations are kept supported.
2424
2425arm*-*-netbsd* but arm*-*-netbsdelf* is kept supported.
2426i[34567]86-*-netbsd* but i[34567]86-*-netbsdelf* is kept supported.
2427i[34567]86-*-openbsd[0-2].* but i[34567]86-*-openbsd* is kept supported.
2428i[34567]86-*-openbsd3.[0-3]
2429m68*-*-netbsd* but m68*-*-netbsdelf* is kept supported.
2430sparc-*-netbsd* but sparc-*-netbsdelf* is kept supported.
2431vax-*-netbsd* but vax-*-netbsdelf* is kept supported.
2432
bd712aed 2433* New commands:
b340913d
TT
2434catch rethrow
2435 Like "catch throw", but catches a re-thrown exception.
7d0c9981
DE
2436maint check-psymtabs
2437 Renamed from old "maint check-symtabs".
2438maint check-symtabs
2439 Perform consistency checks on symtabs.
2440maint expand-symtabs
2441 Expand symtabs matching an optional regexp.
b340913d 2442
dccca75d
EZ
2443show configuration
2444 Display the details of GDB configure-time options.
2445
bd712aed
DE
2446maint set|show per-command
2447maint set|show per-command space
2448maint set|show per-command time
2449maint set|show per-command symtab
2450 Enable display of per-command gdb resource usage.
2451
98297bf6
NB
2452remove-symbol-file FILENAME
2453remove-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
58d06528
JB
2458info exceptions
2459info 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
bd3eecc3
PA
2464* New options
2465
8fb8eb5c
DE
2466set debug symfile off|on
2467show debug symfile
2468 Control display of debugging info regarding reading symbol files and
2469 symbol tables within those files
2470
e7045703
DE
2471set print raw frame-arguments
2472show print raw frame-arguments
2473 Set/show whether to print frame arguments in raw mode,
2474 disregarding any defined pretty-printers.
2475
bd3eecc3
PA
2476set remote trace-status-packet
2477show remote trace-status-packet
2478 Set/show the use of remote protocol qTStatus packet.
2479
a1217d97
SL
2480set debug nios2
2481show debug nios2
2482 Control display of debugging messages related to Nios II targets.
2483
c1e36e3e
PA
2484set range-stepping
2485show range-stepping
2486 Control whether target-assisted range stepping is enabled.
2487
98882a26
PA
2488set startup-with-shell
2489show startup-with-shell
2490 Specifies whether Unix child processes are started via a shell or
2491 directly.
2492
29453a14
YQ
2493set code-cache
2494show code-cache
2495 Use the target memory cache for accesses to the code segment. This
2496 improves performance of remote debugging (particularly disassembly).
2497
1c2e4450
PA
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
db0fec5c
DE
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
dccca75d
EZ
2508* New command-line options
2509--configuration
2510 Display the details of GDB configure-time options.
2511
d0353e76
YQ
2512* The command 'tsave' can now support new option '-ctf' to save trace
2513 buffer in Common Trace Format.
2514
b292c783
JK
2515* Newly installed $prefix/bin/gcore acts as a shell interface for the
2516 GDB command gcore.
2517
09f2921c 2518* GDB now implements the C++ 'typeid' operator.
6e72ca20 2519
b340913d
TT
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
0c557179
SDJ
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
d0353e76
YQ
2530* MI changes
2531
403cb6b1 2532 ** All MI commands now accept an optional "--language" option.
4e35e808
JB
2533 Support for this feature can be verified by using the "-list-features"
2534 command, which should contain "language-option".
403cb6b1 2535
6b7cbff1
JB
2536 ** The new command -info-gdb-mi-command allows the user to determine
2537 whether a GDB/MI command is supported or not.
2538
2ea126fa
JB
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
d0353e76
YQ
2545 ** The -trace-save MI command can optionally save trace buffer in Common
2546 Trace Format now.
2547
c5867ab6
HZ
2548 ** The new command -dprintf-insert sets a dynamic printf breakpoint.
2549
c898adb7
YQ
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
dc673c81
YQ
2554 ** The new command -trace-frame-collected dumps collected variables,
2555 computed expressions, tvars, memory and registers in a traceframe.
2556
6211c335
YQ
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
5713b9b5
JB
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
72bfa06c
JB
2564 main subprogram. Support for this feature can be verified using
2565 the "-list-features" command, which should contain
2566 "exec-run-start-option".
5713b9b5 2567
40555925
JB
2568 ** The new commands -catch-assert and -catch-exceptions insert
2569 catchpoints stopping the program when Ada exceptions are raised.
2570
58d06528
JB
2571 ** The new command -info-ada-exceptions provides the equivalent of
2572 the new "info exceptions" command.
2573
0201faac
JB
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
c1e36e3e
PA
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
28a93511
YQ
2585* GDB now understands the element 'tvar' in the XML traceframe info.
2586 It has the id of the collected trace state variables.
2587
4ac33720
UW
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
c1e36e3e
PA
2592* New remote packets
2593
2594vCont;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
7f91dbec
GB
2600qXfer: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
c2d6af84
PA
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
28a93511
YQ
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
7a60ad40
YQ
2617 ** GDBserver now supports hardware watchpoints on the MIPS GNU/Linux
2618 target.
2619
6fbe845e
AB
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
9058cc3a
TG
2623* GDB can now use Windows x64 unwinding data.
2624
0d12017b
JB
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
2d450646 2630*** Changes in GDB 7.6
80c8d323 2631
59ea5688
MM
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
2637set|show record full insn-number-max
2638set|show record full stop-at-limit
2639set|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
2647record 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
2656record instruction-history prints the execution history at
2657 instruction granularity
2658
2659record function-call-history prints the execution history at
2660 function granularity
2661
543bf33d
AT
2662* New native configurations
2663
51d66578 2664ARM AArch64 GNU/Linux aarch64*-*-linux-gnu
543bf33d 2665FreeBSD/powerpc powerpc*-*-freebsd
4f4352f7 2666x86_64/Cygwin x86_64-*-cygwin*
ea5f3910 2667Tilera TILE-Gx GNU/Linux tilegx*-*-linux-gnu
543bf33d 2668
249729c4
JB
2669* New targets
2670
51d66578
MS
2671ARM AArch64 aarch64*-*-elf
2672ARM AArch64 GNU/Linux aarch64*-*-linux
249729c4 2673Lynx 178 PowerPC powerpc-*-lynx*178
3c095f49 2674x86_64/Cygwin x86_64-*-cygwin*
ea5f3910 2675Tilera TILE-Gx GNU/Linux tilegx*-*-linux
249729c4 2676
e64e0392
DE
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
07540c15
DE
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
e93a8774
TT
2689* Removed command line options
2690
2691-epoch This was used by the gdb mode in Epoch, an ancient fork of
2692 Emacs.
2693
53342f27
TT
2694* The 'ptype' and 'whatis' commands now accept an argument to control
2695 type formatting.
2696
451b7c33
TT
2697* 'info proc' now works on some core files.
2698
a72c3253
DE
2699* Python scripting
2700
2701 ** Vectors can be created with gdb.Type.vector.
2702
d7de8e3c
TT
2703 ** Python's atexit.register now works in GDB.
2704
18a9fc12
TT
2705 ** Types can be pretty-printed via a Python API.
2706
9a27f2c6
PK
2707 ** Python 3 is now supported (in addition to Python 2.4 or later)
2708
bea883fd
SCR
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
a72c3253
DE
2715* New Python-based convenience functions:
2716
2717 ** $_memeq(buf1, buf2, length)
2718 ** $_streq(str1, str2)
2719 ** $_strlen(str)
2720 ** $_regex(str, regex)
2721
f3c8a52a
JK
2722* The 'cd' command now defaults to using '~' (the home directory) if not
2723 given an argument.
2724
1605ef26
TT
2725* The C++ ABI now defaults to the GNU v3 ABI. This has been the
2726 default for GCC since November 2000.
2727
504b36fd
YQ
2728* The command 'forward-search' can now be abbreviated as 'fo'.
2729
f2a8bc8a
YQ
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
23a80689
JB
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.
393fd4c3
YQ
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.
23a80689 2744
d6b28940
TT
2745* New commands (for set/show, see "New options" below)
2746
ab04a2af
TT
2747catch signal
2748 Catch signals. This is similar to "handle", but allows commands and
2749 conditions to be attached.
2750
d6b28940
TT
2751maint info bfds
2752 List the BFDs known to GDB.
2753
8315665e
YPK
2754python-interactive [command]
2755pi [command]
2756 Start a Python interactive prompt, or evaluate the optional command
2757 and print the result of expressions.
2758
2759py [command]
2760 "py" is a new alias for "python".
2761
18a9fc12
TT
2762enable type-printer [name]...
2763disable type-printer [name]...
2764 Enable or disable type printers.
2765
aa9259cc
TS
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
53342f27
TT
2772* New options
2773
2774set print type methods (on|off)
2775show print type methods
2776 Control whether method declarations are displayed by "ptype".
2777 The default is to show them.
2778
2779set print type typedefs (on|off)
2780show print type typedefs
2781 Control whether typedef definitions are displayed by "ptype".
2782 The default is to show them.
2783
1b56eb55
JK
2784set filename-display basename|relative|absolute
2785show filename-display
2786 Control the way in which filenames is displayed.
2787 The default is "relative", which preserves previous behavior.
2788
e9f1758d
PA
2789set trace-buffer-size
2790show trace-buffer-size
2791 Request target to change the size of trace buffer.
2792
a46c1e42
PA
2793set remote trace-buffer-size-packet auto|on|off
2794show remote trace-buffer-size-packet
2795 Control the use of the remote protocol `QTBuffer:size' packet.
2796
be9a8770
PA
2797set debug aarch64
2798show debug aarch64
2799 Control display of debugging messages related to ARM AArch64.
2800 The default is off.
2801
2802set debug coff-pe-read
2803show debug coff-pe-read
2804 Control display of debugging messages related to reading of COFF/PE
2805 exported symbols.
2806
2807set debug mach-o
2808show debug mach-o
2809 Control display of debugging messages related to Mach-O symbols
2810 processing.
2811
2812set debug notification
2813show debug notification
2814 Control display of debugging info for async remote notification.
2815
5b9afe8a
YQ
2816* MI changes
2817
2818 ** Command parameter changes are now notified using new async record
2819 "=cmd-param-changed".
201b4506
YQ
2820 ** Trace frame changes caused by command "tfind" are now notified using
2821 new async record "=traceframe-changed".
134a2066
YQ
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".
82a90ccf
YQ
2825 ** The start and stop of process record are now notified using new
2826 async record "=record-started" and "=record-stopped".
8de0566d
YQ
2827 ** Memory changes are now notified using new async record
2828 "=memory-changed".
ed8a1c2d 2829 ** The data-disassemble command response will include a "fullname" field
ec83d211 2830 containing the absolute file name when source has been requested.
62747a60
TT
2831 ** New optional parameter COUNT added to the "-data-write-memory-bytes"
2832 command, to allow pattern filling of memory areas.
3fa7bf06
MG
2833 ** New commands "-catch-load"/"-catch-unload" added for intercepting
2834 library load/unload events.
f2a8bc8a
YQ
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.
f5911ea1
HAQ
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.
ec83d211
JK
2841 ** The "fullname" field is now always present along with the "file" field,
2842 even if the file cannot be found by GDB.
5b9afe8a 2843
608e2dbb
TT
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
f6f899bf
HAQ
2849* New remote packets
2850
2851QTBuffer:size
2852 Set the size of trace buffer. The remote stub reports support for this
2853 packet to gdb's qSupported query.
2854
10782d74
MM
2855Qbtrace: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
2860Qbtrace:off
2861 Disable branch tracing for the current thread. The remote stub reports
2862 support for this packet to gdb's qSupported query.
2863
2864qXfer: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
80c8d323 2868*** Changes in GDB 7.5
d6e00af6 2869
1b3371b1
L
2870* GDB now supports x32 ABI. Visit <http://sites.google.com/site/x32abi/>
2871 for more x32 ABI info.
2872
d0e64392
MR
2873* GDB now supports access to MIPS DSP registers on Linux targets.
2874
4cc0665f
MR
2875* GDB now supports debugging microMIPS binaries.
2876
85d4a676
SS
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
55aa24fb
SDJ
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
72508ac0
PO
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
16899756
DE
2898* The option "symbol-reloading" has been deleted as it is no longer used.
2899
4795f398
DE
2900* Python scripting
2901
7d74f244
DE
2902 ** GDB commands implemented in Python can now be put in command class
2903 "gdb.COMMAND_USER".
2904
4795f398
DE
2905 ** The "maint set python print-stack on|off" is now deleted.
2906
50897289
TT
2907 ** A new class, gdb.printing.FlagEnumerationPrinter, can be used to
2908 apply "flag enum"-style pretty-printing to any enum.
2909
64e7d9dd
TT
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
f0823d2c
TT
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
7b282c5a
SCR
2920 ** A new method 'referenced_value' on gdb.Value objects which can
2921 dereference pointer as well as C++ reference values.
2922
a20ee7a4
SCR
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
7efc75aa
SCR
2927 ** New function gdb.find_pc_line which returns the gdb.Symtab_and_line
2928 object associated with a PC value.
2929
ee0bf529
SCR
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
a766d390
DE
2933* Go language support.
2934 GDB now supports debugging programs written in the Go programming
2935 language.
2936
e0f9f062
DE
2937* GDBserver now supports stdio connections.
2938 E.g. (gdb) target remote | ssh myhost gdbserver - hello
2939
217bff3e
JK
2940* The binary "gdbtui" can no longer be built or installed.
2941 Use "gdb -tui" instead.
2942
cafec441
TT
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
4aac40c8
TT
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
d99bd577
UW
2955* The "info proc" and "generate-core-file" commands will now also
2956 work on remote targets connected to GDBserver on Linux.
2957
53fe1783
GB
2958* The command "info catch" has been removed. It has been disabled
2959 since December 2007.
2960
e41eec66
JB
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
5808517f
YQ
2971* The "info static-tracepoint-marker" command will now also work on
2972 native Linux targets with in-process agent.
2973
481860b3
GB
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
e615022a
DE
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.
481860b3 2984
156942c7
DE
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
927fbba6
JB
2991* Ada support for GDB/MI Variable Objects has been added.
2992
20388dd6
YQ
2993* GDB can now support 'breakpoint always-inserted mode' in 'record'
2994 target.
2995
f3e0e960
SS
2996* MI changes
2997
2998 ** New command -info-os is the MI equivalent of "info os".
2999
37ce89eb
SS
3000 ** Output logs ("set logging" and related) now include MI output.
3001
edcc5120
TT
3002* New commands
3003
e615022a
DE
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
edcc5120
TT
3008 ** "catch load" and "catch unload" can be used to stop when a shared
3009 library is loaded or unloaded, respectively.
3010
816338b5
SS
3011 ** "enable count" can be used to auto-disable a breakpoint after
3012 several hits.
3013
57651221 3014 ** "info vtbl" can be used to show the virtual method tables for
c4aeac85
TT
3015 C++ and Java objects.
3016
06fc020f 3017 ** "explore" and its sub commands "explore value" and "explore type"
6ea71545 3018 can be used to recursively explore values and types of
06fc020f
SCR
3019 expressions. These commands are available only if GDB is
3020 configured with '--with-python'.
3021
bf88dd68
JK
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
e7e0cddf
SS
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
9cb709b6
TT
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
2d4c29c5
TS
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
a58b110a
KB
3051* New targets
3052
3053Renesas RL78 rl78-*-elf
60c9a3c0 3054HP OpenVMS ia64 ia64-hp-openvms*
a58b110a 3055
72895ff6
LM
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
4cc0665f
MR
3064set mips compression
3065show 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
72895ff6
LM
3072set breakpoint condition-evaluation
3073show breakpoint condition-evaluation
cf65ecd3 3074 Control whether breakpoint conditions are evaluated by GDB ("host") or by
5b43fab2
JK
3075 GDBserver ("target"). Default option "auto" chooses the most efficient
3076 available mode.
72895ff6
LM
3077 This option can improve debugger efficiency depending on the speed of the
3078 target.
3079
bf88dd68
JK
3080set auto-load off
3081 Disable auto-loading globally.
3082
3083show auto-load
3084 Show auto-loading setting of all kinds of auto-loaded files.
3085
3086set auto-load gdb-scripts on|off
3087show auto-load gdb-scripts
3088 Control auto-loading of GDB canned sequences of commands files.
3089
3090set auto-load python-scripts on|off
3091show auto-load python-scripts
3092 Control auto-loading of Python script files.
3093
3094set auto-load local-gdbinit on|off
3095show auto-load local-gdbinit
3096 Control loading of init file (.gdbinit) from current directory.
3097
3098set auto-load libthread-db on|off
3099show auto-load libthread-db
3100 Control auto-loading of inferior specific thread debugging shared library.
3101
7349ff92 3102set auto-load scripts-directory <dir1>[:<dir2>...]
9cc815f5 3103show auto-load scripts-directory
7349ff92
JK
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
bccbefd2
JK
3109set auto-load safe-path <dir1>[:<dir2>...]
3110show 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
4dc84fd1
JK
3114set debug auto-load on|off
3115show debug auto-load
3116 Control display of debugging info for auto-loading the files above.
3117
d3ce09f5 3118set dprintf-style gdb|call|agent
e7e0cddf 3119show dprintf-style
d3ce09f5
SS
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.
e7e0cddf
SS
3124
3125set dprintf-function <expr>
3126show dprintf-function
3127set dprintf-channel <expr>
3128show dprintf-channel
3129 Set the function and optional first argument to the call when using
3130 the "call" style of dynamic printf.
3131
d3ce09f5
SS
3132set disconnected-dprintf on|off
3133show disconnected-dprintf
3134 Control whether agent-style dynamic printfs continue to be in effect
3135 after GDB disconnects.
3136
6dea1fbd
JK
3137* New configure options
3138
7349ff92
JK
3139--with-auto-load-dir
3140 Configure default value for the 'set auto-load scripts-directory'
1564a261
JK
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').
7349ff92 3145
6dea1fbd
JK
3146--with-auto-load-safe-path
3147 Configure default value for the 'set auto-load safe-path' setting
7349ff92 3148 above. It defaults to the --with-auto-load-dir setting.
6dea1fbd
JK
3149
3150--without-auto-load-safe-path
3151 Set 'set auto-load safe-path' to '/', effectively disabling this
3152 security feature.
3153
72895ff6
LM
3154* New remote packets
3155
74c48cbb
PA
3156z0/z1 conditional breakpoints extension
3157
72895ff6
LM
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
9b224c5e
PA
3163QProgramSignals:
3164
3165 Specify the signals which the remote stub may pass to the debugged
3166 program without GDB involvement.
3167
8320cc4f
JK
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
8837a20f
JB
3175*** Changes in GDB 7.4
3176
f8eba3c6
TT
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
1bfeeb0f
JL
3183* GDB now allows you to skip uninteresting functions and files when
3184 stepping with the "skip function" and "skip file" commands.
3185
480a3f21
PW
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
3a7bf607
PM
3196* Python scripting
3197
32d1c362 3198 ** The register_pretty_printer function in module gdb.printing now takes
7d0aff21 3199 an optional `replace' argument. If True, the new printer replaces any
32d1c362
DE
3200 existing one.
3201
3a7bf607 3202 ** The "maint set python print-stack on|off" command has been
4795f398
DE
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.
3a7bf607 3208
baacfb07 3209 ** A prompt substitution hook (prompt_hook) is now available to the
3a7bf607 3210 Python API.
713389e0 3211
fa3a4f15
PM
3212 ** A new Python module, gdb.prompt has been added to the GDB Python
3213 modules library. This module provides functionality for
baacfb07 3214 escape sequences in prompts (used by set/show
fa3a4f15
PM
3215 extended-prompt). These escape sequences are replaced by their
3216 corresponding value.
3217
5e239b84
PM
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
9df2fbc4
PM
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
457e09f0
DE
3228 ** Symbols now provide the "type" attribute, the type of the symbol.
3229
6839b47f
KP
3230 ** The "gdb.breakpoint" function has been deprecated in favor of
3231 "gdb.breakpoints".
3232
cc72b2a2
KP
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
84ad80e6
PK
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
20c168b5
KP
3242 ** A new event "gdb.new_objfile" has been added, triggered by loading a
3243 new object file.
3244
03c3051a
PK
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
7376e450
TT
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
98a5dd13
DE
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
478aac75
DE
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
9c06b0b4
TJB
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
03f2bd59
JK
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
71eba9c2 3293* New commands "info macros" and "alias" have been added.
edc84990 3294
2bda9cc5
JK
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
ed59ded5
DE
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
9c06b0b4
TJB
3305* Changed commands
3306
3307watch 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
dbaefcf7
DE
3311info 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
71eba9c2 3315info 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
3065dfb6
SS
3321collect[/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
f196051f
SS
3329tstart [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
3334tstop [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
d248b706
KY
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
405f8e94
SS
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
2bda9cc5
JK
3351* New options
3352
45cfd468
DE
3353set debug dwarf2-read
3354show debug dwarf2-read
3355 Turns on or off display of debugging messages related to reading
3356 DWARF debug info. The default is off.
3357
3358set debug symtab-create
3359show debug symtab-create
3360 Turns on or off display of debugging messages related to symbol table
3361 creation. The default is off.
3362
baacfb07
PM
3363set extended-prompt
3364show 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
2bda9cc5
JK
3371set print entry-values (both|compact|default|if-needed|no|only|preferred)
3372show 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
3377set debug entry-values
3378show debug entry-values
3379 Control display of debugging info for determining frame argument values at
3380 function entry and virtual tail call frames.
3381
c011a4f4
DE
3382set basenames-may-differ
3383show 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
f196051f
SS
3393set trace-user
3394show trace-user
3395set trace-notes
3396show 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
3402set trace-stop-notes
3403show 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
d248b706
KY
3409* New remote packets
3410
3411QTEnable
3412
3413 Dynamically enable a tracepoint in a started trace experiment.
3414
3415QTDisable
3416
3417 Dynamically disable a tracepoint in a started trace experiment.
3418
f196051f
SS
3419QTNotes
3420
3421 Set the user and notes of the trace run.
3422
3423qTP
3424
3425 Query the current status of a tracepoint.
3426
405f8e94
SS
3427qTMinFTPILen
3428
3429 Query the minimum length of instruction at which a fast tracepoint may
3430 be placed.
3431
1a532630
PP
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
11315641
YQ
3435* New targets
3436
3437Texas Instruments TMS320C6x tic6x-*-*
3438
87326c78
DD
3439* New Simulators
3440
3441Renesas RL78 rl78-*-elf
3442
e8d56f18
JB
3443*** Changes in GDB 7.3.1
3444
3445* The build failure for NetBSD and OpenBSD targets have now been fixed.
3446
d6e00af6 3447*** Changes in GDB 7.3
797054e6 3448
60f98dde
MS
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
eee5b35e
DD
3453* The "catch syscall" command now works on mips*-linux* targets.
3454
b716877b
AB
3455* The -data-disassemble MI command now supports modes 2 and 3 for
3456 dumping the instruction opcodes.
3457
aae1c79a
DE
3458* New command line options
3459
3460-data-directory DIR Specify DIR as the "data-directory".
3461 This is mostly for testing purposes.
3462
a86caf66
DE
3463* The "maint set python auto-load on|off" command has been renamed to
3464 "set auto-load-scripts on|off".
3465
99e7ae30
DE
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
4694da01
TT
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
f4b8a18d
KW
3478* OpenCL C
3479 Initial support for the OpenCL C language (http://www.khronos.org/opencl)
3480 has been integrated into GDB.
3481
585d1eb8
PM
3482* Python scripting
3483
da5d4055
PM
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
9a6f1302
PM
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
29703da4
PM
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
350c6c65
PM
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
6e6fbe60
DE
3501 ** New function gdb.lookup_global_symbol looks up a global symbol.
3502
585d1eb8
PM
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
0e3509db
DE
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
7b51bc51
DE
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
99e7ae30
DE
3523 ** gdb.parameter("directories") is now available.
3524
d8e22779
TT
3525 ** New function gdb.newest_frame returns the newest frame in the
3526 selected thread.
3527
4694da01
TT
3528 ** The gdb.InferiorThread class has a new "name" attribute. This
3529 holds the thread's name.
3530
505500db
SW
3531 ** Python Support for Inferior events.
3532 Python scripts can add observers to be notified of events
824446ad 3533 occurring in the process being debugged.
c17a9e46
HZ
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
def98928
TT
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
66cb8159
TT
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
4aac0db7
UW
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
283e6a52
TT
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
b56df873 3572* The "watch" command now accepts an optional "-location" argument.
14c0d4e1 3573 When used, this causes GDB to watch the memory referred to by the
b56df873
TT
3574 expression. Such a watchpoint is never deleted due to it going out
3575 of scope.
3576
ae53ffa4
PA
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
f1310107
TJB
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
248c9dbc
JB
3608* New features in the GDB remote stub, GDBserver
3609
1aee7009
JB
3610 ** GDBserver is now supported on PowerPC LynxOS (versions 4.x and 5.x),
3611 and i686 LynxOS (version 5.x).
248c9dbc 3612
eb826dc6
MF
3613 ** GDBserver is now supported on Blackfin Linux.
3614
44603653
JB
3615* New native configurations
3616
3617ia64 HP-UX ia64-*-hpux*
3618
91021223
MF
3619* New targets:
3620
3621Analog Devices, Inc. Blackfin Processor bfin-*
3622
6e1bb179
JB
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
50c97f38
TT
3628* Guile support was removed.
3629
448a92bf
MF
3630* New features in the GNU simulator
3631
3632 ** The --map-info flag lists all known core mappings.
3633
66ee2731
MF
3634 ** CFI flashes may be simulated via the "cfi" device.
3635
76b8507d 3636*** Changes in GDB 7.2
bfbf3774 3637
ba25b921
PA
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
4656f5c6
SW
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
254e6b9e
DE
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
711e434b
PM
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
0fb4aa4b
PA
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
ca11e899
SS
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
711e434b
PM
3730* New remote packets
3731
3732qGetTIBAddr
3733
3734 Return the address of the Windows Thread Information Block of a given thread.
3735
dde08ee1
PA
3736qRelocInsn
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
0fb4aa4b
PA
3745qTfSTM, qTsSTM
3746
3747 List static tracepoint markers in the target program.
3748
3749qTSTMat
3750
3751 List static tracepoint markers at a given address in the target
3752 program.
3753
3754qXfer: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
ca11e899
SS
3760QAllow
3761
3762 Send the current settings of GDB's permission flags.
3763
3764QTDPsrc
3765
3766 Send part of the source (textual) form of a tracepoint definition,
3767 which includes location, conditional, and action list.
3768
3f7b2faa
DE
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
d337e9f0
PA
3773* New features in the GDB remote stub, GDBserver
3774
0fb4aa4b
PA
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.
d337e9f0 3790
c24d0242
PM
3791 - GDBserver now supports x86_64 Windows 64-bit debugging.
3792
c8d5aac9
L
3793* GDB now sends xmlRegisters= in qSupported packet to indicate that
3794 it understands register description.
3795
7c953934
TT
3796* The --batch flag now disables pagination and queries.
3797
8685c86f
L
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
95a42b64 3806* The `commands' command now accepts a range of breakpoints to modify.
86b17b60
PA
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).
95a42b64 3812
8bd10a10
CM
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
ab38a727
PA
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
6149aea9
PA
3828* New commands
3829
f1421989
HZ
3830eval 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
ab38a727
PA
3834set target-file-system-kind unix|dos-based|auto
3835show target-file-system-kind
3836 Set or show the assumed file system kind for target reported file
3837 names.
3838
6149aea9
PA
3839save 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
3845is now deprecated.
3846
0fb4aa4b
PA
3847info static-tracepoint-markers
3848 Display information about static tracepoint markers in the target.
3849
3850strace 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
ca11e899
SS
3854set observer on|off
3855show observer
3856 Enable and disable observer mode.
3857
3858set may-write-registers on|off
3859set may-write-memory on|off
3860set may-insert-breakpoints on|off
3861set may-insert-tracepoints on|off
3862set may-insert-fast-tracepoints on|off
3863set 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
3872set record memory-query on|off
3873show record memory-query
3874 Control whether to stop the inferior if memory changes caused
3875 by an instruction cannot be recorded.
3876
53a71c06
CR
3877* Changed commands
3878
3879disassemble
3880 The disassemble command now supports "start,+length" form of two arguments.
3881
f3e9a817
PM
3882* Python scripting
3883
9279c692
JB
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
adc36818 3890** The GDB Python API now has access to breakpoints, symbols, symbol
595939de
PM
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.
f870a310 3894
fa33c3cd 3895** New functions gdb.target_charset, gdb.target_wide_charset,
07ca107c
DE
3896 gdb.progspaces, gdb.current_progspace, and gdb.string_to_argv.
3897
3898** New exception gdb.GdbError.
fa33c3cd
DE
3899
3900** Pretty-printers are now also looked up in the current program space.
f3e9a817 3901
967cf477
DE
3902** Pretty-printers can now be individually enabled and disabled.
3903
8a1ea21f
DE
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
a7bdde9e
VP
3908* Tracepoint actions were unified with breakpoint commands. In particular,
3909there are no longer differences in "info break" output for breakpoints and
3910tracepoints and the "commands" command can be used for both tracepoints and
3911regular breakpoints.
3912
05071a4d
PA
3913* New targets
3914
3915ARM Symbian arm*-*-symbianelf*
3916
6aecb9c2
JB
3917* D language support.
3918 GDB now supports debugging programs written in the D programming
3919 language.
3920
431e49aa
TJB
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
bfbf3774 3936*** Changes in GDB 7.1
abc7453d 3937
4eef138c
TT
3938* C++ Improvements
3939
3940 ** Namespace Support
71dee663
SW
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
4eef138c
TT
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
2d1c1221
ME
3959* New targets
3960
3961Xilinx MicroBlaze microblaze-*-*
34207b9e 3962Renesas RX rx-*-elf
2d1c1221
ME
3963
3964* New Simulators
3965
3966Xilinx MicroBlaze microblaze
34207b9e 3967Renesas RX rx
2d1c1221 3968
6c95b8df
PA
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
d5551862
SS
3980* New tracing features
3981
3982 GDB's tracepoint facility now includes several new features:
3983
3984 ** Trace state variables
f61e138d
SS
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.
7a697b8d 3996
d5551862 3997 ** Fast tracepoints
7a697b8d
SS
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
d5551862
SS
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
00bf0b85
SS
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>".
4daf5ac0
SS
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
21a0512e
PP
4034* Changed commands
4035
4036disassemble
4037 The disassemble command, when invoked with two arguments, now requires
4038 the arguments to be comma-separated.
4039
0fe7935b
DJ
4040info variables
4041 The info variables command now displays variable definitions. Files
4042 which only declare a variable are not shown.
4043
fb2e7cb4
JB
4044source
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
6c95b8df
PA
4052* New commands (for set/show, see "New options" below)
4053
399cd161
MS
4054record 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
4058record restore <FILENAME>
4059 Restore the process record execution log that was saved at an
4060 earlier time, for replay debugging.
4061
6c95b8df
PA
4062add-inferior [-copies <N>] [-exec <FILENAME>]
4063 Add a new inferior.
4064
4065clone-inferior [-copies <N>] [ID]
4066 Make a new inferior ready to execute the same program another
4067 inferior has loaded.
4068
4069remove-inferior ID
4070 Remove an inferior.
4071
4072maint info program-spaces
4073 List the program spaces loaded into GDB.
4074
9a7071a8
JB
4075set remote interrupt-sequence [Ctrl-C | BREAK | BREAK-g]
4076show 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
4083set remote interrupt-on-connect [on | off]
4084show 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
4089set remotebreak [on | off]
4090show remotebreak
4091Deprecated. Use "set/show remote interrupt-sequence" instead.
4092
f61e138d
SS
4093tvariable $NAME [ = EXP ]
4094 Create or modify a trace state variable.
4095
4096info tvariables
4097 List trace state variables and their values.
4098
4099delete tvariable $NAME ...
4100 Delete one or more trace state variables.
4101
6da95a67
SS
4102teval EXPR, ...
4103 Evaluate the given expressions without collecting anything into the
4104 trace buffer. (Valid in tracepoint actions only.)
4105
7a697b8d
SS
4106ftrace FN / FILE:LINE / *ADDR
4107 Define a fast tracepoint at the given function, line, or address.
4108
b0f02ee9
JK
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
6c95b8df
PA
4114* New options
4115
4116set follow-exec-mode new|same
4117show 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
236f1d4d
SS
4122set default-collect EXPR, ...
4123show 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
d5551862
SS
4128set disconnected-tracing
4129show 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
4daf5ac0
SS
4134set circular-trace-buffer
4135show 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
fb2e7cb4
JB
4141set script-extension off|soft|strict
4142show 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
2b71fc8e
JB
4150set ada trust-PAD-over-XVS on|off
4151show 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
de2e5182
TT
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
f61e138d
SS
4173* New remote packets
4174
4175QTDV
4176 Define a trace state variable.
4177
4178qTV
4179 Get the current value of a trace state variable.
4180
d5551862
SS
4181QTDisconnected
4182 Set desired tracing behavior upon disconnection.
4183
4daf5ac0
SS
4184QTBuffer:circular
4185 Set the trace buffer to be linear or circular.
4186
d5551862
SS
4187qTfP, qTsP
4188 Get data about the tracepoints currently in use.
4189
2d483d34
MS
4190* Bug fixes
4191
4192Process record now works correctly with hardware watchpoints.
4193
6e0e5977
JB
4194Multiple bug fixes have been made to the mips-irix port, making it
4195much 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
93c26624
JK
4212PIE (Position Independent Executable) programs debugging is now supported.
4213This includes debugging execution of PIC (Position Independent Code) shared
4214libraries although for that, it should be possible to run such libraries as an
4215executable program.
4216
abc7453d 4217*** Changes in GDB 7.0
75feb17d 4218
4efc6507
DE
4219* GDB now has an interface for JIT compilation. Applications that
4220dynamically generate code can create symbol files in memory and register
4221them with GDB. For users, the feature should work transparently, and
4222for JIT developers, the interface is documented in the GDB manual in the
4223"JIT Compilation Interface" chapter.
4224
782b2b07
SS
4225* Tracepoints may now be conditional. The syntax is as for
4226breakpoints; either an "if" clause appended to the "trace" command,
4227or the "condition" command is available. GDB sends the condition to
4228the target for evaluation using the same bytecode format as is used
4229for tracepoint actions.
4230
53a71c06
CR
4231* The disassemble command now supports: an optional /r modifier, print the
4232raw instructions in hex as well as in symbolic form, and an optional /m
4233modifier to print mixed source+assembly.
e6158f16 4234
e7a8dbfb
HZ
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
64644d9b
MS
4242* Reverse debugging: GDB now has new commands reverse-continue, reverse-
4243step, reverse-next, reverse-finish, reverse-stepi, reverse-nexti, and
4244set execution-direction {forward|reverse}, for targets that support
4245reverse execution.
4246
b9412953
DD
4247* GDB now supports hardware watchpoints on MIPS/Linux systems. This
4248feature is available with a native GDB running on kernel version
42492.6.28 or later.
4250
6c7a06a3
TT
4251* GDB now has support for multi-byte and wide character sets on the
4252target. Strings whose character type is wchar_t, char16_t, or
4253char32_t are now correctly printed. GDB supports wide- and unicode-
4254literals in C, that is, L'x', L"string", u'x', u"string", U'x', and
4255U"string" syntax. And, GDB allows the "%ls" and "%lc" formats in
4256`printf'. This feature requires iconv to work properly; if your
4257system does not have a working iconv, GDB can use GNU libiconv. See
4258the installation instructions for more information.
4259
f1838a98
UW
4260* GDB now supports automatic retrieval of shared library files from
4261remote targets. To use this feature, specify a system root that begins
4262with the `remote:' prefix, either via the `set sysroot' command or via
4263the `--with-sysroot' configure-time option.
4264
55333a84
DE
4265* "info sharedlibrary" now takes an optional regex of libraries to show,
4266and it now reports if a shared library has no debugging information.
4267
7f6a6314
PM
4268* Commands `set debug-file-directory', `set solib-search-path' and `set args'
4269now complete on file names.
4270
65d12d83
TT
4271* When completing in expressions, gdb will attempt to limit
4272completions to allowable structure or union fields, where appropriate.
4273For instance, consider:
4274
4275 # struct example { int f1; double f2; };
4276 # struct example variable;
4277 (gdb) p variable.
4278
4279If the user types TAB at the end of this command line, the available
4280completions will be "f1" and "f2".
4281
edb3359d
DJ
4282* Inlined functions are now supported. They show up in backtraces, and
4283the "step", "next", and "finish" commands handle them automatically.
4284
2fae03e8
TT
4285* GDB now supports the token-splicing (##) and stringification (#)
4286operators when expanding macros. It also supports variable-arity
4287macros.
4288
47a3467a 4289* GDB now supports inspecting extra signal information, exported by
58d6951d
DJ
4290the new $_siginfo convenience variable. The feature is currently
4291implemented on linux ARM, i386 and amd64.
4292
4293* GDB can now display the VFP floating point registers and NEON vector
4294registers on ARM targets. Both ARM GNU/Linux native GDB and gdbserver
4295can provide these registers (requires Linux 2.6.30 or later). Remote
4296and simulator targets may also provide them.
47a3467a 4297
08388c79
DE
4298* New remote packets
4299
4300qSearch:memory:
4301 Search memory for a sequence of bytes.
4302
a6f3e723
SL
4303QStartNoAckMode
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
d7713ae0
EZ
4308vKill
4309 Kill the process with the specified process ID. Use this in preference
4310 to `k' when multiprocess protocol extensions are supported.
4311
07e059b5
VP
4312qXfer:osdata:read
4313 Obtains additional operating system information
4314
47a3467a
PA
4315qXfer:siginfo:read
4316qXfer:siginfo:write
4317 Read or write additional signal information.
4318
060871df
PA
4319* Removed remote protocol undocumented extension
4320
4321 An undocumented extension to the remote protocol's `S' stop reply
82f06518 4322 packet that permitted the stub to pass a process id was removed.
060871df
PA
4323 Remote servers should use the `T' stop reply packet instead.
4324
c055b101 4325* GDB now supports multiple function calling conventions according to the
a0ef4274 4326DWARF-2 DW_AT_calling_convention function attribute.
c055b101
CV
4327
4328* The SH target utilizes the aforementioned change to distinguish between gcc
a0ef4274
DJ
4329and Renesas calling convention. It also adds the new CLI commands
4330`set/show sh calling-convention'.
c055b101 4331
31fffb02
CS
4332* GDB can now read compressed debug sections, as produced by GNU gold
4333with the --compress-debug-sections=zlib flag.
4334
88d8a8e0
JB
4335* 64-bit core files are now supported on AIX.
4336
7f99b190
JB
4337* Thread switching is now supported on Tru64.
4338
ccd213ac
DJ
4339* Watchpoints can now be set on unreadable memory locations, e.g. addresses
4340which will be allocated using malloc later in program execution.
4341
82f06518 4342* The qXfer:libraries:read remote protocol packet now allows passing a
31fffb02 4343list of section offsets.
1fddbabb 4344
a0ef4274
DJ
4345* On GNU/Linux, GDB can now attach to stopped processes. Several race
4346conditions handling signals delivered during attach or thread creation
4347have also been fixed.
4348
bfb8797a 4349* GDB now supports the use of DWARF boolean types for Ada's type Boolean.
158c7665
PH
4350From the user's standpoint, all unqualified instances of True and False
4351are treated as the standard definitions, regardless of context.
bfb8797a 4352
71c25dea
TT
4353* GDB now parses C++ symbol and type names more flexibly. For
4354example, given:
4355
4356 template<typename T> class C { };
4357 C<char const *> c;
4358
4359GDB 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
ccd213ac
DJ
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
7ae0e2a2
UW
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
a6f3e723
SL
4375 - gdbserver uses the new noack protocol mode for TCP connections to
4376 reduce communications latency, if also supported and enabled in GDB.
4377
da8bd9a3
DJ
4378 - Support for the sparc64-linux-gnu target is now included in
4379 gdbserver.
4380
d70e31dd
DE
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
d57a3c85
TJB
4388* Python scripting
4389
4390 GDB now has support for scripting using Python. Whether this is
4391 available is determined at configure time.
4392
d8906c6f
TJB
4393 New GDB commands can now be written in Python.
4394
aadc346a
JB
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
adb483fe
DJ
4409* Support for user-defined prefixed commands. The "define" command can
4410add new commands to existing prefixes, e.g. "target".
4411
2277426b
PA
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
08d16641
PA
4422* Target descriptions can now describe the target OS ABI. See the
4423"Target Description Format" section in the user manual for more
4424information.
4425
e35359c5
UW
4426* Target descriptions can now describe "compatible" architectures
4427to indicate that the target can execute applications for a different
4428architecture in addition to those for the main target architecture.
4429See the "Target Description Format" section in the user manual for
4430more information.
4431
85e747d2
UW
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
4441use both the PPU and SPU architectures. To enable support for hybrid
4442Cell/B.E. debugging, you need to configure GDB to support both the
4443powerpc-linux or powerpc64-linux and the spu-elf targets, using the
4444--enable-targets configure option.
4445
11ade57a
PA
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
d7713ae0 4460* New commands (for set/show, see "New options" below)
75feb17d 4461
a96d9b2e
SDJ
4462catch 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
08388c79
DE
4472find [/size-char] [/max-count] start-address, end-address|+search-space-size,
4473 val1 [, val2, ...]
4474 Search memory for a sequence of bytes.
4475
d57a3c85
TJB
4476maint set python print-stack
4477maint show python print-stack
4478 Show a stack trace when an error is encountered in a Python script.
4479
4480python [CODE]
4481 Invoke CODE by passing it to the Python interpreter.
4482
d7713ae0
EZ
4483macro define
4484macro list
4485macro undef
4486 These allow macros to be defined, undefined, and listed
4487 interactively.
4488
4489info os processes
4490 Show operating system information about processes.
4491
2277426b
PA
4492info inferiors
4493 List the inferiors currently under GDB's control.
4494
4495inferior NUM
4496 Switch focus to inferior number NUM.
4497
4498detach inferior NUM
4499 Detach from inferior number NUM.
4500
4501kill inferior NUM
4502 Kill inferior number NUM.
4503
d7713ae0
EZ
4504* New options
4505
3285f3fe
UW
4506set spu stop-on-load
4507show spu stop-on-load
4508 Control whether to stop for new SPE threads during Cell/B.E. debugging.
4509
ff1a52c6
UW
4510set spu auto-flush-cache
4511show spu auto-flush-cache
4512 Control whether to automatically flush the software-managed cache
4513 during Cell/B.E. debugging.
4514
d7713ae0
EZ
4515set sh calling-convention
4516show sh calling-convention
4517 Control the calling convention used when calling SH target functions.
4518
e0a3ce09 4519set debug timestamp
75feb17d 4520show debug timestamp
d7713ae0
EZ
4521 Control display of timestamps with GDB debugging output.
4522
4523set disassemble-next-line
4524show disassemble-next-line
4525 Control display of disassembled source lines or instructions when
4526 the debuggee stops.
4527
4528set remote noack-packet
4529show remote noack-packet
4530 Set/show the use of remote protocol QStartNoAckMode packet. See above
4531 under "New remote packets."
4532
4533set remote query-attached-packet
4534show remote query-attached-packet
4535 Control use of remote protocol `qAttached' (query-attached) packet.
4536
4537set remote read-siginfo-object
4538show remote read-siginfo-object
4539 Control use of remote protocol `qXfer:siginfo:read' (read-siginfo-object)
4540 packet.
4541
4542set remote write-siginfo-object
4543show remote write-siginfo-object
4544 Control use of remote protocol `qXfer:siginfo:write' (write-siginfo-object)
4545 packet.
4546
40ab02ce
MS
4547set remote reverse-continue
4548show remote reverse-continue
4549 Control use of remote protocol 'bc' (reverse-continue) packet.
4550
4551set remote reverse-step
4552show remote reverse-step
4553 Control use of remote protocol 'bs' (reverse-step) packet.
4554
d7713ae0
EZ
4555set displaced-stepping
4556show 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
4561set debug displaced
4562show debug displaced
4563 Control display of debugging info for displaced stepping.
4564
4565maint set internal-error
4566maint show internal-error
4567 Control what GDB does when an internal error is detected.
4568
4569maint set internal-warning
4570maint show internal-warning
4571 Control what GDB does when an internal warning is detected.
75feb17d 4572
ccd213ac
DJ
4573set exec-wrapper
4574show exec-wrapper
4575unset exec-wrapper
4576 Use a wrapper program to launch programs for debugging.
fa4727a6 4577
aad4b048
JB
4578set multiple-symbols (all|ask|cancel)
4579show 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
74960c60
VP
4584set breakpoint always-inserted
4585show 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
0428b8f5
DJ
4590set arm fallback-mode (arm|thumb|auto)
4591show arm fallback-mode
4592set arm force-mode (arm|thumb|auto)
4593show 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
10568435
JK
4599set disable-randomization
4600show 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
d7713ae0
EZ
4605set non-stop
4606show non-stop
4607 Control whether other threads are stopped or not when some thread hits
4608 a breakpoint.
4609
b3eb342c 4610set target-async
d7713ae0 4611show target-async
b3eb342c
VP
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
6c7a06a3
TT
4617set target-wide-charset
4618show 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
84603566
SL
4622set tcp auto-retry (on|off)
4623show tcp auto-retry
4624set tcp connect-timeout
4625show 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
17a37d48
PP
4630set libthread-db-search-path
4631show libthread-db-search-path
4632 Control list of directories which GDB will search for appropriate
4633 libthread_db.
4634
d4db2f36
PA
4635set schedule-multiple (on|off)
4636show schedule-multiple
4637 Allow GDB to resume all threads of all processes or only threads of
4638 the current process.
4639
4e5d721f
DE
4640set stack-cache
4641show 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
910c5da8
JB
4646set interactive-mode (on|off|auto)
4647show 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
2277426b
PA
4654* Removed commands
4655
4656info 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
4662fork 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
4667process 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
4672delete 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
4678detach 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
a80b95ba
TG
4684* New native configurations
4685
4686x86/x86_64 Darwin i[34567]86-*-darwin*
4687
b8bfd3ed
JB
4688x86_64 MinGW x86_64-*-mingw*
4689
75a2d5e7
TT
4690* New targets
4691
c28c63d8 4692Lattice Mico32 lm32-*
75a2d5e7 4693x86 DICOS i[34567]86-*-dicos*
4c1d2973 4694x86_64 DICOS x86_64-*-dicos*
5f814c3b 4695S+core 3 score-*-*
75a2d5e7 4696
6de3146c
PA
4697* The GDB remote stub, gdbserver, now supports x86 Windows CE
4698 (mingw32ce) debugging.
4699
d5cbbe6e
JB
4700* Removed commands
4701
4702catch load
4703catch unload
4704 These commands were actually not implemented on any target.
4705
75feb17d 4706*** Changes in GDB 6.8
f9ed52be 4707
af5ca30d
NH
4708* New native configurations
4709
4710NetBSD/hppa hppa*-*netbsd*
94a0e877 4711Xtensa GNU/Linux xtensa*-*-linux*
af5ca30d
NH
4712
4713* New targets
4714
4715NetBSD/hppa hppa*-*-netbsd*
82f06518 4716Xtensa GNU/Linux xtensa*-*-linux*
af5ca30d 4717
7a404eba
PA
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
430ebac9
PA
4725* GDB can now be built as a native debugger for debugging Windows x86
4726(mingw32) Portable Executable (PE) programs.
4727
fe6fbf8b 4728* Pending breakpoints no longer change their number when their address
8d5f9c6f 4729is resolved.
fe6fbf8b
VP
4730
4731* GDB now supports breakpoints with multiple locations,
8d5f9c6f
DJ
4732including breakpoints on C++ constructors, inside C++ templates,
4733and in inlined functions.
fe6fbf8b 4734
10665d76
JB
4735* GDB's ability to debug optimized code has been improved. GDB more
4736accurately identifies function bodies and lexical blocks that occupy
4737more than one contiguous range of addresses.
4738
7cc46491
DJ
4739* Target descriptions can now describe registers for PowerPC.
4740
d71340b8
DJ
4741* The GDB remote stub, gdbserver, now supports the AltiVec and SPE
4742registers on PowerPC targets.
4743
523c4513
DJ
4744* The GDB remote stub, gdbserver, now supports thread debugging on GNU/Linux
4745targets even when the libthread_db library is not available.
4746
a6b151f1
DJ
4747* The GDB remote stub, gdbserver, now supports the new file transfer
4748commands (remote put, remote get, and remote delete).
4749
2d717e4f
DJ
4750* The GDB remote stub, gdbserver, now supports run and attach in
4751extended-remote mode.
4752
24a836bd 4753* hppa*64*-*-hpux11* target broken
d001be7a
DJ
4754The debugger is unable to start a program and fails with the following
4755error: "Error trying to get information about dynamic linker".
4756The gdb-6.7 release is also affected.
24a836bd 4757
d0c678e6
UW
4758* GDB now supports the --enable-targets= configure option to allow
4759building a single GDB executable that supports multiple remote
4760target architectures.
4761
d64a946d
TJB
4762* GDB now supports debugging C and C++ programs which use the
4763Decimal Floating Point extension. In addition, the PowerPC target
4764now has a set of pseudo-registers to inspect decimal float values
4765stored in two consecutive float registers.
4766
ee163bf5
VP
4767* The -break-insert MI command can optionally create pending
4768breakpoints now.
4769
b93b6ca7 4770* Improved support for debugging Ada
d001be7a
DJ
4771Many improvements to the Ada language support have been made. These
4772include:
b93b6ca7
JB
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
d001be7a
DJ
4781* GDB on GNU/Linux and HP/UX can now debug through "exec" of a new
4782process.
4783
a6b151f1
DJ
4784* New commands
4785
6d53d0af
JB
4786set print frame-arguments (all|scalars|none)
4787show 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
a6b151f1
DJ
4791remote put
4792remote get
4793remote 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
4805vFile:open:
4806vFile:close:
4807vFile:pread:
4808vFile:pwrite:
4809vFile:unlink:
4810 Open, close, read, write, and delete files on the remote system.
d0c678e6 4811
2d717e4f
DJ
4812vAttach
4813 Attach to an existing process on the remote system, in extended-remote
4814 mode.
4815
4816vRun
4817 Run a new process on the remote system, in extended-remote mode.
4818
8d5f9c6f 4819*** Changes in GDB 6.7
6dd09645 4820
19d378fc
MS
4821* Resolved 101 resource leaks, null pointer dereferences, etc. in gdb,
4822bfd, libiberty and opcodes, as revealed by static analysis donated by
4823Coverity, Inc. (http://scan.coverity.com).
4824
3a40aaa0
UW
4825* When looking up multiply-defined global symbols, GDB will now prefer the
4826symbol definition in the current shared library if it was built using the
4827-Bsymbolic linker option.
4828
a6ec25f2
BW
4829* When the Text User Interface (TUI) is not configured, GDB will now
4830recognize the -tui command-line option and print a message that the TUI
4831is not supported.
4832
6dd09645
JB
4833* The GDB remote stub, gdbserver, now has lower overhead for high
4834frequency signals (e.g. SIGALRM) via the QPassSignals packet.
4835
c9bb8148
DJ
4836* GDB for MIPS targets now autodetects whether a remote target provides
483732-bit or 64-bit register values.
4838
0d5de010
DJ
4839* Support for C++ member pointers has been improved.
4840
23181151
DJ
4841* GDB now understands XML target descriptions, which specify the
4842target's overall architecture. GDB can read a description from
4843a local file or over the remote serial protocol.
4844
ea37ba09
DJ
4845* Vectors of single-byte data use a new integer type which is not
4846automatically displayed as character or string data.
4847
4848* The /s format now works with the print command. It displays
4849arrays of single-byte integers and pointers to single-byte integers
4850as strings.
e1f48ead 4851
123dc839
DJ
4852* Target descriptions can now describe target-specific registers,
4853for architectures which have implemented the support (currently
8d5f9c6f 4854only ARM, M68K, and MIPS).
123dc839 4855
05a4558a
DJ
4856* GDB and the GDB remote stub, gdbserver, now support the XScale
4857iWMMXt coprocessor.
fb1e4ffc 4858
7c963485
PA
4859* The GDB remote stub, gdbserver, has been updated to support
4860ARM Windows CE (mingw32ce) debugging, and GDB Windows CE support
4861has been rewritten to use the standard GDB remote protocol.
4862
b18be20d
DJ
4863* GDB can now step into C++ functions which are called through thunks.
4864
0ca420ce
UW
4865* GDB for the Cell/B.E. SPU now supports overlay debugging.
4866
31d99776
DJ
4867* The GDB remote protocol "qOffsets" packet can now honor ELF segment
4868layout. It also supports a TextSeg= and DataSeg= response when only
4869segment base addresses (rather than offsets) are available.
4870
a4642986
MR
4871* The /i format now outputs any trailing branch delay slot instructions
4872immediately following the last instruction within the count specified.
4873
cfa9d6d9
DJ
4874* The GDB remote protocol "T" stop reply packet now supports a
4875"library" response. Combined with the new "qXfer:libraries:read"
4876packet, this response allows GDB to debug shared libraries on targets
4877where the operating system manages the list of loaded libraries (e.g.
4878Windows and SymbianOS).
255e7678
DJ
4879
4880* The GDB remote stub, gdbserver, now supports dynamic link libraries
4881(DLLs) on Windows and Windows CE targets.
f5db8714
JK
4882
4883* GDB now supports a faster verification that a .debug file matches its binary
4884according to its build-id signature, if the signature is present.
cfa9d6d9 4885
c9bb8148
DJ
4886* New commands
4887
23776285
MR
4888set remoteflow
4889show remoteflow
4890 Enable or disable hardware flow control (RTS/CTS) on the serial port
4891 when debugging using remote targets.
4892
c9bb8148
DJ
4893set mem inaccessible-by-default
4894show 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
4901set breakpoint auto-hw
4902show 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
0e420bd8
JB
4910catch exception
4911catch exception unhandled
4912 Stop the program execution when Ada exceptions are raised.
4913
4914catch assert
4915 Stop the program execution when an Ada assertion failed.
4916
f822c95b
DJ
4917set sysroot
4918show 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
83cc5c53
UW
4923info 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
bd372731
MK
4928* New native configurations
4929
4930OpenBSD/sh sh*-*openbsd*
4931
23181151
DJ
4932set tdesc filename
4933unset tdesc filename
4934show 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
c9bb8148
DJ
4938* New targets
4939
54fe9172 4940OpenBSD/sh sh*-*-openbsd*
c9bb8148 4941MIPS64 GNU/Linux (gdbserver) mips64-linux-gnu
c077150c 4942Toshiba Media Processor mep-elf
c9bb8148 4943
6dd09645
JB
4944* New remote packets
4945
4946QPassSignals:
4947 Ignore the specified signals; pass them directly to the debugged program
4948 without stopping other threads or reporting them to GDB.
4949
23181151
DJ
4950qXfer:features:read:
4951 Read an XML target description from the target, which describes its
4952 features.
6dd09645 4953
83cc5c53
UW
4954qXfer:spu:read:
4955qXfer: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
cfa9d6d9
DJ
4959qXfer: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
483367ee
DJ
4965* Removed targets
4966
4967Support for these obsolete configurations has been removed.
4968
d08950c4
UW
4969alpha*-*-osf1*
4970alpha*-*-osf2*
7ce59000 4971d10v-*-*
483367ee
DJ
4972hppa*-*-hiux*
4973i[34567]86-ncr-*
4974i[34567]86-*-dgux*
4975i[34567]86-*-lynxos*
4976i[34567]86-*-netware*
4977i[34567]86-*-sco3.2v5*
4978i[34567]86-*-sco3.2v4*
4979i[34567]86-*-sco*
4980i[34567]86-*-sysv4.2*
4981i[34567]86-*-sysv4*
4982i[34567]86-*-sysv5*
4983i[34567]86-*-unixware2*
4984i[34567]86-*-unixware*
4985i[34567]86-*-sysv*
4986i[34567]86-*-isc*
4987m68*-cisco*-*
4988m68*-tandem-*
ad527d2e 4989mips*-*-pe
483367ee 4990rs6000-*-lynxos*
ad527d2e 4991sh*-*-pe
483367ee 4992
7ce59000
DJ
4993* Other removed features
4994
4995target abug
4996target cpu32bug
4997target est
4998target rom68k
4999
5000 Various m68k-only ROM monitors.
5001
ea35711c
DJ
5002target hms
5003target e7000
5004target sh3
5005target sh3e
5006
5007 Various Renesas ROM monitors and debugging interfaces for SH and
5008 H8/300.
5009
5010target 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
7ce59000
DJ
5016DWARF 1 support
5017
5018 A debug information format. The predecessor to DWARF 2 and
5019 DWARF 3, which are still supported.
5020
54d61198
DJ
5021Support 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
ea35711c
DJ
5028MIPS ".pdr" sections
5029
5030 A MIPS-specific format used to describe stack frame layout
5031 in debugging information.
5032
5033Scheme support
5034
5035 GDB could work with an older version of Guile to debug
5036 the interpreter and Scheme programs running in it.
5037
1a69e1e4
DJ
5038set mips stack-arg-size
5039set mips saved-gpreg-size
5040
5041 Use "set mips abi" to control parameter passing for MIPS.
5042
6dd09645 5043*** Changes in GDB 6.6
e374b601 5044
ca3bf3bd
DJ
5045* New targets
5046
5047Xtensa xtensa-elf
9c309e77 5048Cell Broadband Engine SPU spu-elf
ca3bf3bd 5049
6aec2e11
DJ
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
5052running 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
5055Cygwin debugging. Both single-threaded and multi-threaded programs are
5056supported.
5057
17218d91
DJ
5058* The "set trust-readonly-sections" command works again. This command was
5059broken in GDB 6.3, 6.4, and 6.5.
5060
9ebce043
DJ
5061* The "load" command now supports writing to flash memory, if the remote
5062stub provides the required support.
5063
7d3d3ece
DJ
5064* Support for GNU/Linux Thread Local Storage (TLS, per-thread variables) no
5065longer requires symbolic debug information (e.g. DWARF-2).
5066
4f8253f3
JB
5067* New commands
5068
5069set substitute-path
5070unset substitute-path
5071show 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
9fa66fd7
AS
5077set trace-commands
5078show 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
1f5befc1
DJ
5083* REMOVED features
5084
5085The ARM Demon monitor support (RDP protocol, "target rdp").
5086
2ec3381a
DJ
5087Kernel Object Display, an embedded debugging feature which only worked with
5088an obsolete version of Cisco IOS.
5089
3d00d119
DJ
5090The 'set download-write-size' and 'show download-write-size' commands.
5091
be2a5f71
DJ
5092* New remote packets
5093
5094qSupported:
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
0876f84a
DJ
5101qXfer: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
9ebce043
DJ
5105qXfer:memory-map:read:
5106 Fetch a memory map from the remote stub, including information about
5107 RAM, ROM, and flash memory devices.
5108
5109vFlashErase:
5110vFlashWrite:
5111vFlashDone:
5112 Erase and program a flash memory device.
5113
0876f84a
DJ
5114* Removed remote packets
5115
5116qPart: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
e374b601 5120*** Changes in GDB 6.5
53e5f3cf 5121
96309189
MS
5122* New targets
5123
5124Renesas M32C/M16C m32c-elf
5125
5126Morpho Technologies ms1 ms1-elf
5127
53e5f3cf
AS
5128* New commands
5129
5130init-if-undefined Initialize a convenience variable, but
5131 only if it doesn't already have a value.
5132
ac264b3b
MS
5133The following commands are presently only implemented for native GNU/Linux:
5134
5135checkpoint Save a snapshot of the program state.
5136
5137restart <n> Return the program state to a
5138 previously saved state.
5139
5140info checkpoints List currently saved checkpoints.
5141
5142delete-checkpoint <n> Delete a previously saved checkpoint.
5143
5144set|show detach-on-fork Tell gdb whether to detach from a newly
5145 forked process, or to keep debugging it.
5146
5147info forks List forks of the user program that
5148 are available to be debugged.
5149
5150fork <n> Switch to debugging one of several
5151 forks of the user program that are
5152 available to be debugged.
5153
5154delete-fork <n> Delete a fork from the list of forks
5155 that are available to be debugged (and
5156 kill the forked process).
5157
5158detach-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
3950dc3f
NS
5162* New architecture
5163
5164Morpho Technologies ms2 ms1-elf
5165
0ea3f30e
DJ
5166* Improved Windows host support
5167
5168GDB now builds as a cross debugger hosted on i686-mingw32, including
5169native console support, and remote communications using either
5170network sockets or serial ports.
5171
f79daebb
GM
5172* Improved Modula-2 language support
5173
5174GDB can now print most types in the Modula-2 syntax. This includes:
5175basic types, set types, record types, enumerated types, range types,
5176pointer types and ARRAY types. Procedure var parameters are correctly
5177printed and hexadecimal addresses and character constants are also
5178written in the Modula-2 syntax. Best results can be obtained by using
5179GNU Modula-2 together with the -gdwarf-2 command line option.
5180
acab6ab2
MM
5181* REMOVED features
5182
5183The ARM rdi-share module.
5184
f4267320
DJ
5185The Netware NLM debug server.
5186
53e5f3cf 5187*** Changes in GDB 6.4
156a53ca 5188
e0ecbda1
MK
5189* New native configurations
5190
02a677ac 5191OpenBSD/arm arm*-*-openbsd*
e0ecbda1
MK
5192OpenBSD/mips64 mips64-*-openbsd*
5193
d64a6579
KB
5194* New targets
5195
5196Morpho Technologies ms1 ms1-elf
5197
b33a6190
AS
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
11dced61
AC
5208* Deprecated commands removed
5209
5210The following commands, that were deprecated in 2000, have been
5211removed:
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
6fe85783
MK
5221* New BSD user-level threads support
5222
5223It is now possible to debug programs using the user-level threads
5224library on OpenBSD and FreeBSD. Currently supported (target)
5225configurations are:
5226
5227FreeBSD/amd64 x86_64-*-freebsd*
5228FreeBSD/i386 i386-*-freebsd*
5229OpenBSD/i386 i386-*-openbsd*
5230
5231Note that the new kernel threads libraries introduced in FreeBSD 5.x
5232are not yet supported.
5233
5260ca71
MS
5234* New support for Matsushita MN10300 w/sim added
5235(Work in progress). mn10300-elf.
5236
e84ecc99
AC
5237* REMOVED configurations and files
5238
5239VxWorks and the XDR protocol *-*-vxworks
9445aa30 5240Motorola MCORE mcore-*-*
9445aa30 5241National Semiconductor NS32000 ns32k-*-*
156a53ca 5242
31e35378
JB
5243* New "set print array-indexes" command
5244
5245After turning this setting "on", GDB prints the index of each element
5246when displaying arrays. The default is "off" to preserve the previous
5247behavior.
5248
e85e5c83
MK
5249* VAX floating point support
5250
5251GDB now supports the not-quite-ieee VAX F and D floating point formats.
5252
d91e9901
AS
5253* User-defined command support
5254
5255In addition to using $arg0..$arg9 for argument passing, it is now possible
5256to use $argc to determine now many arguments have been passed. See the
5257section on user-defined commands in the user manual for more information.
5258
f2cb65ca
MC
5259*** Changes in GDB 6.3:
5260
f47b1503
AS
5261* New command line option
5262
5263GDB now accepts -l followed by a number to set the timeout for remote
5264debugging.
5265
f2cb65ca
MC
5266* GDB works with GCC -feliminate-dwarf2-dups
5267
5268GDB now supports a more compact representation of DWARF-2 debug
5269information using DW_FORM_ref_addr references. These are produced
5270by GCC with the option -feliminate-dwarf2-dups and also by some
5271proprietary compilers. With GCC, you must use GCC 3.3.4 or later
5272to use -feliminate-dwarf2-dups.
860660cb 5273
d08c0230
AC
5274* Internationalization
5275
5276When supported by the host system, GDB will be built with
5277internationalization (libintl). The task of marking up the sources is
5278continued, we're looking forward to our first translation.
5279
117ea3cf
PH
5280* Ada
5281
5282Initial support for debugging programs compiled with the GNAT
5283implementation of the Ada programming language has been integrated
5284into GDB. In this release, support is limited to expression evaluation.
5285
d08c0230
AC
5286* New native configurations
5287
5288GNU/Linux/m32r m32r-*-linux-gnu
5289
5290* Remote 'p' packet
5291
5292GDB's remote protocol now includes support for the 'p' packet. This
5293packet is used to fetch individual registers from a remote inferior.
5294
5295* END-OF-LIFE registers[] compatibility module
5296
5297GDB's internal register infrastructure has been completely rewritten.
5298The new infrastructure making possible the implementation of key new
5299features including 32x64 (e.g., 64-bit amd64 GDB debugging a 32-bit
5300i386 application).
5301
09f2921c 5302GDB 6.3 will be the last release to include the registers[]
d08c0230
AC
5303compatibility module that allowed out-of-date configurations to
5304continue to work. This change directly impacts the following
5305configurations:
5306
5307hppa-*-hpux
5308ia64-*-aix
5309mips-*-irix*
5310*-*-lynx
5311mips-*-linux-gnu
5312sds protocol
5313xdr protocol
5314powerpc bdm protocol
5315
5316Unless there is activity to revive these configurations, they will be
5317made OBSOLETE in GDB 6.4, and REMOVED from GDB 6.5.
5318
5319* OBSOLETE configurations and files
5320
5321Configurations that have been declared obsolete in this release have
5322been commented out. Unless there is activity to revive these
5323configurations, the next release of GDB will have their sources
5324permanently REMOVED.
5325
5326h8300-*-*
5327mcore-*-*
5328mn10300-*-*
5329ns32k-*-*
5330sh64-*-*
5331v850-*-*
5332
ebb7c577
AC
5333*** Changes in GDB 6.2.1:
5334
5335* MIPS `break main; run' gave an heuristic-fence-post warning
5336
5337When attempting to run even a simple program, a warning about
5338heuristic-fence-post being hit would be reported. This problem has
5339been fixed.
5340
5341* MIPS IRIX 'long double' crashed GDB
5342
5343When examining a long double variable, GDB would get a segmentation
5344fault. The crash has been fixed (but GDB 6.2 cannot correctly examine
5345IRIX long double values).
5346
5347* VAX and "next"
5348
5349A bug in the VAX stack code was causing problems with the "next"
5350command. This problem has been fixed.
5351
860660cb 5352*** Changes in GDB 6.2:
faae5abe 5353
0dea2468
AC
5354* Fix for ``many threads''
5355
5356On GNU/Linux systems that use the NPTL threads library, a program
5357rapidly creating and deleting threads would confuse GDB leading to the
5358error message:
5359
5360 ptrace: No such process.
5361 thread_db_get_info: cannot get thread info: generic error
5362
5363This problem has been fixed.
5364
2c07db7a
AC
5365* "-async" and "-noasync" options removed.
5366
5367Support for the broken "-noasync" option has been removed (it caused
5368GDB to dump core).
5369
c23968a2
JB
5370* New ``start'' command.
5371
82f06518 5372This command runs the program until the beginning of the main procedure.
c23968a2 5373
71009278
MK
5374* New BSD Kernel Data Access Library (libkvm) interface
5375
5376Using ``target kvm'' it is now possible to debug kernel core dumps and
5377live kernel memory images on various FreeBSD, NetBSD and OpenBSD
5378platforms. Currently supported (native-only) configurations are:
5379
5380FreeBSD/amd64 x86_64-*-freebsd*
5381FreeBSD/i386 i?86-*-freebsd*
5382NetBSD/i386 i?86-*-netbsd*
5383NetBSD/m68k m68*-*-netbsd*
5384NetBSD/sparc sparc-*-netbsd*
5385OpenBSD/amd64 x86_64-*-openbsd*
5386OpenBSD/i386 i?86-*-openbsd*
5387OpenBSD/m68k m68*-openbsd*
5388OpenBSD/sparc sparc-*-openbsd*
5389
3c0b7db2
AC
5390* Signal trampoline code overhauled
5391
5392Many generic problems with GDB's signal handling code have been fixed.
5393These include: backtraces through non-contiguous stacks; recognition
5394of sa_sigaction signal trampolines; backtrace from a NULL pointer
5395call; backtrace through a signal trampoline; step into and out of
5396signal handlers; and single-stepping in the signal trampoline.
5397
73cc75f3
AC
5398Please note that kernel bugs are a limiting factor here. These
5399features have been shown to work on an s390 GNU/Linux system that
5400include a 2.6.8-rc1 kernel. Ref PR breakpoints/1702.
3c0b7db2 5401
7243600a
BF
5402* Cygwin support for DWARF 2 added.
5403
6f606e1c
MK
5404* New native configurations
5405
97dc871c 5406GNU/Linux/hppa hppa*-*-linux*
0e56aeaf 5407OpenBSD/hppa hppa*-*-openbsd*
bf2ca189
MK
5408OpenBSD/m68k m68*-*-openbsd*
5409OpenBSD/m88k m88*-*-openbsd*
d195bc9f 5410OpenBSD/powerpc powerpc-*-openbsd*
6f606e1c 5411NetBSD/vax vax-*-netbsd*
9f076e7a 5412OpenBSD/vax vax-*-openbsd*
6f606e1c 5413
a1b461bf
AC
5414* END-OF-LIFE frame compatibility module
5415
5416GDB's internal frame infrastructure has been completely rewritten.
5417The new infrastructure making it possible to support key new features
5418including DWARF 2 Call Frame Information. To aid in the task of
5419migrating old configurations to this new infrastructure, a
5420compatibility module, that allowed old configurations to continue to
5421work, was also included.
5422
5423GDB 6.2 will be the last release to include this frame compatibility
5424module. This change directly impacts the following configurations:
5425
5426h8300-*-*
5427mcore-*-*
5428mn10300-*-*
5429ns32k-*-*
5430sh64-*-*
5431v850-*-*
5432xstormy16-*-*
5433
5434Unless there is activity to revive these configurations, they will be
5435made OBSOLETE in GDB 6.3, and REMOVED from GDB 6.4.
5436
3c7012f5
AC
5437* REMOVED configurations and files
5438
5439Sun 3, running SunOS 3 m68*-*-sunos3*
5440Sun 3, running SunOS 4 m68*-*-sunos4*
5441Sun 2, running SunOS 3 m68000-*-sunos3*
5442Sun 2, running SunOS 4 m68000-*-sunos4*
5443Motorola 680x0 running LynxOS m68*-*-lynxos*
5444AT&T 3b1/Unix pc m68*-att-*
5445Bull DPX2 (68k, System V release 3) m68*-bull-sysv*
5446decstation mips-dec-* mips-little-*
5447riscos mips-*-riscos* mips-*-sysv*
5448sonymips mips-sony-*
5449sysv mips*-*-sysv4* (IRIX 5/6 not included)
5450
e5fe55f7
AC
5451*** Changes in GDB 6.1.1:
5452
5453* TUI (Text-mode User Interface) built-in (also included in GDB 6.1)
5454
5455The TUI (Text-mode User Interface) is now built as part of a default
5456GDB configuration. It is enabled by either selecting the TUI with the
5457command line option "-i=tui" or by running the separate "gdbtui"
5458program. For more information on the TUI, see the manual "Debugging
5459with GDB".
5460
5461* Pending breakpoint support (also included in GDB 6.1)
5462
5463Support has been added to allow you to specify breakpoints in shared
5464libraries that have not yet been loaded. If a breakpoint location
5465cannot be found, and the "breakpoint pending" option is set to auto,
5466GDB queries you if you wish to make the breakpoint pending on a future
5467shared-library load. If and when GDB resolves the breakpoint symbol,
5468the pending breakpoint is removed as one or more regular breakpoints
5469are created.
5470
5471Pending breakpoints are very useful for GCJ Java debugging.
5472
5473* Fixed ISO-C build problems
5474
5475The files bfd/elf-bfd.h, gdb/dictionary.c and gdb/types.c contained
5476non ISO-C code that stopped them being built using a more strict ISO-C
5477compiler (e.g., IBM's C compiler).
5478
5479* Fixed build problem on IRIX 5
5480
5481Due to header problems with <sys/proc.h>, the file gdb/proc-api.c
5482wasn't able to compile compile on an IRIX 5 system.
5483
5484* Added execute permission to gdb/gdbserver/configure
5485
5486The shell script gdb/testsuite/gdb.stabs/configure lacked execute
5487permission. This bug would cause configure to fail on a number of
5488systems (Solaris, IRIX). Ref: server/519.
5489
5490* Fixed build problem on hpux2.0w-hp-hpux11.00 using the HP ANSI C compiler
5491
5492Older HPUX ANSI C compilers did not accept variable array sizes. somsolib.c
5493has been updated to use constant array sizes.
5494
5495* Fixed a panic in the DWARF Call Frame Info code on Solaris 2.7
5496
5497GCC 3.3.2, on Solaris 2.7, includes the DW_EH_PE_funcrel encoding in
5498its generated DWARF Call Frame Info. This encoding was causing GDB to
5499panic, that panic has been fixed. Ref: gdb/1628.
5500
5501* Fixed a problem when examining parameters in shared library code.
5502
5503When examining parameters in optimized shared library code generated
5504by a mainline GCC, GDB would incorrectly report ``Variable "..." is
5505not available''. GDB now correctly displays the variable's value.
5506
faae5abe 5507*** Changes in GDB 6.1:
f2c06f52 5508
9175c9a3
MC
5509* Removed --with-mmalloc
5510
5511Support for the mmalloc memory manager has been removed, as it
5512conflicted with the internal gdb byte cache.
5513
3cc87ec0
MK
5514* Changes in AMD64 configurations
5515
5516The AMD64 target now includes the %cs and %ss registers. As a result
5517the AMD64 remote protocol has changed; this affects the floating-point
5518and SSE registers. If you rely on those registers for your debugging,
5519you should upgrade gdbserver on the remote side.
5520
f0424ef6
MK
5521* Revised SPARC target
5522
5523The SPARC target has been completely revised, incorporating the
5524FreeBSD/sparc64 support that was added for GDB 6.0. As a result
03cebad2
MK
5525support for LynxOS and SunOS 4 has been dropped. Calling functions
5526from within GDB on operating systems with a non-executable stack
5527(Solaris, OpenBSD) now works.
f0424ef6 5528
59659be2
ILT
5529* New C++ demangler
5530
5531GDB has a new C++ demangler which does a better job on the mangled
5532names generated by current versions of g++. It also runs faster, so
5533with this and other changes gdb should now start faster on large C++
5534programs.
5535
9e08b29b
DJ
5536* DWARF 2 Location Expressions
5537
5538GDB support for location expressions has been extended to support function
5539arguments and frame bases. Older versions of GDB could crash when they
5540encountered these.
5541
8dfe8985
DC
5542* C++ nested types and namespaces
5543
5544GDB's support for nested types and namespaces in C++ has been
5545improved, especially if you use the DWARF 2 debugging format. (This
5546is the default for recent versions of GCC on most platforms.)
5547Specifically, if you have a class "Inner" defined within a class or
5548namespace "Outer", then GDB realizes that the class's name is
5549"Outer::Inner", not simply "Inner". This should greatly reduce the
5550frequency of complaints about not finding RTTI symbols. In addition,
5551if you are stopped at inside of a function defined within a namespace,
5552GDB modifies its name lookup accordingly.
5553
cced5e27
MK
5554* New native configurations
5555
5556NetBSD/amd64 x86_64-*-netbsd*
27d1e716 5557OpenBSD/amd64 x86_64-*-openbsd*
2031c21a 5558OpenBSD/alpha alpha*-*-openbsd*
f2cab569
MK
5559OpenBSD/sparc sparc-*-openbsd*
5560OpenBSD/sparc64 sparc64-*-openbsd*
cced5e27 5561
b4b4b794
KI
5562* New debugging protocols
5563
5564M32R with SDI protocol m32r-*-elf*
5565
7989c619
AC
5566* "set prompt-escape-char" command deleted.
5567
5568The command "set prompt-escape-char" has been deleted. This command,
82f06518 5569and its very obscure effect on GDB's prompt, was never documented,
7989c619
AC
5570tested, nor mentioned in the NEWS file.
5571
5994185b
AC
5572* OBSOLETE configurations and files
5573
5574Configurations that have been declared obsolete in this release have
5575been commented out. Unless there is activity to revive these
5576configurations, the next release of GDB will have their sources
5577permanently REMOVED.
5578
5579Sun 3, running SunOS 3 m68*-*-sunos3*
5580Sun 3, running SunOS 4 m68*-*-sunos4*
5581Sun 2, running SunOS 3 m68000-*-sunos3*
5582Sun 2, running SunOS 4 m68000-*-sunos4*
5583Motorola 680x0 running LynxOS m68*-*-lynxos*
5584AT&T 3b1/Unix pc m68*-att-*
5585Bull DPX2 (68k, System V release 3) m68*-bull-sysv*
0748d941
AC
5586decstation mips-dec-* mips-little-*
5587riscos mips-*-riscos* mips-*-sysv*
5588sonymips mips-sony-*
5589sysv mips*-*-sysv4* (IRIX 5/6 not included)
5994185b 5590
0ddabb4c
AC
5591* REMOVED configurations and files
5592
5593SGI Irix-4.x mips-sgi-irix4 or iris4
5594SGI Iris (MIPS) running Irix V3: mips-sgi-irix or iris
4a8269c0
AC
5595Z8000 simulator z8k-zilog-none or z8ksim
5596Matsushita MN10200 w/simulator mn10200-*-*
5597H8/500 simulator h8500-hitachi-hms or h8500hms
5598HP/PA running BSD hppa*-*-bsd*
5599HP/PA running OSF/1 hppa*-*-osf*
5600HP/PA Pro target hppa*-*-pro*
5601PMAX (MIPS) running Mach 3.0 mips*-*-mach3*
cf7c5c23 5602386BSD i[3456]86-*-bsd*
4a8269c0
AC
5603Sequent family i[3456]86-sequent-sysv4*
5604 i[3456]86-sequent-sysv*
5605 i[3456]86-sequent-bsd*
f0424ef6
MK
5606SPARC running LynxOS sparc-*-lynxos*
5607SPARC running SunOS 4 sparc-*-sunos4*
4a8269c0
AC
5608Tsqware Sparclet sparclet-*-*
5609Fujitsu SPARClite sparclite-fujitsu-none or sparclite
0ddabb4c 5610
c7f1390e
DJ
5611*** Changes in GDB 6.0:
5612
1fe43d45
AC
5613* Objective-C
5614
5615Support for debugging the Objective-C programming language has been
5616integrated into GDB.
5617
e6beb428
AC
5618* New backtrace mechanism (includes DWARF 2 Call Frame Information).
5619
5620DWARF 2's Call Frame Information makes available compiler generated
5621information that more exactly describes the program's run-time stack.
5622By using this information, GDB is able to provide more robust stack
5623backtraces.
5624
5625The i386, amd64 (nee, x86-64), Alpha, m68hc11, ia64, and m32r targets
5626have been updated to use a new backtrace mechanism which includes
5627DWARF 2 CFI support.
5628
5629* Hosted file I/O.
5630
5631GDB's remote protocol has been extended to include support for hosted
5632file I/O (where the remote target uses GDB's file system). See GDB's
5633remote protocol documentation for details.
5634
5635* All targets using the new architecture framework.
5636
5637All of GDB's targets have been updated to use the new internal
5638architecture framework. The way is now open for future GDB releases
5639to include cross-architecture native debugging support (i386 on amd64,
5640ppc32 on ppc64).
5641
5642* GNU/Linux's Thread Local Storage (TLS)
5643
5644GDB now includes support for for the GNU/Linux implementation of
5645per-thread variables.
5646
5647* GNU/Linux's Native POSIX Thread Library (NPTL)
5648
5649GDB's thread code has been updated to work with either the new
5650GNU/Linux NPTL thread library or the older "LinuxThreads" library.
5651
5652* Separate debug info.
5653
5654GDB, in conjunction with BINUTILS, now supports a mechanism for
5655automatically loading debug information from a separate file. Instead
5656of shipping full debug and non-debug versions of system libraries,
5657system integrators can now instead ship just the stripped libraries
5658and optional debug files.
5659
5660* DWARF 2 Location Expressions
5661
5662DWARF 2 Location Expressions allow the compiler to more completely
5663describe the location of variables (even in optimized code) to the
5664debugger.
5665
5666GDB now includes preliminary support for location expressions (support
5667for DW_OP_piece is still missing).
5668
5669* Java
5670
5671A number of long standing bugs that caused GDB to die while starting a
5672Java application have been fixed. GDB's Java support is now
5673considered "useable".
5674
85f8f974
DJ
5675* GNU/Linux support for fork, vfork, and exec.
5676
5677The "catch fork", "catch exec", "catch vfork", and "set follow-fork-mode"
5678commands are now implemented for GNU/Linux. They require a 2.5.x or later
5679kernel.
5680
0fac0b41
DJ
5681* GDB supports logging output to a file
5682
5683There are two new commands, "set logging" and "show logging", which can be
5684used to capture GDB's output to a file.
f2c06f52 5685
6ad8ae5c
DJ
5686* The meaning of "detach" has changed for gdbserver
5687
5688The "detach" command will now resume the application, as documented. To
5689disconnect from gdbserver and leave it stopped, use the new "disconnect"
5690command.
5691
e286caf2 5692* d10v, m68hc11 `regs' command deprecated
5f601589
AC
5693
5694The `info registers' command has been updated so that it displays the
5695registers using a format identical to the old `regs' command.
5696
d28f9cdf
DJ
5697* Profiling support
5698
5699A new command, "maint set profile on/off", has been added. This command can
5700be used to enable or disable profiling while running GDB, to profile a
5701session 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
5703data, for more informative profiling results.
5704
da0f9dcd
AC
5705* Default MI syntax changed to "mi2".
5706
5707The default MI (machine interface) syntax, enabled by the command line
5708option "-i=mi", has been changed to "mi2". The previous MI syntax,
b68767c1 5709"mi1", can be enabled by specifying the option "-i=mi1".
da0f9dcd
AC
5710
5711Support for the original "mi0" syntax (included in GDB 5.0) has been
5712removed.
5713
fb9b6b35
JJ
5714Fix for gdb/192: removed extraneous space when displaying frame level.
5715Fix for gdb/672: update changelist is now output in mi list format.
5716Fix for gdb/702: a -var-assign that updates the value now shows up
5717 in a subsequent -var-update.
5718
954a4db8
MK
5719* New native configurations.
5720
5721FreeBSD/amd64 x86_64-*-freebsd*
5722
6760f9e6
JB
5723* Multi-arched targets.
5724
b4263afa 5725HP/PA HPUX11 hppa*-*-hpux*
85a453d5 5726Renesas M32R/D w/simulator m32r-*-elf*
6760f9e6 5727
1b831c93
AC
5728* OBSOLETE configurations and files
5729
5730Configurations that have been declared obsolete in this release have
5731been commented out. Unless there is activity to revive these
5732configurations, the next release of GDB will have their sources
5733permanently REMOVED.
5734
8b0e5691 5735Z8000 simulator z8k-zilog-none or z8ksim
67f16606 5736Matsushita MN10200 w/simulator mn10200-*-*
fd2299bd 5737H8/500 simulator h8500-hitachi-hms or h8500hms
56056df7
AC
5738HP/PA running BSD hppa*-*-bsd*
5739HP/PA running OSF/1 hppa*-*-osf*
5740HP/PA Pro target hppa*-*-pro*
78c43945 5741PMAX (MIPS) running Mach 3.0 mips*-*-mach3*
2fbce691
AC
5742Sequent family i[3456]86-sequent-sysv4*
5743 i[3456]86-sequent-sysv*
5744 i[3456]86-sequent-bsd*
f81824a9
AC
5745Tsqware Sparclet sparclet-*-*
5746Fujitsu SPARClite sparclite-fujitsu-none or sparclite
fd2299bd 5747
5835abe7
NC
5748* REMOVED configurations and files
5749
5750V850EA ISA
1b831c93
AC
5751Motorola Delta 88000 running Sys V m88k-motorola-sysv or delta88
5752IBM AIX PS/2 i[3456]86-*-aix
5753i386 running Mach 3.0 i[3456]86-*-mach3*
5754i386 running Mach i[3456]86-*-mach*
5755i386 running OSF/1 i[3456]86-*osf1mk*
5756HP/Apollo 68k Family m68*-apollo*-sysv*,
5757 m68*-apollo*-bsd*,
5758 m68*-hp-bsd*, m68*-hp-hpux*
5759Argonaut Risc Chip (ARC) arc-*-*
5760Mitsubishi D30V d30v-*-*
5761Fujitsu FR30 fr30-*-elf*
5762OS/9000 i[34]86-*-os9k
5763I960 with MON960 i960-*-coff
5835abe7 5764
a094c6fb
AC
5765* MIPS $fp behavior changed
5766
5767The convenience variable $fp, for the MIPS, now consistently returns
5768the address of the current frame's base. Previously, depending on the
5769context, $fp could refer to either $sp or the current frame's base
5770address. See ``8.10 Registers'' in the manual ``Debugging with GDB:
5771The GNU Source-Level Debugger''.
5772
299ffc64 5773*** Changes in GDB 5.3:
37057839 5774
46248966
AC
5775* GNU/Linux shared library multi-threaded performance improved.
5776
5777When debugging a multi-threaded application on GNU/Linux, GDB now uses
5778`/proc', in preference to `ptrace' for memory reads. This may result
5779in an improvement in the start-up time of multi-threaded, shared
5780library applications when run under GDB. One GDB user writes: ``loads
5781shared libs like mad''.
5782
b9d14705 5783* ``gdbserver'' now supports multi-threaded applications on some targets
6da02953 5784
b9d14705
DJ
5785Support for debugging multi-threaded applications which use
5786the GNU/Linux LinuxThreads package has been added for
5787arm*-*-linux*-gnu*, i[3456]86-*-linux*-gnu*, mips*-*-linux*-gnu*,
5788powerpc*-*-linux*-gnu*, and sh*-*-linux*-gnu*.
6da02953 5789
e0e9281e
JB
5790* GDB now supports C/C++ preprocessor macros.
5791
5792GDB now expands preprocessor macro invocations in C/C++ expressions,
5793and provides various commands for showing macro definitions and how
5794they expand.
5795
dd73b9bb
AC
5796The new command `macro expand EXPRESSION' expands any macro
5797invocations in expression, and shows the result.
5798
5799The new command `show macro MACRO-NAME' shows the definition of the
5800macro named MACRO-NAME, and where it was defined.
5801
e0e9281e
JB
5802Most compilers don't include information about macros in the debugging
5803information by default. In GCC 3.1, for example, you need to compile
5804your program with the options `-gdwarf-2 -g3'. If the macro
5805information is present in the executable, GDB will read it.
5806
2250ee0c
CV
5807* Multi-arched targets.
5808
6e3ba3b8
JT
5809DEC Alpha (partial) alpha*-*-*
5810DEC VAX (partial) vax-*-*
2250ee0c 5811NEC V850 v850-*-*
6e3ba3b8 5812National Semiconductor NS32000 (partial) ns32k-*-*
a1789893
GS
5813Motorola 68000 (partial) m68k-*-*
5814Motorola MCORE mcore-*-*
2250ee0c 5815
cd9bfe15 5816* New targets.
e33ce519 5817
456f8b9d
DB
5818Fujitsu FRV architecture added by Red Hat frv*-*-*
5819
e33ce519 5820
da8ca43d
JT
5821* New native configurations
5822
5823Alpha NetBSD alpha*-*-netbsd*
029923d4 5824SH NetBSD sh*-*-netbsdelf*
45888261 5825MIPS NetBSD mips*-*-netbsd*
9ce5c36a 5826UltraSPARC NetBSD sparc64-*-netbsd*
da8ca43d 5827
cd9bfe15
AC
5828* OBSOLETE configurations and files
5829
5830Configurations that have been declared obsolete in this release have
5831been commented out. Unless there is activity to revive these
5832configurations, the next release of GDB will have their sources
5833permanently REMOVED.
5834
92eb23c5 5835Mitsubishi D30V d30v-*-*
a99a9e1b 5836OS/9000 i[34]86-*-os9k
1c7cc583 5837IBM AIX PS/2 i[3456]86-*-aix
7a3085c1 5838Fujitsu FR30 fr30-*-elf*
7fb623f7 5839Motorola Delta 88000 running Sys V m88k-motorola-sysv or delta88
eb4c54a2 5840Argonaut Risc Chip (ARC) arc-*-*
d8ee244c
MK
5841i386 running Mach 3.0 i[3456]86-*-mach3*
5842i386 running Mach i[3456]86-*-mach*
5843i386 running OSF/1 i[3456]86-*osf1mk*
822e978b
AC
5844HP/Apollo 68k Family m68*-apollo*-sysv*,
5845 m68*-apollo*-bsd*,
5846 m68*-hp-bsd*, m68*-hp-hpux*
4d210288 5847I960 with MON960 i960-*-coff
92eb23c5 5848
db034ac5
AC
5849* OBSOLETE languages
5850
5851CHILL, a Pascal like language used by telecommunications companies.
5852
cd9bfe15
AC
5853* REMOVED configurations and files
5854
5855AMD 29k family via UDI a29k-amd-udi, udi29k
5856A29K VxWorks a29k-*-vxworks
5857AMD 29000 embedded, using EBMON a29k-none-none
5858AMD 29000 embedded with COFF a29k-none-coff
5859AMD 29000 embedded with a.out a29k-none-aout
5860
5861testsuite/gdb.hp/gdb.threads-hp/ directory
5862
20f01a46
DH
5863* New command "set max-user-call-depth <nnn>"
5864
5865This command allows the user to limit the call depth of user-defined
5866commands. The default is 1024.
5867
a5941fbf
MK
5868* Changes in FreeBSD/i386 native debugging.
5869
5870Support for the "generate-core-file" has been added.
5871
89743e04
MS
5872* New commands "dump", "append", and "restore".
5873
5874These commands allow data to be copied from target memory
5875to a bfd-format or binary file (dump and append), and back
5876from a file into memory (restore).
37057839 5877
9fb14e79
JB
5878* Improved "next/step" support on multi-processor Alpha Tru64.
5879
5880The previous single-step mechanism could cause unpredictable problems,
5881including the random appearance of SIGSEGV or SIGTRAP signals. The use
5882of a software single-step mechanism prevents this.
5883
2037aebb
AC
5884*** Changes in GDB 5.2.1:
5885
5886* New targets.
5887
5888Atmel AVR avr*-*-*
5889
5890* Bug fixes
5891
5892gdb/182: gdb/323: gdb/237: On alpha, gdb was reporting:
5893mdebugread.c:2443: gdb-internal-error: sect_index_data not initialized
5894Fix, by Joel Brobecker imported from mainline.
5895
5896gdb/439: gdb/291: On some ELF object files, gdb was reporting:
5897dwarf2read.c:1072: gdb-internal-error: sect_index_text not initialize
5898Fix, by Fred Fish, imported from mainline.
5899
5900Dwarf2 .debug_frame & .eh_frame handler improved in many ways.
5901Surprisingly enough, it works now.
5902By Michal Ludvig, imported from mainline.
5903
5904i386 hardware watchpoint support:
5905avoid misses on second run for some targets.
5906By Pierre Muller, imported from mainline.
5907
37057839 5908*** Changes in GDB 5.2:
eb7cedd9 5909
1a703748
MS
5910* New command "set trust-readonly-sections on[off]".
5911
5912This command is a hint that tells gdb that read-only sections
5913really are read-only (ie. that their contents will not change).
5914In this mode, gdb will go to the object file rather than the
5915target to read memory from read-only sections (such as ".text").
5916This can be a significant performance improvement on some
5917(notably embedded) targets.
5918
cefd4ef5
MS
5919* New command "generate-core-file" (or "gcore").
5920
55241689
AC
5921This new gdb command allows the user to drop a core file of the child
5922process state at any time. So far it's been implemented only for
5923GNU/Linux and Solaris, but should be relatively easily ported to other
5924hosts. Argument is core file name (defaults to core.<pid>).
cefd4ef5 5925
352ed7b4
MS
5926* New command line option
5927
5928GDB now accepts --pid or -p followed by a process id.
5929
5930* Change in command line behavior -- corefiles vs. process ids.
5931
5932There is a subtle behavior in the way in which GDB handles
5933command line arguments. The first non-flag argument is always
5934a program to debug, but the second non-flag argument may either
5935be a corefile or a process id. Previously, GDB would attempt to
5936open the second argument as a corefile, and if that failed, would
5937issue a superfluous error message and then attempt to attach it as
5938a process. Now, if the second argument begins with a non-digit,
5939it will be treated as a corefile. If it begins with a digit,
5940GDB will attempt to attach it as a process, and if no such process
5941is found, will then attempt to open it as a corefile.
5942
fe419ffc
RE
5943* Changes in ARM configurations.
5944
5945Multi-arch support is enabled for all ARM configurations. The ARM/NetBSD
5946configuration is fully multi-arch.
5947
eb7cedd9
MK
5948* New native configurations
5949
fe419ffc 5950ARM NetBSD arm*-*-netbsd*
eb7cedd9 5951x86 OpenBSD i[3456]86-*-openbsd*
55241689 5952AMD x86-64 running GNU/Linux x86_64-*-linux-*
768f0842 5953Sparc64 running FreeBSD sparc64-*-freebsd*
eb7cedd9 5954
c9f63e6b
CV
5955* New targets
5956
5957Sanyo XStormy16 xstormy16-elf
5958
9b4ff276
AC
5959* OBSOLETE configurations and files
5960
5961Configurations that have been declared obsolete in this release have
5962been commented out. Unless there is activity to revive these
5963configurations, the next release of GDB will have their sources
5964permanently REMOVED.
5965
5966AMD 29k family via UDI a29k-amd-udi, udi29k
5967A29K VxWorks a29k-*-vxworks
5968AMD 29000 embedded, using EBMON a29k-none-none
5969AMD 29000 embedded with COFF a29k-none-coff
5970AMD 29000 embedded with a.out a29k-none-aout
5971
b4ceaee6 5972testsuite/gdb.hp/gdb.threads-hp/ directory
9b4ff276 5973
e2caac18
AC
5974* REMOVED configurations and files
5975
5976TI TMS320C80 tic80-*-*
7bc65f05 5977WDC 65816 w65-*-*
7768dd6c
AC
5978PowerPC Solaris powerpcle-*-solaris*
5979PowerPC Windows NT powerpcle-*-cygwin32
5980PowerPC Netware powerpc-*-netware*
5e734e1f 5981Harris/CXUX m88k m88*-harris-cxux*
1406caf7
AC
5982Most ns32k hosts and targets ns32k-*-mach3* ns32k-umax-*
5983 ns32k-utek-sysv* ns32k-utek-*
7e24f0b1 5984SunOS 4.0.Xi on i386 i[3456]86-*-sunos*
9b567150 5985Ultracomputer (29K) running Sym1 a29k-nyu-sym1 a29k-*-kern*
3680c638
AC
5986Sony NEWS (68K) running NEWSOS 3.x m68*-sony-sysv news
5987ISI Optimum V (3.05) under 4.3bsd. m68*-isi-*
a752853e 5988Apple Macintosh (MPW) host and target N/A host, powerpc-*-macos*
e2caac18 5989
c2a727fa
TT
5990* Changes to command line processing
5991
5992The new `--args' feature can be used to specify command-line arguments
5993for the inferior from gdb's command line.
5994
467d8519
TT
5995* Changes to key bindings
5996
5997There is a new `operate-and-get-next' function bound to `C-o'.
5998
7072a954
AC
5999*** Changes in GDB 5.1.1
6000
6001Fix compile problem on DJGPP.
6002
6003Fix a problem with floating-point registers on the i386 being
6004corrupted.
6005
6006Fix to stop GDB crashing on .debug_str debug info.
6007
6008Numerous documentation fixes.
6009
6010Numerous testsuite fixes.
6011
34f47bc4 6012*** Changes in GDB 5.1:
139760b7
MK
6013
6014* New native configurations
6015
6016Alpha FreeBSD alpha*-*-freebsd*
6017x86 FreeBSD 3.x and 4.x i[3456]86*-freebsd[34]*
55241689 6018MIPS GNU/Linux mips*-*-linux*
e23194cb
EZ
6019MIPS SGI Irix 6.x mips*-sgi-irix6*
6020ia64 AIX ia64-*-aix*
55241689 6021s390 and s390x GNU/Linux {s390,s390x}-*-linux*
139760b7 6022
bf64bfd6
AC
6023* New targets
6024
def90278 6025Motorola 68HC11 and 68HC12 m68hc11-elf
24be5c34 6026CRIS cris-axis
55241689 6027UltraSparc running GNU/Linux sparc64-*-linux*
def90278 6028
17e78a56 6029* OBSOLETE configurations and files
bf64bfd6
AC
6030
6031x86 FreeBSD before 2.2 i[3456]86*-freebsd{1,2.[01]}*,
9b9c068d 6032Harris/CXUX m88k m88*-harris-cxux*
bb19ff3b
AC
6033Most ns32k hosts and targets ns32k-*-mach3* ns32k-umax-*
6034 ns32k-utek-sysv* ns32k-utek-*
76f4ea53
AC
6035TI TMS320C80 tic80-*-*
6036WDC 65816 w65-*-*
4a1968f4 6037Ultracomputer (29K) running Sym1 a29k-nyu-sym1 a29k-*-kern*
1b2b2c16
AC
6038PowerPC Solaris powerpcle-*-solaris*
6039PowerPC Windows NT powerpcle-*-cygwin32
6040PowerPC Netware powerpc-*-netware*
24f89b68 6041SunOS 4.0.Xi on i386 i[3456]86-*-sunos*
514e603d
AC
6042Sony NEWS (68K) running NEWSOS 3.x m68*-sony-sysv news
6043ISI Optimum V (3.05) under 4.3bsd. m68*-isi-*
d036b4d9 6044Apple Macintosh (MPW) host N/A
bf64bfd6 6045
17e78a56
AC
6046stuff.c (Program to stuff files into a specially prepared space in kdb)
6047kdb-start.c (Main loop for the standalone kernel debugger)
6048
7fcca85b
AC
6049Configurations that have been declared obsolete in this release have
6050been commented out. Unless there is activity to revive these
6051configurations, the next release of GDB will have their sources
6052permanently REMOVED.
6053
a196c81c 6054* REMOVED configurations and files
7fcca85b
AC
6055
6056Altos 3068 m68*-altos-*
6057Convex c1-*-*, c2-*-*
6058Pyramid pyramid-*-*
6059ARM RISCix arm-*-* (as host)
6060Tahoe tahoe-*-*
a196c81c 6061ser-ocd.c *-*-*
bf64bfd6 6062
6d6b80e5 6063* GDB has been converted to ISO C.
e23194cb 6064
6d6b80e5 6065GDB's source code has been converted to ISO C. In particular, the
e23194cb
EZ
6066sources are fully protoized, and rely on standard headers being
6067present.
6068
bf64bfd6
AC
6069* Other news:
6070
e23194cb
EZ
6071* "info symbol" works on platforms which use COFF, ECOFF, XCOFF, and NLM.
6072
6073* The MI enabled by default.
6074
6075The new machine oriented interface (MI) introduced in GDB 5.0 has been
6076revised and enabled by default. Packages which use GDB as a debugging
6077engine behind a UI or another front end are encouraged to switch to
6078using the GDB/MI interface, instead of the old annotations interface
6079which is now deprecated.
6080
6081* Support for debugging Pascal programs.
6082
6083GDB now includes support for debugging Pascal programs. The following
6084main 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
6095However, 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
6110Commands such as `shell', `run' and `set args', which pass arguments
6111to inferior programs, now complete on file names, similar to what
6112users expect at the shell prompt.
6113
6114Commands which accept locations, such as `disassemble', `print',
6115`breakpoint', `until', etc. now complete on filenames as well as
6116program symbols. Thus, if you type "break foob TAB", and the source
6117files linked into the programs include `foobar.c', that file name will
6118be one of the candidates for completion. However, file names are not
6119considered for completion after you typed a colon that delimits a file
6120name 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
6126It is now possible to define a post-hook for a command as well as a
6127hook that runs before the command. For more details, see the
6128documentation of `hookpost' in the GDB manual.
6129
6130* Changes in GNU/Linux native debugging.
6131
d7275149
MK
6132Support for debugging multi-threaded programs has been completely
6133revised for all platforms except m68k and sparc. You can now debug as
6134many threads as your system allows you to have.
6135
e23194cb
EZ
6136Attach/detach is supported for multi-threaded programs.
6137
d7275149
MK
6138Support for SSE registers was added for x86. This doesn't work for
6139multi-threaded programs though.
e23194cb
EZ
6140
6141* Changes in MIPS configurations.
bf64bfd6
AC
6142
6143Multi-arch support is enabled for all MIPS configurations.
6144
e23194cb
EZ
6145GDB can now be built as native debugger on SGI Irix 6.x systems for
6146debugging n32 executables. (Debugging 64-bit executables is not yet
6147supported.)
6148
6149* Unified support for hardware watchpoints in all x86 configurations.
6150
6151Most (if not all) native x86 configurations support hardware-assisted
6152breakpoints and watchpoints in a unified manner. This support
6153implements debug register sharing between watchpoints, which allows to
6154put a virtually infinite number of watchpoints on the same address,
6155and also supports watching regions up to 16 bytes with several debug
6156registers.
6157
6158The new maintenance command `maintenance show-debug-regs' toggles
6159debugging print-outs in functions that insert, remove, and test
6160watchpoints and hardware breakpoints.
6161
6162* Changes in the DJGPP native configuration.
6163
6164New command ``info dos sysinfo'' displays assorted information about
6165the CPU, OS, memory, and DPMI server.
6166
6167New commands ``info dos gdt'', ``info dos ldt'', and ``info dos idt''
6168display information about segment descriptors stored in GDT, LDT, and
6169IDT.
6170
6171New commands ``info dos pde'' and ``info dos pte'' display entries
6172from Page Directory and Page Tables (for now works with CWSDPMI only).
6173New command ``info dos address-pte'' displays the Page Table entry for
6174a given linear address.
6175
6176GDB can now pass command lines longer than 126 characters to the
6177program being debugged (requires an update to the libdbg.a library
6178which is part of the DJGPP development kit).
6179
6180DWARF2 debug info is now supported.
6181
6c56c069
EZ
6182It is now possible to `step' and `next' through calls to `longjmp'.
6183
e23194cb
EZ
6184* Changes in documentation.
6185
6186All GDB documentation was converted to GFDL, the GNU Free
6187Documentation License.
6188
6189Tracepoints-related commands are now fully documented in the GDB
6190manual.
6191
6192TUI, the Text-mode User Interface, is now documented in the manual.
6193
6194Tracepoints-related commands are now fully documented in the GDB
6195manual.
6196
6197The "GDB Internals" manual now has an index. It also includes
6198documentation of `ui_out' functions, GDB coding standards, x86
6199hardware watchpoints, and memory region attributes.
6200
5d6640b1
AC
6201* GDB's version number moved to ``version.in''
6202
6203The Makefile variable VERSION has been replaced by the file
6204``version.in''. People creating GDB distributions should update the
6205contents of this file.
6206
1a1d8446
AC
6207* gdba.el deleted
6208
6209GUD support is now a standard part of the EMACS distribution.
139760b7 6210
9debab2f 6211*** Changes in GDB 5.0:
7a292a7a 6212
c63ce875
EZ
6213* Improved support for debugging FP programs on x86 targets
6214
6215Unified and much-improved support for debugging floating-point
6216programs on all x86 targets. In particular, ``info float'' now
6217displays the FP registers in the same format on all x86 targets, with
6218greater level of detail.
6219
6220* Improvements and bugfixes in hardware-assisted watchpoints
6221
6222It is now possible to watch array elements, struct members, and
6223bitfields with hardware-assisted watchpoints. Data-read watchpoints
6224on x86 targets no longer erroneously trigger when the address is
6225written.
6226
6227* Improvements in the native DJGPP version of GDB
6228
6229The distribution now includes all the scripts and auxiliary files
6230necessary to build the native DJGPP version on MS-DOS/MS-Windows
6231machines ``out of the box''.
6232
6233The DJGPP version can now debug programs that use signals. It is
6234possible to catch signals that happened in the debuggee, deliver
6235signals to it, interrupt it with Ctrl-C, etc. (Previously, a signal
6236would kill the program being debugged.) Programs that hook hardware
6237interrupts (keyboard, timer, etc.) can also be debugged.
6238
6239It is now possible to debug DJGPP programs that redirect their
6240standard handles or switch them to raw (as opposed to cooked) mode, or
6241even close them. The command ``run < foo > bar'' works as expected,
6242and ``info terminal'' reports useful information about the debuggee's
6243terminal, including raw/cooked mode, redirection, etc.
6244
6245The DJGPP version now uses termios functions for console I/O, which
6246enables debugging graphics programs. Interrupting GDB with Ctrl-C
6247also works.
6248
6249DOS-style file names with drive letters are now fully supported by
6250GDB.
6251
6252It is now possible to debug DJGPP programs that switch their working
6253directory. It is also possible to rerun the debuggee any number of
6254times without restarting GDB; thus, you can use the same setup,
6255breakpoints, etc. for many debugging sessions.
6256
ed9a39eb
JM
6257* New native configurations
6258
6259ARM GNU/Linux arm*-*-linux*
afc05dd4 6260PowerPC GNU/Linux powerpc-*-linux*
ed9a39eb 6261
7a292a7a
SS
6262* New targets
6263
96baa820 6264Motorola MCore mcore-*-*
adf40b2e
JM
6265x86 VxWorks i[3456]86-*-vxworks*
6266PowerPC VxWorks powerpc-*-vxworks*
7a292a7a
SS
6267TI TMS320C80 tic80-*-*
6268
085dd6e6
JM
6269* OBSOLETE configurations
6270
6271Altos 3068 m68*-altos-*
6272Convex c1-*-*, c2-*-*
9846de1b 6273Pyramid pyramid-*-*
ed9a39eb 6274ARM RISCix arm-*-* (as host)
104c1213 6275Tahoe tahoe-*-*
7a292a7a 6276
9debab2f
AC
6277Configurations that have been declared obsolete will be commented out,
6278but the code will be left in place. If there is no activity to revive
6279these configurations before the next release of GDB, the sources will
6280be permanently REMOVED.
6281
5330533d
SS
6282* Gould support removed
6283
6284Support for the Gould PowerNode and NP1 has been removed.
6285
bc9e5bbf
AC
6286* New features for SVR4
6287
6288On SVR4 native platforms (such as Solaris), if you attach to a process
6289without first loading a symbol file, GDB will now attempt to locate and
6290load symbols from the running process's executable file.
6291
6292* Many C++ enhancements
6293
6294C++ support has been greatly improved. Overload resolution now works properly
6295in almost all cases. RTTI support is on the way.
6296
adf40b2e
JM
6297* Remote targets can connect to a sub-program
6298
6299A popen(3) style serial-device has been added. This device starts a
6300sub-process (such as a stand-alone simulator) and then communicates
6301with 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
43e526b9
JM
6307* MIPS 64 remote protocol
6308
6309A long standing bug in the mips64 remote protocol where by GDB
6310expected certain 32 bit registers (ex SR) to be transfered as 32
6311instead of 64 bits has been fixed.
6312
6313The command ``set remote-mips64-transfers-32bit-regs on'' has been
6314added to provide backward compatibility with older versions of GDB.
6315
96baa820
JM
6316* ``set remotebinarydownload'' replaced by ``set remote X-packet''
6317
6318The command ``set remotebinarydownload'' command has been replaced by
6319``set remote X-packet''. Other commands in ``set remote'' family
6320include ``set remote P-packet''.
6321
11cf8741
JM
6322* Breakpoint commands accept ranges.
6323
6324The breakpoint commands ``enable'', ``disable'', and ``delete'' now
6325accept a range of breakpoints, e.g. ``5-7''. The tracepoint command
6326``tracepoint passcount'' also accepts a range of tracepoints.
6327
7876dd43
DB
6328* ``apropos'' command added.
6329
6330The ``apropos'' command searches through command names and
6331documentation strings, printing out matches, making it much easier to
6332try to find a command that does what you are looking for.
6333
bc9e5bbf
AC
6334* New MI interface
6335
6336A new machine oriented interface (MI) has been added to GDB. This
6337interface is designed for debug environments running GDB as a separate
7162c0ca
EZ
6338process. 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
6340enabled by configuring with:
bc9e5bbf
AC
6341
6342 .../configure --enable-gdbmi
6343
c906108c
SS
6344*** Changes in GDB-4.18:
6345
6346* New native configurations
6347
6348HP-UX 10.20 hppa*-*-hpux10.20
6349HP-UX 11.x hppa*-*-hpux11.0*
55241689 6350M68K GNU/Linux m68*-*-linux*
c906108c
SS
6351
6352* New targets
6353
6354Fujitsu FR30 fr30-*-elf*
6355Intel StrongARM strongarm-*-*
6356Mitsubishi D30V d30v-*-*
6357
6358* OBSOLETE configurations
6359
6360Gould PowerNode, NP1 np1-*-*, pn-*-*
6361
6362Configurations that have been declared obsolete will be commented out,
6363but the code will be left in place. If there is no activity to revive
6364these configurations before the next release of GDB, the sources will
6365be permanently REMOVED.
6366
6367* ANSI/ISO C
6368
6369As a compatibility experiment, GDB's source files buildsym.h and
6370buildsym.c have been converted to pure standard C, no longer
6371containing any K&R compatibility code. We believe that all systems in
6372use today either come with a standard C compiler, or have a GCC port
6373available. If this is not true, please report the affected
6374configuration to bug-gdb@gnu.org immediately. See the README file for
6375information about getting a standard C compiler if you don't have one
6376already.
6377
6378* Readline 2.2
6379
6380GDB now uses readline 2.2.
6381
6382* set extension-language
6383
6384You can now control the mapping between filename extensions and source
6385languages by using the `set extension-language' command. For instance,
6386you can ask GDB to treat .c files as C++ by saying
6387 set extension-language .c c++
6388The command `info extensions' lists all of the recognized extensions
6389and their associated languages.
6390
6391* Setting processor type for PowerPC and RS/6000
6392
6393When GDB is configured for a powerpc*-*-* or an rs6000*-*-* target,
6394you can use the `set processor' command to specify what variant of the
6395PowerPC family you are debugging. The command
6396
6397 set processor NAME
6398
6399sets the PowerPC/RS6000 variant to NAME. GDB knows about the
6400following 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
6414At the moment, this command just tells GDB what to name the
6415special-purpose processor registers. Since almost all the affected
6416registers are inaccessible to user-level programs, this command is
6417only useful for remote debugging in its present form.
6418
6419* HP-UX support
6420
6421Thanks to a major code donation from Hewlett-Packard, GDB now has much
6422more extensive support for HP-UX. Added features include shared
6423library support, kernel threads and hardware watchpoints for 11.00,
6424support for HP's ANSI C and C++ compilers, and a compatibility mode
6425for xdb and dbx commands.
6426
6427* Catchpoints
6428
6429HP's donation includes the new concept of catchpoints, which is a
6430generalization of the old catch command. On HP-UX, it is now possible
6431to catch exec, fork, and vfork, as well as library loading.
6432
6433This means that the existing catch command has changed; its first
6434argument now specifies the type of catch to be set up. See the
6435output of "help catch" for a list of catchpoint types.
6436
6437* Debugging across forks
6438
6439On HP-UX, you can choose which process to debug when a fork() happens
6440in the inferior.
6441
6442* TUI
6443
6444HP has donated a curses-based terminal user interface (TUI). To get
6445it, build with --enable-tui. Although this can be enabled for any
6446configuration, at present it only works for native HP debugging.
6447
6448* GDB remote protocol additions
6449
6450A new protocol packet 'X' that writes binary data is now available.
6451Default behavior is to try 'X', then drop back to 'M' if the stub
6452fails to respond. The settable variable `remotebinarydownload'
6453allows explicit control over the use of 'X'.
6454
6455For 64-bit targets, the memory packets ('M' and 'm') can now contain a
6456full 64-bit address. The command
6457
6458 set remoteaddresssize 32
6459
6460can be used to revert to the old behaviour. For existing remote stubs
6461the change should not be noticed, as the additional address information
6462will be discarded.
6463
6464In order to assist in debugging stubs, you may use the maintenance
6465command `packet' to send any text string to the stub. For instance,
6466
6467 maint packet heythere
6468
6469sends the packet "$heythere#<checksum>". Note that it is very easy to
6470disrupt a debugging session by sending the wrong packet at the wrong
6471time.
6472
6473The compare-sections command allows you to compare section data on the
6474target to what is in the executable file without uploading or
6475downloading, by comparing CRC checksums.
6476
6477* Tracing can collect general expressions
6478
6479You may now collect general expressions at tracepoints. This requires
6480further additions to the target-side stub; see tracepoint.c and
6481doc/agentexpr.texi for further details.
6482
6483* mask-address variable for Mips
6484
6485For Mips targets, you may control the zeroing of the upper 32 bits of
6486a 64-bit address by entering `set mask-address on'. This is mainly
6487of interest to users of embedded R4xxx and R5xxx processors.
6488
6489* Higher serial baud rates
6490
6491GDB's serial code now allows you to specify baud rates 57600, 115200,
6492230400, and 460800 baud. (Note that your host system may not be able
6493to achieve all of these rates.)
6494
6495* i960 simulator
6496
6497The i960 configuration now includes an initial implementation of a
6498builtin simulator, contributed by Jim Wilson.
6499
6500
6501*** Changes in GDB-4.17:
6502
6503* New native configurations
6504
6505Alpha GNU/Linux alpha*-*-linux*
6506Unixware 2.x i[3456]86-unixware2*
6507Irix 6.x mips*-sgi-irix6*
6508PowerPC GNU/Linux powerpc-*-linux*
6509PowerPC Solaris powerpcle-*-solaris*
6510Sparc GNU/Linux sparc-*-linux*
6511Motorola sysV68 R3V7.1 m68k-motorola-sysv
6512
6513* New targets
6514
6515Argonaut Risc Chip (ARC) arc-*-*
6516Hitachi H8/300S h8300*-*-*
6517Matsushita MN10200 w/simulator mn10200-*-*
6518Matsushita MN10300 w/simulator mn10300-*-*
6519MIPS NEC VR4100 mips64*vr4100*{,el}-*-elf*
6520MIPS NEC VR5000 mips64*vr5000*{,el}-*-elf*
6521MIPS Toshiba TX39 mips64*tx39*{,el}-*-elf*
6522Mitsubishi D10V w/simulator d10v-*-*
6523Mitsubishi M32R/D w/simulator m32r-*-elf*
6524Tsqware Sparclet sparclet-*-*
6525NEC V850 w/simulator v850-*-*
6526
6527* New debugging protocols
6528
6529ARM with RDI protocol arm*-*-*
6530M68K with dBUG monitor m68*-*-{aout,coff,elf}
6531DDB and LSI variants of PMON protocol mips*-*-*
6532PowerPC with DINK32 monitor powerpc{,le}-*-eabi
6533PowerPC with SDS protocol powerpc{,le}-*-eabi
6534Macraigor OCD (Wiggler) devices powerpc{,le}-*-eabi
6535
6536* DWARF 2
6537
6538All configurations can now understand and use the DWARF 2 debugging
6539format. The choice is automatic, if the symbol file contains DWARF 2
6540information.
6541
6542* Java frontend
6543
6544GDB now includes basic Java language support. This support is
6545only useful with Java compilers that produce native machine code.
6546
6547* solib-absolute-prefix and solib-search-path
6548
6549For SunOS and SVR4 shared libraries, you may now set the prefix for
6550loading absolute shared library symbol files, and the search path for
6551locating non-absolute shared library symbol files.
6552
6553* Live range splitting
6554
6555GDB can now effectively debug code for which GCC has performed live
6556range splitting as part of its optimization. See gdb/doc/LRS for
6557more details on the expected format of the stabs information.
6558
6559* Hurd support
6560
6561GDB's support for the GNU Hurd, including thread debugging, has been
6562updated to work with current versions of the Hurd.
6563
6564* ARM Thumb support
6565
6566GDB's ARM target configuration now handles the ARM7T (Thumb) 16-bit
6567instruction set. ARM GDB automatically detects when Thumb
6568instructions are in use, and adjusts disassembly and backtracing
6569accordingly.
6570
6571* MIPS16 support
6572
6573GDB's MIPS target configurations now handle the MIP16 16-bit
6574instruction set.
6575
6576* Overlay support
6577
6578GDB now includes support for overlays; if an executable has been
6579linked such that multiple sections are based at the same address, GDB
6580will decide which section to use for symbolic info. You can choose to
6581control the decision manually, using overlay commands, or implement
6582additional target-side support and use "overlay load-target" to bring
6583in the overlay mapping. Do "help overlay" for more detail.
6584
6585* info symbol
6586
6587The command "info symbol <address>" displays information about
6588the symbol at the specified address.
6589
6590* Trace support
6591
6592The standard remote protocol now includes an extension that allows
6593asynchronous collection and display of trace data. This requires
6594extensive support in the target-side debugging stub. Tracing mode
6595includes a new interaction mode in GDB and new commands: see the
6596file tracepoint.c for more details.
6597
6598* MIPS simulator
6599
6600Configurations for embedded MIPS now include a simulator contributed
6601by Cygnus Solutions. The simulator supports the instruction sets
6602of most MIPS variants.
6603
6604* Sparc simulator
6605
6606Sparc configurations may now include the ERC32 simulator contributed
6607by the European Space Agency. The simulator is not built into
6608Sparc targets by default; configure with --enable-sim to include it.
6609
6610* set architecture
6611
6612For target configurations that may include multiple variants of a
6613basic architecture (such as MIPS and SH), you may now set the
6614architecture explicitly. "set arch" sets, "info arch" lists
6615the possible architectures.
6616
6617*** Changes in GDB-4.16:
6618
6619* New native configurations
6620
6621Windows 95, x86 Windows NT i[345]86-*-cygwin32
6622M68K NetBSD m68k-*-netbsd*
6623PowerPC AIX 4.x powerpc-*-aix*
6624PowerPC MacOS powerpc-*-macos*
6625PowerPC Windows NT powerpcle-*-cygwin32
6626RS/6000 AIX 4.x rs6000-*-aix4*
6627
6628* New targets
6629
6630ARM with RDP protocol arm-*-*
6631I960 with MON960 i960-*-coff
6632MIPS VxWorks mips*-*-vxworks*
6633MIPS VR4300 with PMON mips64*vr4300{,el}-*-elf*
6634PowerPC with PPCBUG monitor powerpc{,le}-*-eabi*
6635Hitachi SH3 sh-*-*
6636Matra Sparclet sparclet-*-*
6637
6638* PowerPC simulator
6639
6640The powerpc-eabi configuration now includes the PSIM simulator,
6641contributed by Andrew Cagney, with assistance from Mike Meissner.
6642PSIM is a very elaborate model of the PowerPC, including not only
6643basic instruction set execution, but also details of execution unit
6644performance and I/O hardware. See sim/ppc/README for more details.
6645
6646* Solaris 2.5
6647
6648GDB now works with Solaris 2.5.
6649
6650* Windows 95/NT native
6651
6652GDB will now work as a native debugger on Windows 95 and Windows NT.
6653To build it from source, you must use the "gnu-win32" environment,
6654which uses a DLL to emulate enough of Unix to run the GNU tools.
6655Further information, binaries, and sources are available at
6656ftp.cygnus.com, under pub/gnu-win32.
6657
6658* dont-repeat command
6659
6660If a user-defined command includes the command `dont-repeat', then the
6661command will not be repeated if the user just types return. This is
6662useful if the command is time-consuming to run, so that accidental
6663extra keystrokes don't run the same command many times.
6664
6665* Send break instead of ^C
6666
6667The standard remote protocol now includes an option to send a break
6668rather than a ^C to the target in order to interrupt it. By default,
6669GDB will send ^C; to send a break, set the variable `remotebreak' to 1.
6670
6671* Remote protocol timeout
6672
6673The standard remote protocol includes a new variable `remotetimeout'
6674that allows you to set the number of seconds before GDB gives up trying
6675to read from the target. The default value is 2.
6676
6677* Automatic tracking of dynamic object loading (HPUX and Solaris only)
6678
6679By default GDB will automatically keep track of objects as they are
6680loaded and unloaded by the dynamic linker. By using the command `set
6681stop-on-solib-events 1' you can arrange for GDB to stop the inferior
6682when shared library events occur, thus allowing you to set breakpoints
6683in shared libraries which are explicitly loaded by the inferior.
6684
6685Note this feature does not work on hpux8. On hpux9 you must link
6686/usr/lib/end.o into your program. This feature should work
6687automatically on hpux10.
6688
6689* Irix 5.x hardware watchpoint support
6690
6691Irix 5 configurations now support the use of hardware watchpoints.
6692
6693* Mips protocol "SYN garbage limit"
6694
6695When debugging a Mips target using the `target mips' protocol, you
6696may set the number of characters that GDB will ignore by setting
6697the `syn-garbage-limit'. A value of -1 means that GDB will ignore
6698every character. The default value is 1050.
6699
6700* Recording and replaying remote debug sessions
6701
6702If you set `remotelogfile' to the name of a file, gdb will write to it
6703a recording of a remote debug session. This recording may then be
6704replayed back to gdb using "gdbreplay". See gdbserver/README for
6705details. This is useful when you have a problem with GDB while doing
6706remote debugging; you can make a recording of the session and send it
6707to someone else, who can then recreate the problem.
6708
6709* Speedups for remote debugging
6710
6711GDB includes speedups for downloading and stepping MIPS systems using
6712the IDT monitor, fast downloads to the Hitachi SH E7000 emulator,
6713and more efficient S-record downloading.
6714
6715* Memory use reductions and statistics collection
6716
6717GDB now uses less memory and reports statistics about memory usage.
6718Try the `maint print statistics' command, for example.
6719
6720*** Changes in GDB-4.15:
6721
6722* Psymtabs for XCOFF
6723
6724The symbol reader for AIX GDB now uses partial symbol tables. This
6725can greatly improve startup time, especially for large executables.
6726
6727* Remote targets use caching
6728
6729Remote targets now use a data cache to speed up communication with the
6730remote side. The data cache could lead to incorrect results because
6731it doesn't know about volatile variables, thus making it impossible to
6732debug targets which use memory mapped I/O devices. `set remotecache
09f2921c 6733off' turns the data cache off.
c906108c
SS
6734
6735* Remote targets may have threads
6736
6737The standard remote protocol now includes support for multiple threads
6738in the target system, using new protocol commands 'H' and 'T'. See
6739gdb/remote.c for details.
6740
6741* NetROM support
6742
6743If GDB is configured with `--enable-netrom', then it will include
6744support for the NetROM ROM emulator from XLNT Designs. The NetROM
6745acts as though it is a bank of ROM on the target board, but you can
6746write into it over the network. GDB's support consists only of
6747support for fast loading into the emulated ROM; to debug, you must use
6748another protocol, such as standard remote protocol. The usual
6749sequence is something like
6750
6751 target nrom <netrom-hostname>
6752 load <prog>
6753 target remote <netrom-hostname>:1235
6754
6755* Macintosh host
6756
6757GDB now includes support for the Apple Macintosh, as a host only. It
6758may be run as either an MPW tool or as a standalone application, and
6759it can debug through the serial port. All the usual GDB commands are
6760available, but to the target command, you must supply "serial" as the
6761device type instead of "/dev/ttyXX". See mpw-README in the main
6762directory for more information on how to build. The MPW configuration
6763scripts */mpw-config.in support only a few targets, and only the
6764mips-idt-ecoff target has been tested.
6765
6766* Autoconf
6767
6768GDB configuration now uses autoconf. This is not user-visible,
6769but does simplify configuration and building.
6770
6771* hpux10
6772
6773GDB now supports hpux10.
6774
6775*** Changes in GDB-4.14:
6776
6777* New native configurations
6778
6779x86 FreeBSD i[345]86-*-freebsd
6780x86 NetBSD i[345]86-*-netbsd
6781NS32k NetBSD ns32k-*-netbsd
6782Sparc NetBSD sparc-*-netbsd
6783
6784* New targets
6785
6786A29K VxWorks a29k-*-vxworks
6787HP PA PRO embedded (WinBond W89K & Oki OP50N) hppa*-*-pro*
6788CPU32 EST-300 emulator m68*-*-est*
6789PowerPC ELF powerpc-*-elf
6790WDC 65816 w65-*-*
6791
6792* Alpha OSF/1 support for procfs
6793
6794GDB now supports procfs under OSF/1-2.x and higher, which makes it
6795possible to attach to running processes. As the mounting of the /proc
6796filesystem is optional on the Alpha, GDB automatically determines
6797the availability of /proc during startup. This can lead to problems
6798if /proc is unmounted after GDB has been started.
6799
6800* Arguments to user-defined commands
6801
6802User commands may accept up to 10 arguments separated by whitespace.
6803Arguments are accessed within the user command via $arg0..$arg9. A
6804trivial example:
6805define adder
6806 print $arg0 + $arg1 + $arg2
6807
6808To execute the command use:
6809adder 1 2 3
6810
6811Defines the command "adder" which prints the sum of its three arguments.
6812Note the arguments are text substitutions, so they may reference variables,
6813use complex expressions, or even perform inferior function calls.
6814
6815* New `if' and `while' commands
6816
6817This makes it possible to write more sophisticated user-defined
6818commands. Both commands take a single argument, which is the
6819expression to evaluate, and must be followed by the commands to
6820execute, one per line, if the expression is nonzero, the list being
6821terminated by the word `end'. The `if' command list may include an
6822`else' word, which causes the following commands to be executed only
6823if the expression is zero.
6824
6825* Fortran source language mode
6826
6827GDB now includes partial support for Fortran 77. It will recognize
6828Fortran programs and can evaluate a subset of Fortran expressions, but
6829variables and functions may not be handled correctly. GDB will work
6830with G77, but does not yet know much about symbols emitted by other
6831Fortran compilers.
6832
6833* Better HPUX support
6834
6835Most debugging facilities now work on dynamic executables for HPPAs
6836running hpux9 or later. You can attach to running dynamically linked
6837processes, but by default the dynamic libraries will be read-only, so
6838for instance you won't be able to put breakpoints in them. To change
6839that behavior do the following before running the program:
6840
6841 adb -w a.out
6842 __dld_flags?W 0x5
6843 control-d
6844
6845This will cause the libraries to be mapped private and read-write.
6846To revert to the normal behavior, do this:
6847
6848 adb -w a.out
6849 __dld_flags?W 0x4
6850 control-d
6851
6852You cannot set breakpoints or examine data in the library until after
6853the library is loaded if the function/data symbols do not have
6854external linkage.
6855
6856GDB can now also read debug symbols produced by the HP C compiler on
6857HPPAs (sorry, no C++, Fortran or 68k support).
6858
6859* Target byte order now dynamically selectable
6860
6861You can choose which byte order to use with a target system, via the
6862commands "set endian big" and "set endian little", and you can see the
6863current setting by using "show endian". You can also give the command
6864"set endian auto", in which case GDB will use the byte order
6865associated with the executable. Currently, only embedded MIPS
6866configurations support dynamic selection of target byte order.
6867
6868* New DOS host serial code
6869
6870This version uses DPMI interrupts to handle buffered I/O, so you
6871no longer need to run asynctsr when debugging boards connected to
6872a PC's serial port.
6873
6874*** Changes in GDB-4.13:
6875
6876* New "complete" command
6877
6878This lists all the possible completions for the rest of the line, if it
6879were 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
6884allows 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
6889has been hit. This is especially useful in conjunction with "ignore"; you
6890can ignore a large number of breakpoint hits, look at the breakpoint info
6891to see how many times the breakpoint was hit, then run again, ignoring one
6892less than that number, and this will get you quickly to the last hit of
6893that 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
6898an array when the first NULL is encountered. This is useful when large
6899arrays actually contain only short strings.
6900
6901* Shared library breakpoints
6902
6903In SunOS 4.x, SVR4, and Alpha OSF/1 configurations, you can now set
6904breakpoints in shared libraries before the executable is run.
6905
6906* Hardware watchpoints
6907
6908There is a new hardware breakpoint for the watch command for sparclite
6909targets. See gdb/sparclite/hw_breakpoint.note.
6910
55241689 6911Hardware watchpoints are also now supported under GNU/Linux.
c906108c
SS
6912
6913* Annotations
6914
6915Annotations have been added. These are for use with graphical interfaces,
6916and are still experimental. Currently only gdba.el uses these.
6917
6918* Improved Irix 5 support
6919
6920GDB now works properly with Irix 5.2.
6921
6922* Improved HPPA support
6923
6924GDB now works properly with the latest GCC and GAS.
6925
6926* New native configurations
6927
6928Sequent PTX4 i[34]86-sequent-ptx4
6929HPPA running OSF/1 hppa*-*-osf*
6930Atari TT running SVR4 m68*-*-sysv4*
6931RS/6000 LynxOS rs6000-*-lynxos*
6932
6933* New targets
6934
6935OS/9000 i[34]86-*-os9k
6936MIPS R4000 mips64*{,el}-*-{ecoff,elf}
6937Sparc64 sparc64-*-*
6938
6939* Hitachi SH7000 and E7000-PC ICE support
6940
6941There is now support for communicating with the Hitachi E7000-PC ICE.
6942This is available automatically when GDB is configured for the SH.
6943
6944* Fixes
6945
6946As usual, a variety of small fixes and improvements, both generic
6947and 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
6955GDB-4.12 on the HPPA has a number of changes which make it unable
6956to debug the output from the currently released versions of GCC and
6957GAS (GCC 2.5.8 and GAS-2.2 or PAGAS-1.36). Until the next major release
6958of GCC and GAS, versions of these tools designed to work with GDB-4.12
6959can 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
6968The "set remotedebug" option is now consistent between the mips remote
6969target, remote targets using the gdb-specific protocol, UDI (AMD's
6970debug protocol for the 29k) and the 88k bug monitor. It is now an
6971integer specifying a debug level (normally 0 or 1, but 2 means more
6972debugging info for the mips target).
6973
6974* DEC Alpha native support
6975
6976GDB now works on the DEC Alpha. GCC 2.4.5 does not produce usable
6977debug info, but GDB works fairly well with the DEC compiler and should
6978work with a future GCC release. See the README file for a few
6979Alpha-specific notes.
6980
6981* Preliminary thread implementation
6982
6983GDB now has preliminary thread support for both SGI/Irix and LynxOS.
6984
6985* LynxOS native and target support for 386
6986
6987This release has been hosted on LynxOS 2.2, and also can be configured
6988to remotely debug programs running under LynxOS (see gdb/gdbserver/README
6989for details).
6990
6991* Improvements in C++ mangling/demangling.
6992
6993This release has much better g++ debugging, specifically in name
6994mangling/demangling, virtual function calls, print virtual table,
6995call methods, ...etc.
6996
6997*** Changes in GDB-4.10:
6998
6999 * User visible changes:
7000
7001Remote debugging using the GDB-specific (`target remote') protocol now
7002supports the `load' command. This is only useful if you have some
7003other way of getting the stub to the target system, and you can put it
7004somewhere in memory where it won't get clobbered by the download.
7005
7006Filename completion now works.
7007
7008When run under emacs mode, the "info line" command now causes the
7009arrow to point to the line specified. Also, "info line" prints
7010addresses in symbolic form (as well as hex).
7011
7012All vxworks based targets now support a user settable option, called
7013vxworks-timeout. This option represents the number of seconds gdb
7014should wait for responses to rpc's. You might want to use this if
7015your vxworks target is, perhaps, a slow software simulator or happens
7016to be on the far side of a thin network line.
7017
7018 * DEC alpha support
7019
7020This release contains support for using a DEC alpha as a GDB host for
7021cross debugging. Native alpha debugging is not supported yet.
7022
7023
7024*** Changes in GDB-4.9:
7025
7026 * Testsuite
7027
7028This is the first GDB release which is accompanied by a matching testsuite.
7029The testsuite requires installation of dejagnu, which should be available
7030via 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
7035emphasize that it was written from the specifications in the C++ Annotated
7036Reference Manual, not necessarily to be compatible with AT&T cfront. Despite
7037disclaimers, it still generated too much confusion with users attempting to
7038use gdb with AT&T cfront.
7039
7040 * Simulators
7041
7042GDB now uses a standard remote interface to a simulator library.
7043So far, the library contains simulators for the Zilog Z8001/2, the
7044Hitachi H8/300, H8/500 and Super-H.
7045
7046 * New targets supported
7047
7048H8/300 simulator h8300-hitachi-hms or h8300hms
7049H8/500 simulator h8500-hitachi-hms or h8500hms
7050SH simulator sh-hitachi-hms or sh
7051Z8000 simulator z8k-zilog-none or z8ksim
7052IDT MIPS board over serial line mips-idt-ecoff
7053
7054Cross-debugging to GO32 targets is supported. It requires a custom
7055version of the i386-stub.c module which is integrated with the
7056GO32 memory extender.
7057
7058 * New remote protocols
7059
7060MIPS remote debugging protocol.
7061
7062 * New source languages supported
7063
7064This version includes preliminary support for Chill, a Pascal like language
7065used by telecommunications companies. Chill support is also being integrated
7066into 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
7073GDB now supports HP PA-RISC machines running HPUX. A preliminary
7074version of this support was available as a set of patches from the
7075University of Utah. GDB does not support debugging of programs
7076compiled with the HP compiler, because HP will not document their file
7077format. 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
7080Many problems in the preliminary version have been fixed.
7081
7082 * Faster and better demangling
7083
7084We have improved template demangling and fixed numerous bugs in the GNU style
7085demangler. It can now handle type modifiers such as `static' or `const'. Wide
7086character types (wchar_t) are now supported. Demangling of each symbol is now
7087only done once, and is cached when the symbol table for a file is read in.
7088This results in a small increase in memory usage for C programs, a moderate
7089increase in memory usage for C++ programs, and a fantastic speedup in
7090symbol lookups.
7091
7092`Cfront' style demangling still doesn't work with AT&T cfront. It was written
7093from the specifications in the Annotated Reference Manual, which AT&T's
7094compiler does not actually implement.
7095
7096 * G++ multiple inheritance compiler problem
7097
7098In the 2.3.2 release of gcc/g++, how the compiler resolves multiple
7099inheritance lattices was reworked to properly discover ambiguities. We
7100recently found an example which causes this new algorithm to fail in a
7101very subtle way, producing bad debug information for those classes.
7102The file 'gcc.patch' (in this directory) can be applied to gcc to
7103circumvent the problem. A future GCC release will contain a complete
7104fix.
7105
7106The previous G++ debug info problem (mentioned below for the gdb-4.7
7107release) is fixed in gcc version 2.3.2.
7108
7109 * Improved configure script
7110
7111The `configure' script will now attempt to guess your system type if
7112you don't supply a host system type. The old scheme of supplying a
7113host system triplet is preferable over using this. All the magic is
7114done in the new `config.guess' script. Examine it for details.
7115
7116We have also brought our configure script much more in line with the FSF's
7117version. It now supports the --with-xxx options. In particular,
7118`--with-minimal-bfd' can be used to make the GDB binary image smaller.
7119The resulting GDB will not be able to read arbitrary object file formats --
7120only the format ``expected'' to be used on the configured target system.
7121We hope to make this the default in a future release.
7122
7123 * Documentation improvements
7124
7125There's new internal documentation on how to modify GDB, and how to
7126produce clean changes to the code. We implore people to read it
7127before submitting changes.
7128
7129The GDB manual uses new, sexy Texinfo conditionals, rather than arcane
7130M4 macros. The new texinfo.tex is provided in this release. Pre-built
7131`info' files are also provided. To build `info' files from scratch,
7132you will need the latest `makeinfo' release, which will be available in
7133a future texinfo-X.Y release.
7134
7135*NOTE* The new texinfo.tex can cause old versions of TeX to hang.
7136We're not sure exactly which versions have this problem, but it has
7137been seen in 3.0. We highly recommend upgrading to TeX version 3.141
7138or better. If that isn't possible, there is a patch in
7139`texinfo/tex3patch' that will modify `texinfo/texinfo.tex' to work
7140around this problem.
7141
7142 * New features
7143
7144GDB now supports array constants that can be used in expressions typed in by
7145the 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
7147the target program.
7148
7149The new directory `gdb/sparclite' contains a program that demonstrates
7150how the sparc-stub.c remote stub runs on a Fujitsu SPARClite processor.
7151
7152 * New native hosts supported
7153
7154HP/PA-RISC under HPUX using GNU tools hppa1.1-hp-hpux
7155386 CPUs running SCO Unix 3.2v4 i386-unknown-sco3.2v4
7156
7157 * New targets supported
7158
7159AMD 29k family via UDI a29k-amd-udi or udi29k
7160
7161 * New file formats supported
7162
7163BFD now supports reading HP/PA-RISC executables (SOM file format?),
7164HPUX core files, and SCO 3.2v2 core files.
7165
7166 * Major bug fixes
7167
7168Attaching to processes now works again; thanks for the many bug reports.
7169
7170We have also stomped on a bunch of core dumps caused by
7171printf_filtered("%s") problems.
7172
7173We eliminated a copyright problem on the rpc and ptrace header files
7174for VxWorks, which was discovered at the last minute during the 4.7
7175release. You should now be able to build a VxWorks GDB.
7176
7177You can now interrupt gdb while an attached process is running. This
7178will cause the attached process to stop, and give control back to GDB.
7179
7180We fixed problems caused by using too many file descriptors
7181for reading symbols from object files and libraries. This was
7182especially a problem for programs that used many (~100) shared
7183libraries.
7184
7185The `step' command now only enters a subroutine if there is line number
7186information for the subroutine. Otherwise it acts like the `next'
7187command. Previously, `step' would enter subroutines if there was
7188any debugging information about the routine. This avoids problems
7189when using `cc -g1' on MIPS machines.
7190
7191 * Internal improvements
7192
7193GDB's internal interfaces have been improved to make it easier to support
7194debugging of multiple languages in the future.
7195
7196GDB now uses a common structure for symbol information internally.
7197Minimal symbols (derived from linkage symbols in object files), partial
7198symbols (from a quick scan of debug information), and full symbols
7199contain a common subset of information, making it easier to write
7200shared code that handles any of them.
7201
7202 * New command line options
7203
7204We now accept --silent as an alias for --quiet.
7205
7206 * Mmalloc licensing
7207
7208The memory-mapped-malloc library is now licensed under the GNU Library
7209General Public License.
7210
7211*** Changes in GDB-4.7:
7212
7213 * Host/native/target split
7214
7215GDB has had some major internal surgery to untangle the support for
7216hosts and remote targets. Now, when you configure GDB for a remote
7217target, it will no longer load in all of the support for debugging
7218local programs on the host. When fully completed and tested, this will
7219ensure that arbitrary host/target combinations are possible.
7220
7221The primary conceptual shift is to separate the non-portable code in
7222GDB into three categories. Host specific code is required any time GDB
7223is compiled on that host, regardless of the target. Target specific
7224code relates to the peculiarities of the target, but can be compiled on
7225any host. Native specific code is everything else: it can only be
7226built when the host and target are the same system. Child process
7227handling and core file support are two common `native' examples.
7228
7229GDB's use of /proc for controlling Unix child processes is now cleaner.
7230It has been split out into a single module under the `target_ops' vector,
7231plus two native-dependent functions for each system that uses /proc.
7232
7233 * New hosts supported
7234
7235HP/Apollo 68k (under the BSD domain) m68k-apollo-bsd or apollo68bsd
7236386 CPUs running various BSD ports i386-unknown-bsd or 386bsd
7237386 CPUs running SCO Unix i386-unknown-scosysv322 or i386sco
7238
7239 * New targets supported
7240
7241Fujitsu SPARClite sparclite-fujitsu-none or sparclite
724268030 and CPU32 m68030-*-*, m68332-*-*
7243
7244 * New native hosts supported
7245
7246386 CPUs running various BSD ports i386-unknown-bsd or 386bsd
7247 (386bsd is not well tested yet)
7248386 CPUs running SCO Unix i386-unknown-scosysv322 or sco
7249
7250 * New file formats supported
7251
7252BFD now supports COFF files for the Zilog Z8000 microprocessor. It
7253supports reading of `a.out.adobe' object files, which are an a.out
7254format 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'.
7260These were renamed for consistency. The old commands continue to work.
7261
7262`info handle' is a new alias for `info signals'.
7263
7264You can now define pre-command hooks, which attach arbitrary command
7265scripts to any command. The commands in the hook will be executed
7266prior to the user's command. You can also create a hook which will be
7267executed whenever the program stops. See gdb.texinfo.
7268
7269 * C++ improvements
7270
7271We now deal with Cfront style name mangling, and can even extract type
7272info from mangled symbols. GDB can automatically figure out which
7273symbol mangling style your C++ compiler uses.
7274
7275Calling of methods and virtual functions has been improved as well.
7276
7277 * Major bug fixes
7278
82f06518 7279The crash that occurred when debugging Sun Ansi-C compiled binaries is
c906108c
SS
7280fixed. This was due to mishandling of the extra N_SO stabs output
7281by the compiler.
7282
7283We also finally got Ultrix 4.2 running in house, and fixed core file
7284support, with help from a dozen people on the net.
7285
7286John M. Farrell discovered that the reason that single-stepping was so
7287slow on all of the Mips based platforms (primarily SGI and DEC) was
7288that we were trying to demangle and lookup a symbol used for internal
7289purposes on every instruction that was being stepped through. Changing
7290the name of that symbol so that it couldn't be mistaken for a C++
7291mangled symbol sped things up a great deal.
7292
7293Rich Pixley sped up symbol lookups in general by getting much smarter
7294about when C++ symbol mangling is necessary. This should make symbol
7295completion (TAB on the command line) much faster. It's not as fast as
7296we'd like, but it's significantly faster than gdb-4.6.
7297
7298 * AMD 29k support
7299
7300A new user controllable variable 'call_scratch_address' can
7301specify the location of a scratch area to be used when GDB
7302calls a function in the target. This is necessary because the
7303usual method of putting the scratch area on the stack does not work
7304in systems that have separate instruction and data spaces.
7305
7306We integrated changes to support the 29k UDI (Universal Debugger
7307Interface), but discovered at the last minute that we didn't have all
7308of the appropriate copyright paperwork. We are working with AMD to
7309resolve this, and hope to have it available soon.
7310
7311 * Remote interfaces
7312
7313We have sped up the remote serial line protocol, especially for targets
7314with lots of registers. It now supports a new `expedited status' ('T')
7315message which can be used in place of the existing 'S' status message.
7316This allows the remote stub to send only the registers that GDB
7317needs to make a quick decision about single-stepping or conditional
7318breakpoints, eliminating the need to fetch the entire register set for
7319each instruction being stepped through.
7320
7321The GDB remote serial protocol now implements a write-through cache for
7322registers, only re-reading the registers if the target has run.
7323
7324There is also a new remote serial stub for SPARC processors. You can
7325find it in gdb-4.7/gdb/sparc-stub.c. This was written to support the
7326Fujitsu SPARClite processor, but will run on any stand-alone SPARC
7327processor with a serial port.
7328
7329 * Configuration
7330
7331Configure.in files have become much easier to read and modify. A new
7332`table driven' format makes it more obvious what configurations are
7333supported, and what files each one uses.
7334
7335 * Library changes
7336
7337There is a new opcodes library which will eventually contain all of the
7338disassembly routines and opcode tables. At present, it only contains
7339Sparc and Z8000 routines. This will allow the assembler, debugger, and
7340disassembler (binutils/objdump) to share these routines.
7341
7342The libiberty library is now copylefted under the GNU Library General
7343Public License. This allows more liberal use, and was done so libg++
7344can use it. This makes no difference to GDB, since the Library License
7345grants all the rights from the General Public License.
7346
7347 * Documentation
7348
7349The file gdb-4.7/gdb/doc/stabs.texinfo is a (relatively) complete
7350reference to the stabs symbol info used by the debugger. It is (as far
7351as we know) the only published document on this fascinating topic. We
7352encourage you to read it, compare it to the stabs information on your
7353system, and send improvements on the document in general (to
7354bug-gdb@prep.ai.mit.edu).
7355
7356And, of course, many bugs have been fixed.
7357
7358
7359*** Changes in GDB-4.6:
7360
7361 * Better support for C++ function names
7362
7363GDB now accepts as input the "demangled form" of C++ overloaded function
7364names 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
7366single quotes. Examples are 'func (int, long)' and 'obj::operator==(obj&)'.
7367Make use of command completion, it is your friend.
7368
7369GDB also now accepts a variety of C++ mangled symbol formats. They are
7370the GNU g++ style, the Cfront (ARM) style, and the Lucid (lcc) style.
7371You can tell GDB which format to use by doing a 'set demangle-style {gnu,
7372lucid, cfront, auto}'. 'gnu' is the default. Do a 'set demangle-style foo'
7373for the list of formats.
7374
7375 * G++ symbol mangling problem
7376
7377Recent versions of gcc have a bug in how they emit debugging information for
7378C++ methods (when using dbx-style stabs). The file 'gcc.patch' (in this
7379directory) can be applied to gcc to fix the problem. Alternatively, if you
82f06518 7380can't fix gcc, you can #define GCC_MANGLE_BUG when compiling gdb/symtab.c. The
c906108c
SS
7381usual symptom is difficulty with setting breakpoints on methods. GDB complains
7382about the method being non-existent. (We believe that version 2.2.2 of GCC has
7383this problem.)
7384
7385 * New 'maintenance' command
7386
7387All of the commands related to hacking GDB internals have been moved out of
7388the main command set, and now live behind the 'maintenance' command. This
7389can 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
7398The 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
7406We 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
7408be set, which will apply during the symbol reading. The ./.gdbinit is still
7409read after argv processing.
7410
7411 * New hosts supported
7412
7413Solaris-2.0 !!! sparc-sun-solaris2 or sun4sol2
7414
55241689 7415GNU/Linux support i386-unknown-linux or linux
c906108c
SS
7416
7417We are also including code to support the HP/PA running BSD and HPUX. This
7418is almost guaranteed not to work, as we didn't have time to test or build it
7419for this release. We are including it so that the more adventurous (or
7420masochistic) of you can play with it. We also had major problems with the
7421fact that the compiler that we got from HP doesn't support the -g option.
7422It costs extra.
7423
7424 * New targets supported
7425
7426Hitachi H8/300 h8300-hitachi-hms or h8300hms
7427
7428 * More smarts about finding #include files
7429
7430GDB now remembers the compilation directory for all include files, and for
7431all files from which C is generated (like yacc and lex sources). This
7432greatly improves GDB's ability to find yacc/lex sources, and include files,
7433especially if you are debugging your program from a directory different from
7434the one that contains your sources.
7435
7436We also fixed a bug which caused difficulty with listing and setting
7437breakpoints in include files which contain C code. (In the past, you had to
7438try twice in order to list an include file that you hadn't looked at before.)
7439
7440 * Interesting infernals change
7441
7442GDB now deals with arbitrary numbers of sections, where the symbols for each
7443section must be relocated relative to that section's landing place in the
7444target's address space. This work was needed to support ELF with embedded
7445stabs used by Solaris-2.0.
7446
7447 * Bug fixes (of course!)
7448
7449There 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
7453See the ChangeLog for details.
7454
7455*** Changes in GDB-4.5:
7456
7457 * New machines supported (host and target)
7458
7459IBM RS6000 running AIX rs6000-ibm-aix or rs6000
7460
7461SGI Irix-4.x mips-sgi-irix4 or iris4
7462
7463 * New malloc package
7464
7465GDB now uses a new memory manager called mmalloc, based on gmalloc.
82f06518 7466Mmalloc is capable of handling multiple heaps of memory. It is also
c906108c
SS
7467capable of saving a heap to a file, and then mapping it back in later.
7468This can be used to greatly speedup the startup of GDB by using a
7469pre-parsed symbol table which lives in a mmalloc managed heap. For
7470more details, please read mmalloc/mmalloc.texi.
7471
7472 * info proc
7473
7474The '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
7479The code that reads MIPS symbol table format is now supported on all hosts.
7480Thanks to MIPS for releasing the sym.h and symconst.h files to make this
7481possible.
7482
7483 * File name changes for MS-DOS
7484
7485Many files in the config directories have been renamed to make it easier to
7486support GDB on MS-DOSe systems (which have very restrictive file name
7487conventions :-( ). MS-DOSe host support (under DJ Delorie's GO32
7488environment) is close to working but has some remaining problems. Note
7489that debugging of DOS programs is not supported, due to limitations
7490in the ``operating system'', but it can be used to host cross-debugging.
7491
7492 * Cross byte order fixes
7493
7494Many fixes have been made to support cross debugging of Sparc and MIPS
7495targets from hosts whose byte order differs.
7496
7497 * New -mapped and -readnow options
7498
7499If memory-mapped files are available on your system through the 'mmap'
7500system call, you can use the -mapped option on the `file' or
7501`symbol-file' commands to cause GDB to write the symbols from your
7502program into a reusable file. If the program you are debugging is
7503called `/path/fred', the mapped symbol file will be `./fred.syms'.
7504Future GDB debugging sessions will notice the presence of this file,
7505and will quickly map in symbol information from it, rather than reading
7506the symbol table from the executable program. Using the '-mapped'
7507option in a GDB `file' or `symbol-file' command has the same effect as
7508starting GDB with the '-mapped' command-line option.
7509
7510You can cause GDB to read the entire symbol table immediately by using
7511the '-readnow' option with any of the commands that load symbol table
7512information (or on the GDB command line). This makes the command
7513slower, but makes future operations faster.
7514
7515The -mapped and -readnow options are typically combined in order to
7516build a `fred.syms' file that contains complete symbol information.
7517A simple GDB invocation to do nothing but build a `.syms' file for future
7518use is:
7519
7520 gdb -batch -nx -mapped -readnow programname
7521
7522The `.syms' file is specific to the host machine on which GDB is run.
7523It holds an exact image of GDB's internal symbol table. It cannot be
7524shared across multiple host platforms.
7525
7526 * longjmp() handling
7527
7528GDB is now capable of stepping and nexting over longjmp(), _longjmp(), and
7529siglongjmp() without losing control. This feature has not yet been ported to
7530all systems. It currently works on many 386 platforms, all MIPS-based
7531platforms (SGI, DECstation, etc), and Sun3/4.
7532
7533 * Solaris 2.0
7534
7535Preliminary work has been put in to support the new Solaris OS from Sun. At
7536this time, it can control and debug processes, but it is not capable of
7537reading symbols.
7538
7539 * Bug fixes
7540
7541As always, many many bug fixes. The major areas were with g++, and mipsread.
7542People using the MIPS-based platforms should experience fewer mysterious
7543crashes and trashed symbol tables.
7544
7545*** Changes in GDB-4.4:
7546
7547 * New machines supported (host and target)
7548
7549SCO Unix on i386 IBM PC clones i386-sco-sysv or i386sco
7550 (except core files)
7551BSD Reno on Vax vax-dec-bsd
7552Ultrix on Vax vax-dec-ultrix
7553
7554 * New machines supported (target)
7555
7556AMD 29000 embedded, using EBMON a29k-none-none
7557
7558 * C++ support
7559
7560GDB continues to improve its handling of C++. `References' work better.
7561The demangler has also been improved, and now deals with symbols mangled as
7562per the Annotated C++ Reference Guide.
7563
7564GDB also now handles `stabs' symbol information embedded in MIPS
7565`ecoff' symbol tables. Since the ecoff format was not easily
7566extensible to handle new languages such as C++, this appeared to be a
7567good way to put C++ debugging info into MIPS binaries. This option
7568will be supported in the GNU C compiler, version 2, when it is
7569released.
7570
7571 * New features for SVR4
7572
7573GDB now handles SVR4 shared libraries, in the same fashion as SunOS
7574shared libraries. Debugging dynamically linked programs should present
7575only minor differences from debugging statically linked programs.
7576
7577The `info proc' command will print out information about any process
7578on an SVR4 system (including the one you are debugging). At the moment,
7579it prints the address mappings of the process.
7580
7581If you bring up GDB on another SVR4 system, please send mail to
7582bug-gdb@prep.ai.mit.edu to let us know what changes were reqired (if any).
7583
7584 * Better dynamic linking support in SunOS
7585
7586Reading symbols from shared libraries which contain debugging symbols
7587now works properly. However, there remain issues such as automatic
7588skipping of `transfer vector' code during function calls, which
7589make it harder to debug code in a shared library, than to debug the
7590same code linked statically.
7591
7592 * New Getopt
7593
7594GDB is now using the latest `getopt' routines from the FSF. This
7595version accepts the -- prefix for options with long names. GDB will
7596continue to accept the old forms (-option and +option) as well.
7597Various single letter abbreviations for options have been explicity
7598added to the option table so that they won't get overshadowed in the
7599future by other options that begin with the same letter.
7600
7601 * Bugs fixed
7602
7603The `cleanup_undefined_types' bug that many of you noticed has been squashed.
7604Many assorted bugs have been handled. Many more remain to be handled.
7605See 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
7612Amiga 3000 running Amix m68k-cbm-svr4 or amix
7613NCR 3000 386 running SVR4 i386-ncr-svr4 or ncr3000
7614Motorola Delta 88000 running Sys V m88k-motorola-sysv or delta88
7615
7616 * Almost SCO Unix support
7617
7618We had hoped to support:
7619SCO 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
7621that it has problems with process groups that render gdb unusable. Sorry
7622about that. I encourage people to fix it and post the fixes.
7623
7624 * Preliminary ELF and DWARF support
7625
7626GDB can read ELF object files on System V Release 4, and can handle
7627debugging records for C, in DWARF format, in ELF files. This support
7628is preliminary. If you bring up GDB on another SVR4 system, please
7629send mail to bug-gdb@prep.ai.mit.edu to let us know what changes were
7630reqired (if any).
7631
7632 * New Readline
7633
7634GDB now uses the latest `readline' library. One user-visible change
7635is that two tabs will list possible command completions, which previously
7636required typing M-? (meta-question mark, or ESC ?).
7637
7638 * Bugs fixed
7639
7640The `stepi' bug that many of you noticed has been squashed.
7641Many bugs in C++ have been handled. Many more remain to be handled.
7642See the various ChangeLog files (primarily in gdb and bfd) for details.
7643
7644 * State of the MIPS world (in case you wondered):
7645
7646GDB can understand the symbol tables emitted by the compilers
7647supplied by most vendors of MIPS-based machines, including DEC. These
7648symbol tables are in a format that essentially nobody else uses.
7649
7650Some versions of gcc come with an assembler post-processor called
7651mips-tfile. This program is required if you want to do source-level
7652debugging of gcc-compiled programs. I believe FSF does not ship
7653mips-tfile with gcc version 1, but it will eventually come with gcc
7654version 2.
7655
7656Debugging of g++ output remains a problem. g++ version 1.xx does not
7657really support it at all. (If you're lucky, you should be able to get
7658line numbers and stack traces to work, but no parameters or local
7659variables.) With some work it should be possible to improve the
7660situation somewhat.
7661
7662When gcc version 2 is released, you will have somewhat better luck.
7663However, even then you will get confusing results for inheritance and
7664methods.
7665
7666We will eventually provide full debugging of g++ output on
7667DECstations. This will probably involve some kind of stabs-in-ecoff
7668encapulation, but the details have not been worked out yet.
7669
7670
7671*** Changes in GDB-4.2:
7672
7673 * Improved configuration
7674
7675Only one copy of `configure' exists now, and it is not self-modifying.
7676Porting BFD is simpler.
7677
7678 * Stepping improved
7679
7680The `step' and `next' commands now only stop at the first instruction
7681of a source line. This prevents the multiple stops that used to occur
7682in switch statements, for-loops, etc. `Step' continues to stop if a
7683function that has debugging information is called within the line.
7684
7685 * Bug fixing
7686
7687Lots of small bugs fixed. More remain.
7688
7689 * New host supported (not target)
7690
7691Intel 386 PC clone running Mach i386-none-mach
7692
7693
7694*** Changes in GDB-4.1:
7695
7696 * Multiple source language support
7697
7698GDB now has internal scaffolding to handle several source languages.
7699It determines the type of each source file from its filename extension,
7700and will switch expression parsing and number formatting to match the
7701language of the function in the currently selected stack frame.
7702You 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
7707GDB now has preliminary support for the GNU Modula-2 compiler,
7708currently under development at the State University of New York at
7709Buffalo. Development of both GDB and the GNU Modula-2 compiler will
7710continue through the fall of 1991 and into 1992.
7711
7712Other Modula-2 compilers are currently not supported, and attempting to
7713debug programs compiled with them will likely result in an error as the
7714symbol table is read. Feel free to work on it, though!
7715
7716There are hooks in GDB for strict type checking and range checking,
7717in the `Modula-2 philosophy', but they do not currently work.
7718
7719 * set write on/off
7720
7721GDB can now write to executable and core files (e.g. patch
7722a variable's value). You must turn this switch on, specify
7723the file ("exec foo" or "core foo"), *then* modify it, e.g.
7724by assigning a new value to a variable. Modifications take
7725effect immediately.
7726
7727 * Automatic SunOS shared library reading
7728
7729When you run your program, GDB automatically determines where its
7730shared libraries (if any) have been loaded, and reads their symbols.
7731The `share' command is no longer needed. This also works when
7732examining core files.
7733
7734 * set listsize
7735
7736You can specify the number of lines that the `list' command shows.
7737The default is 10.
7738
7739 * New machines supported (host and target)
7740
7741SGI Iris (MIPS) running Irix V3: mips-sgi-irix or iris
7742Sony NEWS (68K) running NEWSOS 3.x: m68k-sony-sysv or news
7743Ultracomputer (29K) running Sym1: a29k-nyu-sym1 or ultra3
7744
7745 * New hosts supported (not targets)
7746
7747IBM RT/PC: romp-ibm-aix or rtpc
7748
7749 * New targets supported (not hosts)
7750
7751AMD 29000 embedded with COFF a29k-none-coff
7752AMD 29000 embedded with a.out a29k-none-aout
7753Ultracomputer remote kernel debug a29k-nyu-kern
7754
7755 * New remote interfaces
7756
7757AMD 29000 Adapt
7758AMD 29000 Minimon
7759
7760
7761*** Changes in GDB-4.0:
7762
7763 * New Facilities
7764
7765Wide output is wrapped at good places to make the output more readable.
7766
7767Gdb now supports cross-debugging from a host machine of one type to a
7768target machine of another type. Communication with the target system
7769is over serial lines. The ``target'' command handles connecting to the
7770remote system; the ``load'' command will download a program into the
7771remote system. Serial stubs for the m68k and i386 are provided. Gdb
7772also supports debugging of realtime processes running under VxWorks,
7773using SunRPC Remote Procedure Calls over TCP/IP to talk to a debugger
7774stub on the target system.
7775
7776New CPUs supported include the AMD 29000 and Intel 960.
7777
7778GDB now reads object files and symbol tables via a ``binary file''
7779library, which allows a single copy of GDB to debug programs of multiple
7780object file types such as a.out and coff.
7781
7782There is now a GDB reference card in "doc/refcard.tex". (Make targets
7783refcard.dvi and refcard.ps are available to format it).
7784
7785
7786 * Control-Variable user interface simplified
7787
7788All variables that control the operation of the debugger can be set
7789by the ``set'' command, and displayed by the ``show'' command.
7790
7791For example, ``set prompt new-gdb=>'' will change your prompt to new-gdb=>.
7792``Show prompt'' produces the response:
7793Gdb's prompt is new-gdb=>.
7794
7795What follows are the NEW set commands. The command ``help set'' will
7796print a complete list of old and new set commands. ``help set FOO''
7797will give a longer description of the variable FOO. ``show'' will show
7798all of the variable descriptions and their current settings.
7799
7800confirm 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
7804editing 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
7810history 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
7815history 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
7819history 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
7823history 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
7827radix 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
7831height 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
7836width 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
7841Note: ``set screensize'' is obsolete. Use ``set height'' and
7842``set width'' instead.
7843
7844print 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
7849print array on/off: Prettyprint arrays. New convenient format! Default
7850 is OFF.
7851
7852print demangle on/off: Print C++ symbols in "source" form if on,
7853 "raw" form if off.
7854
7855print asm-demangle on/off: Same, for assembler level printouts
7856 like instructions.
7857
7858print vtbl on/off: Prettyprint C++ virtual function tables. Default is OFF.
7859
7860
7861 * Support for Epoch Environment.
7862
7863The epoch environment is a version of Emacs v18 with windowing. One
7864new command, ``inspect'', is identical to ``print'', except that if you
7865are running in the epoch environment, the value is printed in its own
7866window.
7867
7868
7869 * Support for Shared Libraries
7870
7871GDB can now debug programs and core files that use SunOS shared libraries.
7872Symbols from a shared library cannot be referenced
7873before the shared library has been linked with the program (this
7874happens after you type ``run'' and before the function main() is entered).
7875At any time after this linking (including when examining core files
7876from dynamically linked programs), gdb reads the symbols from each
7877shared library when you type the ``sharedlibrary'' command.
7878It can be abbreviated ``share''.
7879
7880sharedlibrary 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
7884info sharedlibrary: Status of loaded shared libraries.
7885
7886
7887 * Watchpoints
7888
7889A watchpoint stops execution of a program whenever the value of an
7890expression changes. Checking for this slows down execution
7891tremendously whenever you are in the scope of the expression, but is
7892quite useful for catching tough ``bit-spreader'' or pointer misuse
7893problems. Some machines such as the 386 have hardware for doing this
7894more quickly, and future versions of gdb will use this hardware.
7895
7896watch EXP: Set a watchpoint (breakpoint) for an expression.
7897
7898info watchpoints: Information about your watchpoints.
7899
7900delete N: Deletes watchpoint number N (same as breakpoints).
7901disable N: Temporarily turns off watchpoint number N (same as breakpoints).
7902enable N: Re-enables watchpoint number N (same as breakpoints).
7903
7904
7905 * C++ multiple inheritance
7906
7907When used with a GCC version 2 compiler, GDB supports multiple inheritance
7908for C++ programs.
7909
7910 * C++ exception handling
7911
7912Gdb now supports limited C++ exception handling. Besides the existing
7913ability to breakpoint on an exception handler, gdb can breakpoint on
7914the raising of an exception (before the stack is peeled back to the
7915handler's context).
7916
7917catch 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
7921info catch: Lists all exceptions which may be caught in the
7922 current stack frame.
7923
7924
7925 * Minor command changes
7926
7927The command ``call func (arg, arg, ...)'' now acts like the print
7928command, except it does not print or save a value if the function's result
7929is void. This is similar to dbx usage.
7930
7931The ``up'' and ``down'' commands now always print the frame they end up
7932at; ``up-silently'' and `down-silently'' can be used in scripts to change
7933frames without printing.
7934
7935 * New directory command
7936
7937'dir' now adds directories to the FRONT of the source search path.
7938The path starts off empty. Source files that contain debug information
7939about the directory in which they were compiled can be found even
7940with an empty path; Sun CC and GCC include this information. If GDB can't
7941find your source file in the current directory, type "dir .".
7942
7943 * Configuring GDB for compilation
7944
7945For normal use, type ``./configure host''. See README or gdb.texinfo
7946for more details.
7947
7948GDB now handles cross debugging. If you are remotely debugging between
7949two different machines, type ``./configure host -target=targ''.
7950Host is the machine where GDB will run; targ is the machine
7951where the program that you are debugging will run.
This page took 1.5397 seconds and 4 git commands to generate.