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