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