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