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