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