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