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