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