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