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