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