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