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