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