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