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