]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/NEWS
gdb/
[thirdparty/binutils-gdb.git] / gdb / NEWS
CommitLineData
c906108c
SS
1 What has changed in GDB?
2 (Organized release by release)
3
bfbf3774
JB
4*** Changes since GDB 7.1
5
711e434b
PM
6* Windows Thread Information Block access.
7
8 On Windows targets, GDB now supports displaying the Windows Thread
9 Information Block (TIB) structure. This structure is visible either
10 by using the new command `info w32 thread-information-block' or, by
11 dereferencing the new convenience variable named `$_tlb', a
12 thread-specific pointer to the TIB. This feature is also supported
13 when remote debugging using GDBserver.
14
15* New remote packets
16
17qGetTIBAddr
18
19 Return the address of the Windows Thread Information Block of a given thread.
20
dde08ee1
PA
21qRelocInsn
22
23 In response to several of the tracepoint packets, the target may now
24 also respond with a number of intermediate `qRelocInsn' request
25 packets before the final result packet, to have GDB handle
26 relocating an instruction to execute at a different address. This
27 is particularly useful for stubs that support fast tracepoints. GDB
28 reports support for this feature in the qSupported packet.
29
3f7b2faa
DE
30* The source command now accepts a -s option to force searching for the
31 script in the source search path even if the script name specifies
32 a directory.
33
d337e9f0
PA
34* New features in the GDB remote stub, GDBserver
35
fa593d66
PA
36 - GDBserver now support tracepoints (including fast tracepoints).
37 The feature is currently supported by the i386-linux and
38 amd64-linux builds. See the "Tracepoints support in gdbserver"
39 section in the manual for more information.
d337e9f0 40
c24d0242
PM
41 - GDBserver now supports x86_64 Windows 64-bit debugging.
42
c8d5aac9
L
43* GDB now sends xmlRegisters= in qSupported packet to indicate that
44 it understands register description.
45
7c953934
TT
46* The --batch flag now disables pagination and queries.
47
8685c86f
L
48* X86 general purpose registers
49
50 GDB now supports reading/writing byte, word and double-word x86
51 general purpose registers directly. This means you can use, say,
52 $ah or $ax to refer, respectively, to the byte register AH and
53 16-bit word register AX that are actually portions of the 32-bit
54 register EAX or 64-bit register RAX.
55
95a42b64 56* The `commands' command now accepts a range of breakpoints to modify.
86b17b60
PA
57 A plain `commands' following a command that creates multiple
58 breakpoints affects all the breakpoints set by that command. This
59 applies to breakpoints set by `rbreak', and also applies when a
60 single `break' command creates multiple breakpoints (e.g.,
61 breakpoints on overloaded c++ functions).
95a42b64 62
8bd10a10
CM
63* The `rbreak' command now accepts a filename specification as part of
64 its argument, limiting the functions selected by the regex to those
65 in the specified file.
66
ab38a727
PA
67* Support for remote debugging Windows and SymbianOS shared libraries
68 from Unix hosts has been improved. Non Windows GDB builds now can
69 understand target reported file names that follow MS-DOS based file
70 system semantics, such as file names that include drive letters and
71 use the backslash character as directory separator. This makes it
72 possible to transparently use the "set sysroot" and "set
73 solib-search-path" on Unix hosts to point as host copies of the
74 target's shared libraries. See the new command "set
75 target-file-system-kind" described below, and the "Commands to
76 specify files" section in the user manual for more information.
77
6149aea9
PA
78* New commands
79
ab38a727
PA
80set target-file-system-kind unix|dos-based|auto
81show target-file-system-kind
82 Set or show the assumed file system kind for target reported file
83 names.
84
6149aea9
PA
85save breakpoints <filename>
86 Save all current breakpoint definitions to a file suitable for use
87 in a later debugging session. To read the saved breakpoint
88 definitions, use the `source' command.
89
90`save tracepoints' is a new alias for `save-tracepoints'. The latter
91is now deprecated.
92
f3e9a817
PM
93* Python scripting
94
adc36818 95** The GDB Python API now has access to breakpoints, symbols, symbol
d7b32ed3
PM
96 tables, program spaces, and frame's code blocks. Additionally, GDB
97 Parameters can now be created from the API, and manipulated via
98 set/show in the CLI.
f870a310 99
fa33c3cd 100** New functions gdb.target_charset, gdb.target_wide_charset,
07ca107c
DE
101 gdb.progspaces, gdb.current_progspace, and gdb.string_to_argv.
102
103** New exception gdb.GdbError.
fa33c3cd
DE
104
105** Pretty-printers are now also looked up in the current program space.
f3e9a817 106
8a1ea21f
DE
107** GDB now looks for names of Python scripts to auto-load in a
108 special section named `.debug_gdb_scripts', in addition to looking
109 for a OBJFILE-gdb.py script when OBJFILE is read by the debugger.
110
a7bdde9e
VP
111* Tracepoint actions were unified with breakpoint commands. In particular,
112there are no longer differences in "info break" output for breakpoints and
113tracepoints and the "commands" command can be used for both tracepoints and
114regular breakpoints.
115
05071a4d
PA
116* New targets
117
118ARM Symbian arm*-*-symbianelf*
119
6aecb9c2
JB
120* D language support.
121 GDB now supports debugging programs written in the D programming
122 language.
123
bfbf3774 124*** Changes in GDB 7.1
abc7453d 125
4eef138c
TT
126* C++ Improvements
127
128 ** Namespace Support
71dee663
SW
129
130 GDB now supports importing of namespaces in C++. This enables the
131 user to inspect variables from imported namespaces. Support for
132 namepace aliasing has also been added. So, if a namespace is
133 aliased in the current scope (e.g. namepace C=A; ) the user can
134 print variables using the alias (e.g. (gdb) print C::x).
135
4eef138c
TT
136 ** Bug Fixes
137
138 All known bugs relating to the printing of virtual base class were
139 fixed. It is now possible to call overloaded static methods using a
140 qualified name.
141
142 ** Cast Operators
143
144 The C++ cast operators static_cast<>, dynamic_cast<>, const_cast<>,
145 and reinterpret_cast<> are now handled by the C++ expression parser.
146
2d1c1221
ME
147* New targets
148
149Xilinx MicroBlaze microblaze-*-*
34207b9e 150Renesas RX rx-*-elf
2d1c1221
ME
151
152* New Simulators
153
154Xilinx MicroBlaze microblaze
34207b9e 155Renesas RX rx
2d1c1221 156
6c95b8df
PA
157* Multi-program debugging.
158
159 GDB now has support for multi-program (a.k.a. multi-executable or
160 multi-exec) debugging. This allows for debugging multiple inferiors
161 simultaneously each running a different program under the same GDB
162 session. See "Debugging Multiple Inferiors and Programs" in the
163 manual for more information. This implied some user visible changes
164 in the multi-inferior support. For example, "info inferiors" now
165 lists inferiors that are not running yet or that have exited
166 already. See also "New commands" and "New options" below.
167
d5551862
SS
168* New tracing features
169
170 GDB's tracepoint facility now includes several new features:
171
172 ** Trace state variables
f61e138d
SS
173
174 GDB tracepoints now include support for trace state variables, which
175 are variables managed by the target agent during a tracing
176 experiment. They are useful for tracepoints that trigger each
177 other, so for instance one tracepoint can count hits in a variable,
178 and then a second tracepoint has a condition that is true when the
179 count reaches a particular value. Trace state variables share the
180 $-syntax of GDB convenience variables, and can appear in both
181 tracepoint actions and condition expressions. Use the "tvariable"
182 command to create, and "info tvariables" to view; see "Trace State
183 Variables" in the manual for more detail.
7a697b8d 184
d5551862 185 ** Fast tracepoints
7a697b8d
SS
186
187 GDB now includes an option for defining fast tracepoints, which
188 targets may implement more efficiently, such as by installing a jump
189 into the target agent rather than a trap instruction. The resulting
190 speedup can be by two orders of magnitude or more, although the
191 tradeoff is that some program locations on some target architectures
192 might not allow fast tracepoint installation, for instance if the
193 instruction to be replaced is shorter than the jump. To request a
194 fast tracepoint, use the "ftrace" command, with syntax identical to
195 the regular trace command.
196
d5551862
SS
197 ** Disconnected tracing
198
199 It is now possible to detach GDB from the target while it is running
200 a trace experiment, then reconnect later to see how the experiment
201 is going. In addition, a new variable disconnected-tracing lets you
202 tell the target agent whether to continue running a trace if the
203 connection is lost unexpectedly.
204
00bf0b85
SS
205 ** Trace files
206
207 GDB now has the ability to save the trace buffer into a file, and
208 then use that file as a target, similarly to you can do with
209 corefiles. You can select trace frames, print data that was
210 collected in them, and use tstatus to display the state of the
211 tracing run at the moment that it was saved. To create a trace
212 file, use "tsave <filename>", and to use it, do "target tfile
213 <name>".
4daf5ac0
SS
214
215 ** Circular trace buffer
216
217 You can ask the target agent to handle the trace buffer as a
218 circular buffer, discarding the oldest trace frames to make room for
219 newer ones, by setting circular-trace-buffer to on. This feature may
220 not be available for all target agents.
221
21a0512e
PP
222* Changed commands
223
224disassemble
225 The disassemble command, when invoked with two arguments, now requires
226 the arguments to be comma-separated.
227
0fe7935b
DJ
228info variables
229 The info variables command now displays variable definitions. Files
230 which only declare a variable are not shown.
231
fb2e7cb4
JB
232source
233 The source command is now capable of sourcing Python scripts.
234 This feature is dependent on the debugger being build with Python
235 support.
236
237 Related to this enhancement is also the introduction of a new command
238 "set script-extension" (see below).
239
6c95b8df
PA
240* New commands (for set/show, see "New options" below)
241
399cd161
MS
242record save [<FILENAME>]
243 Save a file (in core file format) containing the process record
244 execution log for replay debugging at a later time.
245
246record restore <FILENAME>
247 Restore the process record execution log that was saved at an
248 earlier time, for replay debugging.
249
6c95b8df
PA
250add-inferior [-copies <N>] [-exec <FILENAME>]
251 Add a new inferior.
252
253clone-inferior [-copies <N>] [ID]
254 Make a new inferior ready to execute the same program another
255 inferior has loaded.
256
257remove-inferior ID
258 Remove an inferior.
259
260maint info program-spaces
261 List the program spaces loaded into GDB.
262
9a7071a8
JB
263set remote interrupt-sequence [Ctrl-C | BREAK | BREAK-g]
264show remote interrupt-sequence
265 Allow the user to select one of ^C, a BREAK signal or BREAK-g
266 as the sequence to the remote target in order to interrupt the execution.
267 Ctrl-C is a default. Some system prefers BREAK which is high level of
268 serial line for some certain time. Linux kernel prefers BREAK-g, a.k.a
269 Magic SysRq g. It is BREAK signal and character 'g'.
270
271set remote interrupt-on-connect [on | off]
272show remote interrupt-on-connect
273 When interrupt-on-connect is ON, gdb sends interrupt-sequence to
274 remote target when gdb connects to it. This is needed when you debug
275 Linux kernel.
276
277set remotebreak [on | off]
278show remotebreak
279Deprecated. Use "set/show remote interrupt-sequence" instead.
280
f61e138d
SS
281tvariable $NAME [ = EXP ]
282 Create or modify a trace state variable.
283
284info tvariables
285 List trace state variables and their values.
286
287delete tvariable $NAME ...
288 Delete one or more trace state variables.
289
6da95a67
SS
290teval EXPR, ...
291 Evaluate the given expressions without collecting anything into the
292 trace buffer. (Valid in tracepoint actions only.)
293
7a697b8d
SS
294ftrace FN / FILE:LINE / *ADDR
295 Define a fast tracepoint at the given function, line, or address.
296
b0f02ee9
JK
297* New expression syntax
298
299 GDB now parses the 0b prefix of binary numbers the same way as GCC does.
300 GDB now parses 0b101010 identically with 42.
301
6c95b8df
PA
302* New options
303
304set follow-exec-mode new|same
305show follow-exec-mode
306 Control whether GDB reuses the same inferior across an exec call or
307 creates a new one. This is useful to be able to restart the old
308 executable after the inferior having done an exec call.
309
236f1d4d
SS
310set default-collect EXPR, ...
311show default-collect
312 Define a list of expressions to be collected at each tracepoint.
313 This is a useful way to ensure essential items are not overlooked,
314 such as registers or a critical global variable.
315
d5551862
SS
316set disconnected-tracing
317show disconnected-tracing
318 If set to 1, the target is instructed to continue tracing if it
319 loses its connection to GDB. If 0, the target is to stop tracing
320 upon disconnection.
321
4daf5ac0
SS
322set circular-trace-buffer
323show circular-trace-buffer
324 If set to on, the target is instructed to use a circular trace buffer
325 and discard the oldest trace frames instead of stopping the trace due
326 to a full trace buffer. If set to off, the trace stops when the buffer
327 fills up. Some targets may not support this.
328
fb2e7cb4
JB
329set script-extension off|soft|strict
330show script-extension
331 If set to "off", the debugger does not perform any script language
332 recognition, and all sourced files are assumed to be GDB scripts.
333 If set to "soft" (the default), files are sourced according to
334 filename extension, falling back to GDB scripts if the first
335 evaluation failed.
336 If set to "strict", files are sourced according to filename extension.
337
2b71fc8e
JB
338set ada trust-PAD-over-XVS on|off
339show ada trust-PAD-over-XVS
340 If off, activate a workaround against a bug in the debugging information
341 generated by the compiler for PAD types (see gcc/exp_dbug.ads in
342 the GCC sources for more information about the GNAT encoding and
343 PAD types in particular). It is always safe to set this option to
344 off, but this introduces a slight performance penalty. The default
345 is on.
346
de2e5182
TT
347* Python API Improvements
348
349 ** GDB provides the new class gdb.LazyString. This is useful in
350 some pretty-printing cases. The new method gdb.Value.lazy_string
351 provides a simple way to create objects of this type.
352
353 ** The fields returned by gdb.Type.fields now have an
354 `is_base_class' attribute.
355
356 ** The new method gdb.Type.range returns the range of an array type.
357
358 ** The new method gdb.parse_and_eval can be used to parse and
359 evaluate an expression.
360
f61e138d
SS
361* New remote packets
362
363QTDV
364 Define a trace state variable.
365
366qTV
367 Get the current value of a trace state variable.
368
d5551862
SS
369QTDisconnected
370 Set desired tracing behavior upon disconnection.
371
4daf5ac0
SS
372QTBuffer:circular
373 Set the trace buffer to be linear or circular.
374
d5551862
SS
375qTfP, qTsP
376 Get data about the tracepoints currently in use.
377
2d483d34
MS
378* Bug fixes
379
380Process record now works correctly with hardware watchpoints.
381
6e0e5977
JB
382Multiple bug fixes have been made to the mips-irix port, making it
383much more reliable. In particular:
384 - Debugging threaded applications is now possible again. Previously,
385 GDB would hang while starting the program, or while waiting for
386 the program to stop at a breakpoint.
387 - Attaching to a running process no longer hangs.
388 - An error occurring while loading a core file has been fixed.
389 - Changing the value of the PC register now works again. This fixes
390 problems observed when using the "jump" command, or when calling
391 a function from GDB, or even when assigning a new value to $pc.
392 - With the "finish" and "return" commands, the return value for functions
393 returning a small array is now correctly printed.
394 - It is now possible to break on shared library code which gets executed
395 during a shared library init phase (code executed while executing
396 their .init section). Previously, the breakpoint would have no effect.
397 - GDB is now able to backtrace through the signal handler for
398 non-threaded programs.
399
93c26624
JK
400PIE (Position Independent Executable) programs debugging is now supported.
401This includes debugging execution of PIC (Position Independent Code) shared
402libraries although for that, it should be possible to run such libraries as an
403executable program.
404
abc7453d 405*** Changes in GDB 7.0
75feb17d 406
4efc6507
DE
407* GDB now has an interface for JIT compilation. Applications that
408dynamically generate code can create symbol files in memory and register
409them with GDB. For users, the feature should work transparently, and
410for JIT developers, the interface is documented in the GDB manual in the
411"JIT Compilation Interface" chapter.
412
782b2b07
SS
413* Tracepoints may now be conditional. The syntax is as for
414breakpoints; either an "if" clause appended to the "trace" command,
415or the "condition" command is available. GDB sends the condition to
416the target for evaluation using the same bytecode format as is used
417for tracepoint actions.
418
e6158f16 419* "disassemble" command with a /r modifier, print the raw instructions
7280022e 420in hex as well as in symbolic form.
e6158f16 421
e7a8dbfb
HZ
422* Process record and replay
423
424 In a architecture environment that supports ``process record and
425 replay'', ``process record and replay'' target can record a log of
426 the process execution, and replay it with both forward and reverse
427 execute commands.
428
64644d9b
MS
429* Reverse debugging: GDB now has new commands reverse-continue, reverse-
430step, reverse-next, reverse-finish, reverse-stepi, reverse-nexti, and
431set execution-direction {forward|reverse}, for targets that support
432reverse execution.
433
b9412953
DD
434* GDB now supports hardware watchpoints on MIPS/Linux systems. This
435feature is available with a native GDB running on kernel version
4362.6.28 or later.
437
6c7a06a3
TT
438* GDB now has support for multi-byte and wide character sets on the
439target. Strings whose character type is wchar_t, char16_t, or
440char32_t are now correctly printed. GDB supports wide- and unicode-
441literals in C, that is, L'x', L"string", u'x', u"string", U'x', and
442U"string" syntax. And, GDB allows the "%ls" and "%lc" formats in
443`printf'. This feature requires iconv to work properly; if your
444system does not have a working iconv, GDB can use GNU libiconv. See
445the installation instructions for more information.
446
f1838a98
UW
447* GDB now supports automatic retrieval of shared library files from
448remote targets. To use this feature, specify a system root that begins
449with the `remote:' prefix, either via the `set sysroot' command or via
450the `--with-sysroot' configure-time option.
451
55333a84
DE
452* "info sharedlibrary" now takes an optional regex of libraries to show,
453and it now reports if a shared library has no debugging information.
454
7f6a6314
PM
455* Commands `set debug-file-directory', `set solib-search-path' and `set args'
456now complete on file names.
457
65d12d83
TT
458* When completing in expressions, gdb will attempt to limit
459completions to allowable structure or union fields, where appropriate.
460For instance, consider:
461
462 # struct example { int f1; double f2; };
463 # struct example variable;
464 (gdb) p variable.
465
466If the user types TAB at the end of this command line, the available
467completions will be "f1" and "f2".
468
edb3359d
DJ
469* Inlined functions are now supported. They show up in backtraces, and
470the "step", "next", and "finish" commands handle them automatically.
471
2fae03e8
TT
472* GDB now supports the token-splicing (##) and stringification (#)
473operators when expanding macros. It also supports variable-arity
474macros.
475
47a3467a 476* GDB now supports inspecting extra signal information, exported by
58d6951d
DJ
477the new $_siginfo convenience variable. The feature is currently
478implemented on linux ARM, i386 and amd64.
479
480* GDB can now display the VFP floating point registers and NEON vector
481registers on ARM targets. Both ARM GNU/Linux native GDB and gdbserver
482can provide these registers (requires Linux 2.6.30 or later). Remote
483and simulator targets may also provide them.
47a3467a 484
08388c79
DE
485* New remote packets
486
487qSearch:memory:
488 Search memory for a sequence of bytes.
489
a6f3e723
SL
490QStartNoAckMode
491 Turn off `+'/`-' protocol acknowledgments to permit more efficient
492 operation over reliable transport links. Use of this packet is
493 controlled by the `set remote noack-packet' command.
494
d7713ae0
EZ
495vKill
496 Kill the process with the specified process ID. Use this in preference
497 to `k' when multiprocess protocol extensions are supported.
498
07e059b5
VP
499qXfer:osdata:read
500 Obtains additional operating system information
501
47a3467a
PA
502qXfer:siginfo:read
503qXfer:siginfo:write
504 Read or write additional signal information.
505
060871df
PA
506* Removed remote protocol undocumented extension
507
508 An undocumented extension to the remote protocol's `S' stop reply
509 packet that permited the stub to pass a process id was removed.
510 Remote servers should use the `T' stop reply packet instead.
511
d14508fe
DE
512* The "disassemble" command now supports an optional /m modifier to print mixed
513source+assembly.
514
c055b101 515* GDB now supports multiple function calling conventions according to the
a0ef4274 516DWARF-2 DW_AT_calling_convention function attribute.
c055b101
CV
517
518* The SH target utilizes the aforementioned change to distinguish between gcc
a0ef4274
DJ
519and Renesas calling convention. It also adds the new CLI commands
520`set/show sh calling-convention'.
c055b101 521
31fffb02
CS
522* GDB can now read compressed debug sections, as produced by GNU gold
523with the --compress-debug-sections=zlib flag.
524
88d8a8e0
JB
525* 64-bit core files are now supported on AIX.
526
7f99b190
JB
527* Thread switching is now supported on Tru64.
528
ccd213ac
DJ
529* Watchpoints can now be set on unreadable memory locations, e.g. addresses
530which will be allocated using malloc later in program execution.
531
1fddbabb 532* The qXfer:libraries:read remote procotol packet now allows passing a
31fffb02 533list of section offsets.
1fddbabb 534
a0ef4274
DJ
535* On GNU/Linux, GDB can now attach to stopped processes. Several race
536conditions handling signals delivered during attach or thread creation
537have also been fixed.
538
bfb8797a 539* GDB now supports the use of DWARF boolean types for Ada's type Boolean.
158c7665
PH
540From the user's standpoint, all unqualified instances of True and False
541are treated as the standard definitions, regardless of context.
bfb8797a 542
71c25dea
TT
543* GDB now parses C++ symbol and type names more flexibly. For
544example, given:
545
546 template<typename T> class C { };
547 C<char const *> c;
548
549GDB will now correctly handle all of:
550
551 ptype C<char const *>
552 ptype C<char const*>
553 ptype C<const char *>
554 ptype C<const char*>
555
ccd213ac
DJ
556* New features in the GDB remote stub, gdbserver
557
558 - The "--wrapper" command-line argument tells gdbserver to use a
559 wrapper program to launch programs for debugging.
560
7ae0e2a2
UW
561 - On PowerPC and S/390 targets, it is now possible to use a single
562 gdbserver executable to debug both 32-bit and 64-bit programs.
563 (This requires gdbserver itself to be built as a 64-bit executable.)
564
a6f3e723
SL
565 - gdbserver uses the new noack protocol mode for TCP connections to
566 reduce communications latency, if also supported and enabled in GDB.
567
da8bd9a3
DJ
568 - Support for the sparc64-linux-gnu target is now included in
569 gdbserver.
570
d70e31dd
DE
571 - The amd64-linux build of gdbserver now supports debugging both
572 32-bit and 64-bit programs.
573
574 - The i386-linux, amd64-linux, and i386-win32 builds of gdbserver
575 now support hardware watchpoints, and will use them automatically
576 as appropriate.
577
d57a3c85
TJB
578* Python scripting
579
580 GDB now has support for scripting using Python. Whether this is
581 available is determined at configure time.
582
d8906c6f
TJB
583 New GDB commands can now be written in Python.
584
aadc346a
JB
585* Ada tasking support
586
587 Ada tasks can now be inspected in GDB. The following commands have
588 been introduced:
589
590 info tasks
591 Print the list of Ada tasks.
592 info task N
593 Print detailed information about task number N.
594 task
595 Print the task number of the current task.
596 task N
597 Switch the context of debugging to task number N.
598
adb483fe
DJ
599* Support for user-defined prefixed commands. The "define" command can
600add new commands to existing prefixes, e.g. "target".
601
2277426b
PA
602* Multi-inferior, multi-process debugging.
603
604 GDB now has generalized support for multi-inferior debugging. See
605 "Debugging Multiple Inferiors" in the manual for more information.
606 Although availability still depends on target support, the command
607 set is more uniform now. The GNU/Linux specific multi-forks support
608 has been migrated to this new framework. This implied some user
609 visible changes; see "New commands" and also "Removed commands"
610 below.
611
08d16641
PA
612* Target descriptions can now describe the target OS ABI. See the
613"Target Description Format" section in the user manual for more
614information.
615
e35359c5
UW
616* Target descriptions can now describe "compatible" architectures
617to indicate that the target can execute applications for a different
618architecture in addition to those for the main target architecture.
619See the "Target Description Format" section in the user manual for
620more information.
621
85e747d2
UW
622* Multi-architecture debugging.
623
624 GDB now includes general supports for debugging applications on
625 hybrid systems that use more than one single processor architecture
626 at the same time. Each such hybrid architecture still requires
627 specific support to be added. The only hybrid architecture supported
628 in this version of GDB is the Cell Broadband Engine.
629
630* GDB now supports integrated debugging of Cell/B.E. applications that
631use both the PPU and SPU architectures. To enable support for hybrid
632Cell/B.E. debugging, you need to configure GDB to support both the
633powerpc-linux or powerpc64-linux and the spu-elf targets, using the
634--enable-targets configure option.
635
11ade57a
PA
636* Non-stop mode debugging.
637
638 For some targets, GDB now supports an optional mode of operation in
639 which you can examine stopped threads while other threads continue
640 to execute freely. This is referred to as non-stop mode, with the
641 old mode referred to as all-stop mode. See the "Non-Stop Mode"
642 section in the user manual for more information.
643
644 To be able to support remote non-stop debugging, a remote stub needs
645 to implement the non-stop mode remote protocol extensions, as
646 described in the "Remote Non-Stop" section of the user manual. The
647 GDB remote stub, gdbserver, has been adjusted to support these
648 extensions on linux targets.
649
d7713ae0 650* New commands (for set/show, see "New options" below)
75feb17d 651
a96d9b2e
SDJ
652catch syscall [NAME(S) | NUMBER(S)]
653 Catch system calls. Arguments, which should be names of system
654 calls or their numbers, mean catch only those syscalls. Without
655 arguments, every syscall will be caught. When the inferior issues
656 any of the specified syscalls, GDB will stop and announce the system
657 call, both when it is called and when its call returns. This
658 feature is currently available with a native GDB running on the
659 Linux Kernel, under the following architectures: x86, x86_64,
660 PowerPC and PowerPC64.
661
08388c79
DE
662find [/size-char] [/max-count] start-address, end-address|+search-space-size,
663 val1 [, val2, ...]
664 Search memory for a sequence of bytes.
665
d57a3c85
TJB
666maint set python print-stack
667maint show python print-stack
668 Show a stack trace when an error is encountered in a Python script.
669
670python [CODE]
671 Invoke CODE by passing it to the Python interpreter.
672
d7713ae0
EZ
673macro define
674macro list
675macro undef
676 These allow macros to be defined, undefined, and listed
677 interactively.
678
679info os processes
680 Show operating system information about processes.
681
2277426b
PA
682info inferiors
683 List the inferiors currently under GDB's control.
684
685inferior NUM
686 Switch focus to inferior number NUM.
687
688detach inferior NUM
689 Detach from inferior number NUM.
690
691kill inferior NUM
692 Kill inferior number NUM.
693
d7713ae0
EZ
694* New options
695
3285f3fe
UW
696set spu stop-on-load
697show spu stop-on-load
698 Control whether to stop for new SPE threads during Cell/B.E. debugging.
699
ff1a52c6
UW
700set spu auto-flush-cache
701show spu auto-flush-cache
702 Control whether to automatically flush the software-managed cache
703 during Cell/B.E. debugging.
704
d7713ae0
EZ
705set sh calling-convention
706show sh calling-convention
707 Control the calling convention used when calling SH target functions.
708
e0a3ce09 709set debug timestamp
75feb17d 710show debug timestamp
d7713ae0
EZ
711 Control display of timestamps with GDB debugging output.
712
713set disassemble-next-line
714show disassemble-next-line
715 Control display of disassembled source lines or instructions when
716 the debuggee stops.
717
718set remote noack-packet
719show remote noack-packet
720 Set/show the use of remote protocol QStartNoAckMode packet. See above
721 under "New remote packets."
722
723set remote query-attached-packet
724show remote query-attached-packet
725 Control use of remote protocol `qAttached' (query-attached) packet.
726
727set remote read-siginfo-object
728show remote read-siginfo-object
729 Control use of remote protocol `qXfer:siginfo:read' (read-siginfo-object)
730 packet.
731
732set remote write-siginfo-object
733show remote write-siginfo-object
734 Control use of remote protocol `qXfer:siginfo:write' (write-siginfo-object)
735 packet.
736
40ab02ce
MS
737set remote reverse-continue
738show remote reverse-continue
739 Control use of remote protocol 'bc' (reverse-continue) packet.
740
741set remote reverse-step
742show remote reverse-step
743 Control use of remote protocol 'bs' (reverse-step) packet.
744
d7713ae0
EZ
745set displaced-stepping
746show displaced-stepping
747 Control displaced stepping mode. Displaced stepping is a way to
748 single-step over breakpoints without removing them from the debuggee.
749 Also known as "out-of-line single-stepping".
750
751set debug displaced
752show debug displaced
753 Control display of debugging info for displaced stepping.
754
755maint set internal-error
756maint show internal-error
757 Control what GDB does when an internal error is detected.
758
759maint set internal-warning
760maint show internal-warning
761 Control what GDB does when an internal warning is detected.
75feb17d 762
ccd213ac
DJ
763set exec-wrapper
764show exec-wrapper
765unset exec-wrapper
766 Use a wrapper program to launch programs for debugging.
fa4727a6 767
aad4b048
JB
768set multiple-symbols (all|ask|cancel)
769show multiple-symbols
770 The value of this variable can be changed to adjust the debugger behavior
771 when an expression or a breakpoint location contains an ambiguous symbol
772 name (an overloaded function name, for instance).
773
74960c60
VP
774set breakpoint always-inserted
775show breakpoint always-inserted
776 Keep breakpoints always inserted in the target, as opposed to inserting
777 them when resuming the target, and removing them when the target stops.
778 This option can improve debugger performance on slow remote targets.
779
0428b8f5
DJ
780set arm fallback-mode (arm|thumb|auto)
781show arm fallback-mode
782set arm force-mode (arm|thumb|auto)
783show arm force-mode
784 These commands control how ARM GDB determines whether instructions
785 are ARM or Thumb. The default for both settings is auto, which uses
786 the current CPSR value for instructions without symbols; previous
787 versions of GDB behaved as if "set arm fallback-mode arm".
788
10568435
JK
789set disable-randomization
790show disable-randomization
791 Standalone programs run with the virtual address space randomization enabled
792 by default on some platforms. This option keeps the addresses stable across
793 multiple debugging sessions.
794
d7713ae0
EZ
795set non-stop
796show non-stop
797 Control whether other threads are stopped or not when some thread hits
798 a breakpoint.
799
b3eb342c 800set target-async
d7713ae0 801show target-async
b3eb342c
VP
802 Requests that asynchronous execution is enabled in the target, if available.
803 In this case, it's possible to resume target in the background, and interact
804 with GDB while the target is running. "show target-async" displays the
805 current state of asynchronous execution of the target.
806
6c7a06a3
TT
807set target-wide-charset
808show target-wide-charset
809 The target-wide-charset is the name of the character set that GDB
810 uses when printing characters whose type is wchar_t.
811
84603566
SL
812set tcp auto-retry (on|off)
813show tcp auto-retry
814set tcp connect-timeout
815show tcp connect-timeout
816 These commands allow GDB to retry failed TCP connections to a remote stub
817 with a specified timeout period; this is useful if the stub is launched
818 in parallel with GDB but may not be ready to accept connections immediately.
819
17a37d48
PP
820set libthread-db-search-path
821show libthread-db-search-path
822 Control list of directories which GDB will search for appropriate
823 libthread_db.
824
d4db2f36
PA
825set schedule-multiple (on|off)
826show schedule-multiple
827 Allow GDB to resume all threads of all processes or only threads of
828 the current process.
829
4e5d721f
DE
830set stack-cache
831show stack-cache
832 Use more aggressive caching for accesses to the stack. This improves
833 performance of remote debugging (particularly backtraces) without
834 affecting correctness.
835
910c5da8
JB
836set interactive-mode (on|off|auto)
837show interactive-mode
838 Control whether GDB runs in interactive mode (on) or not (off).
839 When in interactive mode, GDB waits for the user to answer all
840 queries. Otherwise, GDB does not wait and assumes the default
841 answer. When set to auto (the default), GDB determines which
842 mode to use based on the stdin settings.
843
2277426b
PA
844* Removed commands
845
846info forks
847 For program forks, this is replaced by the new more generic `info
848 inferiors' command. To list checkpoints, you can still use the
849 `info checkpoints' command, which was an alias for the `info forks'
850 command.
851
852fork NUM
853 Replaced by the new `inferior' command. To switch between
854 checkpoints, you can still use the `restart' command, which was an
855 alias for the `fork' command.
856
857process PID
858 This is removed, since some targets don't have a notion of
859 processes. To switch between processes, you can still use the
860 `inferior' command using GDB's own inferior number.
861
862delete fork NUM
863 For program forks, this is replaced by the new more generic `kill
864 inferior' command. To delete a checkpoint, you can still use the
865 `delete checkpoint' command, which was an alias for the `delete
866 fork' command.
867
868detach fork NUM
869 For program forks, this is replaced by the new more generic `detach
870 inferior' command. To detach a checkpoint, you can still use the
871 `detach checkpoint' command, which was an alias for the `detach
872 fork' command.
873
a80b95ba
TG
874* New native configurations
875
876x86/x86_64 Darwin i[34567]86-*-darwin*
877
b8bfd3ed
JB
878x86_64 MinGW x86_64-*-mingw*
879
75a2d5e7
TT
880* New targets
881
c28c63d8 882Lattice Mico32 lm32-*
75a2d5e7 883x86 DICOS i[34567]86-*-dicos*
4c1d2973 884x86_64 DICOS x86_64-*-dicos*
5f814c3b 885S+core 3 score-*-*
75a2d5e7 886
6de3146c
PA
887* The GDB remote stub, gdbserver, now supports x86 Windows CE
888 (mingw32ce) debugging.
889
d5cbbe6e
JB
890* Removed commands
891
892catch load
893catch unload
894 These commands were actually not implemented on any target.
895
75feb17d 896*** Changes in GDB 6.8
f9ed52be 897
af5ca30d
NH
898* New native configurations
899
900NetBSD/hppa hppa*-*netbsd*
94a0e877 901Xtensa GNU/Linux xtensa*-*-linux*
af5ca30d
NH
902
903* New targets
904
905NetBSD/hppa hppa*-*-netbsd*
94a0e877 906Xtensa GNU/Lunux xtensa*-*-linux*
af5ca30d 907
7a404eba
PA
908* Change in command line behavior -- corefiles vs. process ids.
909
910 When the '-p NUMBER' or '--pid NUMBER' options are used, and
911 attaching to process NUMBER fails, GDB no longer attempts to open a
912 core file named NUMBER. Attaching to a program using the -c option
913 is no longer supported. Instead, use the '-p' or '--pid' options.
914
430ebac9
PA
915* GDB can now be built as a native debugger for debugging Windows x86
916(mingw32) Portable Executable (PE) programs.
917
fe6fbf8b 918* Pending breakpoints no longer change their number when their address
8d5f9c6f 919is resolved.
fe6fbf8b
VP
920
921* GDB now supports breakpoints with multiple locations,
8d5f9c6f
DJ
922including breakpoints on C++ constructors, inside C++ templates,
923and in inlined functions.
fe6fbf8b 924
10665d76
JB
925* GDB's ability to debug optimized code has been improved. GDB more
926accurately identifies function bodies and lexical blocks that occupy
927more than one contiguous range of addresses.
928
7cc46491
DJ
929* Target descriptions can now describe registers for PowerPC.
930
d71340b8
DJ
931* The GDB remote stub, gdbserver, now supports the AltiVec and SPE
932registers on PowerPC targets.
933
523c4513
DJ
934* The GDB remote stub, gdbserver, now supports thread debugging on GNU/Linux
935targets even when the libthread_db library is not available.
936
a6b151f1
DJ
937* The GDB remote stub, gdbserver, now supports the new file transfer
938commands (remote put, remote get, and remote delete).
939
2d717e4f
DJ
940* The GDB remote stub, gdbserver, now supports run and attach in
941extended-remote mode.
942
24a836bd 943* hppa*64*-*-hpux11* target broken
d001be7a
DJ
944The debugger is unable to start a program and fails with the following
945error: "Error trying to get information about dynamic linker".
946The gdb-6.7 release is also affected.
24a836bd 947
d0c678e6
UW
948* GDB now supports the --enable-targets= configure option to allow
949building a single GDB executable that supports multiple remote
950target architectures.
951
d64a946d
TJB
952* GDB now supports debugging C and C++ programs which use the
953Decimal Floating Point extension. In addition, the PowerPC target
954now has a set of pseudo-registers to inspect decimal float values
955stored in two consecutive float registers.
956
ee163bf5
VP
957* The -break-insert MI command can optionally create pending
958breakpoints now.
959
b93b6ca7 960* Improved support for debugging Ada
d001be7a
DJ
961Many improvements to the Ada language support have been made. These
962include:
b93b6ca7
JB
963 - Better support for Ada2005 interface types
964 - Improved handling of arrays and slices in general
965 - Better support for Taft-amendment types
966 - The '{type} ADDRESS' expression is now allowed on the left hand-side
967 of an assignment
968 - Improved command completion in Ada
969 - Several bug fixes
970
d001be7a
DJ
971* GDB on GNU/Linux and HP/UX can now debug through "exec" of a new
972process.
973
a6b151f1
DJ
974* New commands
975
6d53d0af
JB
976set print frame-arguments (all|scalars|none)
977show print frame-arguments
978 The value of this variable can be changed to control which argument
979 values should be printed by the debugger when displaying a frame.
980
a6b151f1
DJ
981remote put
982remote get
983remote delete
984 Transfer files to and from a remote target, and delete remote files.
985
986* New MI commands
987
988-target-file-put
989-target-file-get
990-target-file-delete
991 Transfer files to and from a remote target, and delete remote files.
992
993* New remote packets
994
995vFile:open:
996vFile:close:
997vFile:pread:
998vFile:pwrite:
999vFile:unlink:
1000 Open, close, read, write, and delete files on the remote system.
d0c678e6 1001
2d717e4f
DJ
1002vAttach
1003 Attach to an existing process on the remote system, in extended-remote
1004 mode.
1005
1006vRun
1007 Run a new process on the remote system, in extended-remote mode.
1008
8d5f9c6f 1009*** Changes in GDB 6.7
6dd09645 1010
19d378fc
MS
1011* Resolved 101 resource leaks, null pointer dereferences, etc. in gdb,
1012bfd, libiberty and opcodes, as revealed by static analysis donated by
1013Coverity, Inc. (http://scan.coverity.com).
1014
3a40aaa0
UW
1015* When looking up multiply-defined global symbols, GDB will now prefer the
1016symbol definition in the current shared library if it was built using the
1017-Bsymbolic linker option.
1018
a6ec25f2
BW
1019* When the Text User Interface (TUI) is not configured, GDB will now
1020recognize the -tui command-line option and print a message that the TUI
1021is not supported.
1022
6dd09645
JB
1023* The GDB remote stub, gdbserver, now has lower overhead for high
1024frequency signals (e.g. SIGALRM) via the QPassSignals packet.
1025
c9bb8148
DJ
1026* GDB for MIPS targets now autodetects whether a remote target provides
102732-bit or 64-bit register values.
1028
0d5de010
DJ
1029* Support for C++ member pointers has been improved.
1030
23181151
DJ
1031* GDB now understands XML target descriptions, which specify the
1032target's overall architecture. GDB can read a description from
1033a local file or over the remote serial protocol.
1034
ea37ba09
DJ
1035* Vectors of single-byte data use a new integer type which is not
1036automatically displayed as character or string data.
1037
1038* The /s format now works with the print command. It displays
1039arrays of single-byte integers and pointers to single-byte integers
1040as strings.
e1f48ead 1041
123dc839
DJ
1042* Target descriptions can now describe target-specific registers,
1043for architectures which have implemented the support (currently
8d5f9c6f 1044only ARM, M68K, and MIPS).
123dc839 1045
05a4558a
DJ
1046* GDB and the GDB remote stub, gdbserver, now support the XScale
1047iWMMXt coprocessor.
fb1e4ffc 1048
7c963485
PA
1049* The GDB remote stub, gdbserver, has been updated to support
1050ARM Windows CE (mingw32ce) debugging, and GDB Windows CE support
1051has been rewritten to use the standard GDB remote protocol.
1052
b18be20d
DJ
1053* GDB can now step into C++ functions which are called through thunks.
1054
0ca420ce
UW
1055* GDB for the Cell/B.E. SPU now supports overlay debugging.
1056
31d99776
DJ
1057* The GDB remote protocol "qOffsets" packet can now honor ELF segment
1058layout. It also supports a TextSeg= and DataSeg= response when only
1059segment base addresses (rather than offsets) are available.
1060
a4642986
MR
1061* The /i format now outputs any trailing branch delay slot instructions
1062immediately following the last instruction within the count specified.
1063
cfa9d6d9
DJ
1064* The GDB remote protocol "T" stop reply packet now supports a
1065"library" response. Combined with the new "qXfer:libraries:read"
1066packet, this response allows GDB to debug shared libraries on targets
1067where the operating system manages the list of loaded libraries (e.g.
1068Windows and SymbianOS).
255e7678
DJ
1069
1070* The GDB remote stub, gdbserver, now supports dynamic link libraries
1071(DLLs) on Windows and Windows CE targets.
f5db8714
JK
1072
1073* GDB now supports a faster verification that a .debug file matches its binary
1074according to its build-id signature, if the signature is present.
cfa9d6d9 1075
c9bb8148
DJ
1076* New commands
1077
23776285
MR
1078set remoteflow
1079show remoteflow
1080 Enable or disable hardware flow control (RTS/CTS) on the serial port
1081 when debugging using remote targets.
1082
c9bb8148
DJ
1083set mem inaccessible-by-default
1084show mem inaccessible-by-default
1085 If the target supplies a memory map, for instance via the remote
1086 protocol's "qXfer:memory-map:read" packet, setting this variable
1087 prevents GDB from accessing memory outside the memory map. This
1088 is useful for targets with memory mapped registers or which react
1089 badly to accesses of unmapped address space.
1090
1091set breakpoint auto-hw
1092show breakpoint auto-hw
1093 If the target supplies a memory map, for instance via the remote
1094 protocol's "qXfer:memory-map:read" packet, setting this variable
1095 lets GDB use hardware breakpoints automatically for memory regions
1096 where it can not use software breakpoints. This covers both the
1097 "break" command and internal breakpoints used for other commands
1098 including "next" and "finish".
1099
0e420bd8
JB
1100catch exception
1101catch exception unhandled
1102 Stop the program execution when Ada exceptions are raised.
1103
1104catch assert
1105 Stop the program execution when an Ada assertion failed.
1106
f822c95b
DJ
1107set sysroot
1108show sysroot
1109 Set an alternate system root for target files. This is a more
1110 general version of "set solib-absolute-prefix", which is now
1111 an alias to "set sysroot".
1112
83cc5c53
UW
1113info spu
1114 Provide extended SPU facility status information. This set of
1115 commands is available only when debugging the Cell/B.E. SPU
1116 architecture.
1117
bd372731
MK
1118* New native configurations
1119
1120OpenBSD/sh sh*-*openbsd*
1121
23181151
DJ
1122set tdesc filename
1123unset tdesc filename
1124show tdesc filename
1125 Use the specified local file as an XML target description, and do
1126 not query the target for its built-in description.
1127
c9bb8148
DJ
1128* New targets
1129
54fe9172 1130OpenBSD/sh sh*-*-openbsd*
c9bb8148 1131MIPS64 GNU/Linux (gdbserver) mips64-linux-gnu
c077150c 1132Toshiba Media Processor mep-elf
c9bb8148 1133
6dd09645
JB
1134* New remote packets
1135
1136QPassSignals:
1137 Ignore the specified signals; pass them directly to the debugged program
1138 without stopping other threads or reporting them to GDB.
1139
23181151
DJ
1140qXfer:features:read:
1141 Read an XML target description from the target, which describes its
1142 features.
6dd09645 1143
83cc5c53
UW
1144qXfer:spu:read:
1145qXfer:spu:write:
1146 Read or write contents of an spufs file on the target system. These
1147 packets are available only on the Cell/B.E. SPU architecture.
1148
cfa9d6d9
DJ
1149qXfer:libraries:read:
1150 Report the loaded shared libraries. Combined with new "T" packet
1151 response, this packet allows GDB to debug shared libraries on
1152 targets where the operating system manages the list of loaded
1153 libraries (e.g. Windows and SymbianOS).
1154
483367ee
DJ
1155* Removed targets
1156
1157Support for these obsolete configurations has been removed.
1158
d08950c4
UW
1159alpha*-*-osf1*
1160alpha*-*-osf2*
7ce59000 1161d10v-*-*
483367ee
DJ
1162hppa*-*-hiux*
1163i[34567]86-ncr-*
1164i[34567]86-*-dgux*
1165i[34567]86-*-lynxos*
1166i[34567]86-*-netware*
1167i[34567]86-*-sco3.2v5*
1168i[34567]86-*-sco3.2v4*
1169i[34567]86-*-sco*
1170i[34567]86-*-sysv4.2*
1171i[34567]86-*-sysv4*
1172i[34567]86-*-sysv5*
1173i[34567]86-*-unixware2*
1174i[34567]86-*-unixware*
1175i[34567]86-*-sysv*
1176i[34567]86-*-isc*
1177m68*-cisco*-*
1178m68*-tandem-*
ad527d2e 1179mips*-*-pe
483367ee 1180rs6000-*-lynxos*
ad527d2e 1181sh*-*-pe
483367ee 1182
7ce59000
DJ
1183* Other removed features
1184
1185target abug
1186target cpu32bug
1187target est
1188target rom68k
1189
1190 Various m68k-only ROM monitors.
1191
ea35711c
DJ
1192target hms
1193target e7000
1194target sh3
1195target sh3e
1196
1197 Various Renesas ROM monitors and debugging interfaces for SH and
1198 H8/300.
1199
1200target ocd
1201
1202 Support for a Macraigor serial interface to on-chip debugging.
1203 GDB does not directly support the newer parallel or USB
1204 interfaces.
1205
7ce59000
DJ
1206DWARF 1 support
1207
1208 A debug information format. The predecessor to DWARF 2 and
1209 DWARF 3, which are still supported.
1210
54d61198
DJ
1211Support for the HP aCC compiler on HP-UX/PA-RISC
1212
1213 SOM-encapsulated symbolic debugging information, automatic
1214 invocation of pxdb, and the aCC custom C++ ABI. This does not
1215 affect HP-UX for Itanium or GCC for HP-UX/PA-RISC. Code compiled
1216 with aCC can still be debugged on an assembly level.
1217
ea35711c
DJ
1218MIPS ".pdr" sections
1219
1220 A MIPS-specific format used to describe stack frame layout
1221 in debugging information.
1222
1223Scheme support
1224
1225 GDB could work with an older version of Guile to debug
1226 the interpreter and Scheme programs running in it.
1227
1a69e1e4
DJ
1228set mips stack-arg-size
1229set mips saved-gpreg-size
1230
1231 Use "set mips abi" to control parameter passing for MIPS.
1232
6dd09645 1233*** Changes in GDB 6.6
e374b601 1234
ca3bf3bd
DJ
1235* New targets
1236
1237Xtensa xtensa-elf
9c309e77 1238Cell Broadband Engine SPU spu-elf
ca3bf3bd 1239
6aec2e11
DJ
1240* GDB can now be configured as a cross-debugger targeting native Windows
1241(mingw32) or Cygwin. It can communicate with a remote debugging stub
1242running on a Windows system over TCP/IP to debug Windows programs.
1243
1244* The GDB remote stub, gdbserver, has been updated to support Windows and
1245Cygwin debugging. Both single-threaded and multi-threaded programs are
1246supported.
1247
17218d91
DJ
1248* The "set trust-readonly-sections" command works again. This command was
1249broken in GDB 6.3, 6.4, and 6.5.
1250
9ebce043
DJ
1251* The "load" command now supports writing to flash memory, if the remote
1252stub provides the required support.
1253
7d3d3ece
DJ
1254* Support for GNU/Linux Thread Local Storage (TLS, per-thread variables) no
1255longer requires symbolic debug information (e.g. DWARF-2).
1256
4f8253f3
JB
1257* New commands
1258
1259set substitute-path
1260unset substitute-path
1261show substitute-path
1262 Manage a list of substitution rules that GDB uses to rewrite the name
1263 of the directories where the sources are located. This can be useful
1264 for instance when the sources were moved to a different location
1265 between compilation and debugging.
1266
9fa66fd7
AS
1267set trace-commands
1268show trace-commands
1269 Print each CLI command as it is executed. Each command is prefixed with
1270 a number of `+' symbols representing the nesting depth.
1271 The source command now has a `-v' option to enable the same feature.
1272
1f5befc1
DJ
1273* REMOVED features
1274
1275The ARM Demon monitor support (RDP protocol, "target rdp").
1276
2ec3381a
DJ
1277Kernel Object Display, an embedded debugging feature which only worked with
1278an obsolete version of Cisco IOS.
1279
3d00d119
DJ
1280The 'set download-write-size' and 'show download-write-size' commands.
1281
be2a5f71
DJ
1282* New remote packets
1283
1284qSupported:
1285 Tell a stub about GDB client features, and request remote target features.
1286 The first feature implemented is PacketSize, which allows the target to
1287 specify the size of packets it can handle - to minimize the number of
1288 packets required and improve performance when connected to a remote
1289 target.
1290
0876f84a
DJ
1291qXfer:auxv:read:
1292 Fetch an OS auxilliary vector from the remote stub. This packet is a
1293 more efficient replacement for qPart:auxv:read.
1294
9ebce043
DJ
1295qXfer:memory-map:read:
1296 Fetch a memory map from the remote stub, including information about
1297 RAM, ROM, and flash memory devices.
1298
1299vFlashErase:
1300vFlashWrite:
1301vFlashDone:
1302 Erase and program a flash memory device.
1303
0876f84a
DJ
1304* Removed remote packets
1305
1306qPart:auxv:read:
1307 This packet has been replaced by qXfer:auxv:read. Only GDB 6.4 and 6.5
1308 used it, and only gdbserver implemented it.
1309
e374b601 1310*** Changes in GDB 6.5
53e5f3cf 1311
96309189
MS
1312* New targets
1313
1314Renesas M32C/M16C m32c-elf
1315
1316Morpho Technologies ms1 ms1-elf
1317
53e5f3cf
AS
1318* New commands
1319
1320init-if-undefined Initialize a convenience variable, but
1321 only if it doesn't already have a value.
1322
ac264b3b
MS
1323The following commands are presently only implemented for native GNU/Linux:
1324
1325checkpoint Save a snapshot of the program state.
1326
1327restart <n> Return the program state to a
1328 previously saved state.
1329
1330info checkpoints List currently saved checkpoints.
1331
1332delete-checkpoint <n> Delete a previously saved checkpoint.
1333
1334set|show detach-on-fork Tell gdb whether to detach from a newly
1335 forked process, or to keep debugging it.
1336
1337info forks List forks of the user program that
1338 are available to be debugged.
1339
1340fork <n> Switch to debugging one of several
1341 forks of the user program that are
1342 available to be debugged.
1343
1344delete-fork <n> Delete a fork from the list of forks
1345 that are available to be debugged (and
1346 kill the forked process).
1347
1348detach-fork <n> Delete a fork from the list of forks
1349 that are available to be debugged (and
1350 allow the process to continue).
1351
3950dc3f
NS
1352* New architecture
1353
1354Morpho Technologies ms2 ms1-elf
1355
0ea3f30e
DJ
1356* Improved Windows host support
1357
1358GDB now builds as a cross debugger hosted on i686-mingw32, including
1359native console support, and remote communications using either
1360network sockets or serial ports.
1361
f79daebb
GM
1362* Improved Modula-2 language support
1363
1364GDB can now print most types in the Modula-2 syntax. This includes:
1365basic types, set types, record types, enumerated types, range types,
1366pointer types and ARRAY types. Procedure var parameters are correctly
1367printed and hexadecimal addresses and character constants are also
1368written in the Modula-2 syntax. Best results can be obtained by using
1369GNU Modula-2 together with the -gdwarf-2 command line option.
1370
acab6ab2
MM
1371* REMOVED features
1372
1373The ARM rdi-share module.
1374
f4267320
DJ
1375The Netware NLM debug server.
1376
53e5f3cf 1377*** Changes in GDB 6.4
156a53ca 1378
e0ecbda1
MK
1379* New native configurations
1380
02a677ac 1381OpenBSD/arm arm*-*-openbsd*
e0ecbda1
MK
1382OpenBSD/mips64 mips64-*-openbsd*
1383
d64a6579
KB
1384* New targets
1385
1386Morpho Technologies ms1 ms1-elf
1387
b33a6190
AS
1388* New command line options
1389
1390--batch-silent As for --batch, but totally silent.
1391--return-child-result The debugger will exist with the same value
1392 the child (debugged) program exited with.
1393--eval-command COMMAND, -ex COMMAND
1394 Execute a single GDB CLI command. This may be
1395 specified multiple times and in conjunction
1396 with the --command (-x) option.
1397
11dced61
AC
1398* Deprecated commands removed
1399
1400The following commands, that were deprecated in 2000, have been
1401removed:
1402
1403 Command Replacement
1404 set|show arm disassembly-flavor set|show arm disassembler
1405 othernames set arm disassembler
1406 set|show remotedebug set|show debug remote
1407 set|show archdebug set|show debug arch
1408 set|show eventdebug set|show debug event
1409 regs info registers
1410
6fe85783
MK
1411* New BSD user-level threads support
1412
1413It is now possible to debug programs using the user-level threads
1414library on OpenBSD and FreeBSD. Currently supported (target)
1415configurations are:
1416
1417FreeBSD/amd64 x86_64-*-freebsd*
1418FreeBSD/i386 i386-*-freebsd*
1419OpenBSD/i386 i386-*-openbsd*
1420
1421Note that the new kernel threads libraries introduced in FreeBSD 5.x
1422are not yet supported.
1423
5260ca71
MS
1424* New support for Matsushita MN10300 w/sim added
1425(Work in progress). mn10300-elf.
1426
e84ecc99
AC
1427* REMOVED configurations and files
1428
1429VxWorks and the XDR protocol *-*-vxworks
9445aa30 1430Motorola MCORE mcore-*-*
9445aa30 1431National Semiconductor NS32000 ns32k-*-*
156a53ca 1432
31e35378
JB
1433* New "set print array-indexes" command
1434
1435After turning this setting "on", GDB prints the index of each element
1436when displaying arrays. The default is "off" to preserve the previous
1437behavior.
1438
e85e5c83
MK
1439* VAX floating point support
1440
1441GDB now supports the not-quite-ieee VAX F and D floating point formats.
1442
d91e9901
AS
1443* User-defined command support
1444
1445In addition to using $arg0..$arg9 for argument passing, it is now possible
1446to use $argc to determine now many arguments have been passed. See the
1447section on user-defined commands in the user manual for more information.
1448
f2cb65ca
MC
1449*** Changes in GDB 6.3:
1450
f47b1503
AS
1451* New command line option
1452
1453GDB now accepts -l followed by a number to set the timeout for remote
1454debugging.
1455
f2cb65ca
MC
1456* GDB works with GCC -feliminate-dwarf2-dups
1457
1458GDB now supports a more compact representation of DWARF-2 debug
1459information using DW_FORM_ref_addr references. These are produced
1460by GCC with the option -feliminate-dwarf2-dups and also by some
1461proprietary compilers. With GCC, you must use GCC 3.3.4 or later
1462to use -feliminate-dwarf2-dups.
860660cb 1463
d08c0230
AC
1464* Internationalization
1465
1466When supported by the host system, GDB will be built with
1467internationalization (libintl). The task of marking up the sources is
1468continued, we're looking forward to our first translation.
1469
117ea3cf
PH
1470* Ada
1471
1472Initial support for debugging programs compiled with the GNAT
1473implementation of the Ada programming language has been integrated
1474into GDB. In this release, support is limited to expression evaluation.
1475
d08c0230
AC
1476* New native configurations
1477
1478GNU/Linux/m32r m32r-*-linux-gnu
1479
1480* Remote 'p' packet
1481
1482GDB's remote protocol now includes support for the 'p' packet. This
1483packet is used to fetch individual registers from a remote inferior.
1484
1485* END-OF-LIFE registers[] compatibility module
1486
1487GDB's internal register infrastructure has been completely rewritten.
1488The new infrastructure making possible the implementation of key new
1489features including 32x64 (e.g., 64-bit amd64 GDB debugging a 32-bit
1490i386 application).
1491
1492GDB 6.3 will be the last release to include the the registers[]
1493compatibility module that allowed out-of-date configurations to
1494continue to work. This change directly impacts the following
1495configurations:
1496
1497hppa-*-hpux
1498ia64-*-aix
1499mips-*-irix*
1500*-*-lynx
1501mips-*-linux-gnu
1502sds protocol
1503xdr protocol
1504powerpc bdm protocol
1505
1506Unless there is activity to revive these configurations, they will be
1507made OBSOLETE in GDB 6.4, and REMOVED from GDB 6.5.
1508
1509* OBSOLETE configurations and files
1510
1511Configurations that have been declared obsolete in this release have
1512been commented out. Unless there is activity to revive these
1513configurations, the next release of GDB will have their sources
1514permanently REMOVED.
1515
1516h8300-*-*
1517mcore-*-*
1518mn10300-*-*
1519ns32k-*-*
1520sh64-*-*
1521v850-*-*
1522
ebb7c577
AC
1523*** Changes in GDB 6.2.1:
1524
1525* MIPS `break main; run' gave an heuristic-fence-post warning
1526
1527When attempting to run even a simple program, a warning about
1528heuristic-fence-post being hit would be reported. This problem has
1529been fixed.
1530
1531* MIPS IRIX 'long double' crashed GDB
1532
1533When examining a long double variable, GDB would get a segmentation
1534fault. The crash has been fixed (but GDB 6.2 cannot correctly examine
1535IRIX long double values).
1536
1537* VAX and "next"
1538
1539A bug in the VAX stack code was causing problems with the "next"
1540command. This problem has been fixed.
1541
860660cb 1542*** Changes in GDB 6.2:
faae5abe 1543
0dea2468
AC
1544* Fix for ``many threads''
1545
1546On GNU/Linux systems that use the NPTL threads library, a program
1547rapidly creating and deleting threads would confuse GDB leading to the
1548error message:
1549
1550 ptrace: No such process.
1551 thread_db_get_info: cannot get thread info: generic error
1552
1553This problem has been fixed.
1554
2c07db7a
AC
1555* "-async" and "-noasync" options removed.
1556
1557Support for the broken "-noasync" option has been removed (it caused
1558GDB to dump core).
1559
c23968a2
JB
1560* New ``start'' command.
1561
1562This command runs the program until the begining of the main procedure.
1563
71009278
MK
1564* New BSD Kernel Data Access Library (libkvm) interface
1565
1566Using ``target kvm'' it is now possible to debug kernel core dumps and
1567live kernel memory images on various FreeBSD, NetBSD and OpenBSD
1568platforms. Currently supported (native-only) configurations are:
1569
1570FreeBSD/amd64 x86_64-*-freebsd*
1571FreeBSD/i386 i?86-*-freebsd*
1572NetBSD/i386 i?86-*-netbsd*
1573NetBSD/m68k m68*-*-netbsd*
1574NetBSD/sparc sparc-*-netbsd*
1575OpenBSD/amd64 x86_64-*-openbsd*
1576OpenBSD/i386 i?86-*-openbsd*
1577OpenBSD/m68k m68*-openbsd*
1578OpenBSD/sparc sparc-*-openbsd*
1579
3c0b7db2
AC
1580* Signal trampoline code overhauled
1581
1582Many generic problems with GDB's signal handling code have been fixed.
1583These include: backtraces through non-contiguous stacks; recognition
1584of sa_sigaction signal trampolines; backtrace from a NULL pointer
1585call; backtrace through a signal trampoline; step into and out of
1586signal handlers; and single-stepping in the signal trampoline.
1587
73cc75f3
AC
1588Please note that kernel bugs are a limiting factor here. These
1589features have been shown to work on an s390 GNU/Linux system that
1590include a 2.6.8-rc1 kernel. Ref PR breakpoints/1702.
3c0b7db2 1591
7243600a
BF
1592* Cygwin support for DWARF 2 added.
1593
6f606e1c
MK
1594* New native configurations
1595
97dc871c 1596GNU/Linux/hppa hppa*-*-linux*
0e56aeaf 1597OpenBSD/hppa hppa*-*-openbsd*
bf2ca189
MK
1598OpenBSD/m68k m68*-*-openbsd*
1599OpenBSD/m88k m88*-*-openbsd*
d195bc9f 1600OpenBSD/powerpc powerpc-*-openbsd*
6f606e1c 1601NetBSD/vax vax-*-netbsd*
9f076e7a 1602OpenBSD/vax vax-*-openbsd*
6f606e1c 1603
a1b461bf
AC
1604* END-OF-LIFE frame compatibility module
1605
1606GDB's internal frame infrastructure has been completely rewritten.
1607The new infrastructure making it possible to support key new features
1608including DWARF 2 Call Frame Information. To aid in the task of
1609migrating old configurations to this new infrastructure, a
1610compatibility module, that allowed old configurations to continue to
1611work, was also included.
1612
1613GDB 6.2 will be the last release to include this frame compatibility
1614module. This change directly impacts the following configurations:
1615
1616h8300-*-*
1617mcore-*-*
1618mn10300-*-*
1619ns32k-*-*
1620sh64-*-*
1621v850-*-*
1622xstormy16-*-*
1623
1624Unless there is activity to revive these configurations, they will be
1625made OBSOLETE in GDB 6.3, and REMOVED from GDB 6.4.
1626
3c7012f5
AC
1627* REMOVED configurations and files
1628
1629Sun 3, running SunOS 3 m68*-*-sunos3*
1630Sun 3, running SunOS 4 m68*-*-sunos4*
1631Sun 2, running SunOS 3 m68000-*-sunos3*
1632Sun 2, running SunOS 4 m68000-*-sunos4*
1633Motorola 680x0 running LynxOS m68*-*-lynxos*
1634AT&T 3b1/Unix pc m68*-att-*
1635Bull DPX2 (68k, System V release 3) m68*-bull-sysv*
1636decstation mips-dec-* mips-little-*
1637riscos mips-*-riscos* mips-*-sysv*
1638sonymips mips-sony-*
1639sysv mips*-*-sysv4* (IRIX 5/6 not included)
1640
e5fe55f7
AC
1641*** Changes in GDB 6.1.1:
1642
1643* TUI (Text-mode User Interface) built-in (also included in GDB 6.1)
1644
1645The TUI (Text-mode User Interface) is now built as part of a default
1646GDB configuration. It is enabled by either selecting the TUI with the
1647command line option "-i=tui" or by running the separate "gdbtui"
1648program. For more information on the TUI, see the manual "Debugging
1649with GDB".
1650
1651* Pending breakpoint support (also included in GDB 6.1)
1652
1653Support has been added to allow you to specify breakpoints in shared
1654libraries that have not yet been loaded. If a breakpoint location
1655cannot be found, and the "breakpoint pending" option is set to auto,
1656GDB queries you if you wish to make the breakpoint pending on a future
1657shared-library load. If and when GDB resolves the breakpoint symbol,
1658the pending breakpoint is removed as one or more regular breakpoints
1659are created.
1660
1661Pending breakpoints are very useful for GCJ Java debugging.
1662
1663* Fixed ISO-C build problems
1664
1665The files bfd/elf-bfd.h, gdb/dictionary.c and gdb/types.c contained
1666non ISO-C code that stopped them being built using a more strict ISO-C
1667compiler (e.g., IBM's C compiler).
1668
1669* Fixed build problem on IRIX 5
1670
1671Due to header problems with <sys/proc.h>, the file gdb/proc-api.c
1672wasn't able to compile compile on an IRIX 5 system.
1673
1674* Added execute permission to gdb/gdbserver/configure
1675
1676The shell script gdb/testsuite/gdb.stabs/configure lacked execute
1677permission. This bug would cause configure to fail on a number of
1678systems (Solaris, IRIX). Ref: server/519.
1679
1680* Fixed build problem on hpux2.0w-hp-hpux11.00 using the HP ANSI C compiler
1681
1682Older HPUX ANSI C compilers did not accept variable array sizes. somsolib.c
1683has been updated to use constant array sizes.
1684
1685* Fixed a panic in the DWARF Call Frame Info code on Solaris 2.7
1686
1687GCC 3.3.2, on Solaris 2.7, includes the DW_EH_PE_funcrel encoding in
1688its generated DWARF Call Frame Info. This encoding was causing GDB to
1689panic, that panic has been fixed. Ref: gdb/1628.
1690
1691* Fixed a problem when examining parameters in shared library code.
1692
1693When examining parameters in optimized shared library code generated
1694by a mainline GCC, GDB would incorrectly report ``Variable "..." is
1695not available''. GDB now correctly displays the variable's value.
1696
faae5abe 1697*** Changes in GDB 6.1:
f2c06f52 1698
9175c9a3
MC
1699* Removed --with-mmalloc
1700
1701Support for the mmalloc memory manager has been removed, as it
1702conflicted with the internal gdb byte cache.
1703
3cc87ec0
MK
1704* Changes in AMD64 configurations
1705
1706The AMD64 target now includes the %cs and %ss registers. As a result
1707the AMD64 remote protocol has changed; this affects the floating-point
1708and SSE registers. If you rely on those registers for your debugging,
1709you should upgrade gdbserver on the remote side.
1710
f0424ef6
MK
1711* Revised SPARC target
1712
1713The SPARC target has been completely revised, incorporating the
1714FreeBSD/sparc64 support that was added for GDB 6.0. As a result
03cebad2
MK
1715support for LynxOS and SunOS 4 has been dropped. Calling functions
1716from within GDB on operating systems with a non-executable stack
1717(Solaris, OpenBSD) now works.
f0424ef6 1718
59659be2
ILT
1719* New C++ demangler
1720
1721GDB has a new C++ demangler which does a better job on the mangled
1722names generated by current versions of g++. It also runs faster, so
1723with this and other changes gdb should now start faster on large C++
1724programs.
1725
9e08b29b
DJ
1726* DWARF 2 Location Expressions
1727
1728GDB support for location expressions has been extended to support function
1729arguments and frame bases. Older versions of GDB could crash when they
1730encountered these.
1731
8dfe8985
DC
1732* C++ nested types and namespaces
1733
1734GDB's support for nested types and namespaces in C++ has been
1735improved, especially if you use the DWARF 2 debugging format. (This
1736is the default for recent versions of GCC on most platforms.)
1737Specifically, if you have a class "Inner" defined within a class or
1738namespace "Outer", then GDB realizes that the class's name is
1739"Outer::Inner", not simply "Inner". This should greatly reduce the
1740frequency of complaints about not finding RTTI symbols. In addition,
1741if you are stopped at inside of a function defined within a namespace,
1742GDB modifies its name lookup accordingly.
1743
cced5e27
MK
1744* New native configurations
1745
1746NetBSD/amd64 x86_64-*-netbsd*
27d1e716 1747OpenBSD/amd64 x86_64-*-openbsd*
2031c21a 1748OpenBSD/alpha alpha*-*-openbsd*
f2cab569
MK
1749OpenBSD/sparc sparc-*-openbsd*
1750OpenBSD/sparc64 sparc64-*-openbsd*
cced5e27 1751
b4b4b794
KI
1752* New debugging protocols
1753
1754M32R with SDI protocol m32r-*-elf*
1755
7989c619
AC
1756* "set prompt-escape-char" command deleted.
1757
1758The command "set prompt-escape-char" has been deleted. This command,
1759and its very obscure effet on GDB's prompt, was never documented,
1760tested, nor mentioned in the NEWS file.
1761
5994185b
AC
1762* OBSOLETE configurations and files
1763
1764Configurations that have been declared obsolete in this release have
1765been commented out. Unless there is activity to revive these
1766configurations, the next release of GDB will have their sources
1767permanently REMOVED.
1768
1769Sun 3, running SunOS 3 m68*-*-sunos3*
1770Sun 3, running SunOS 4 m68*-*-sunos4*
1771Sun 2, running SunOS 3 m68000-*-sunos3*
1772Sun 2, running SunOS 4 m68000-*-sunos4*
1773Motorola 680x0 running LynxOS m68*-*-lynxos*
1774AT&T 3b1/Unix pc m68*-att-*
1775Bull DPX2 (68k, System V release 3) m68*-bull-sysv*
0748d941
AC
1776decstation mips-dec-* mips-little-*
1777riscos mips-*-riscos* mips-*-sysv*
1778sonymips mips-sony-*
1779sysv mips*-*-sysv4* (IRIX 5/6 not included)
5994185b 1780
0ddabb4c
AC
1781* REMOVED configurations and files
1782
1783SGI Irix-4.x mips-sgi-irix4 or iris4
1784SGI Iris (MIPS) running Irix V3: mips-sgi-irix or iris
4a8269c0
AC
1785Z8000 simulator z8k-zilog-none or z8ksim
1786Matsushita MN10200 w/simulator mn10200-*-*
1787H8/500 simulator h8500-hitachi-hms or h8500hms
1788HP/PA running BSD hppa*-*-bsd*
1789HP/PA running OSF/1 hppa*-*-osf*
1790HP/PA Pro target hppa*-*-pro*
1791PMAX (MIPS) running Mach 3.0 mips*-*-mach3*
cf7c5c23 1792386BSD i[3456]86-*-bsd*
4a8269c0
AC
1793Sequent family i[3456]86-sequent-sysv4*
1794 i[3456]86-sequent-sysv*
1795 i[3456]86-sequent-bsd*
f0424ef6
MK
1796SPARC running LynxOS sparc-*-lynxos*
1797SPARC running SunOS 4 sparc-*-sunos4*
4a8269c0
AC
1798Tsqware Sparclet sparclet-*-*
1799Fujitsu SPARClite sparclite-fujitsu-none or sparclite
0ddabb4c 1800
c7f1390e
DJ
1801*** Changes in GDB 6.0:
1802
1fe43d45
AC
1803* Objective-C
1804
1805Support for debugging the Objective-C programming language has been
1806integrated into GDB.
1807
e6beb428
AC
1808* New backtrace mechanism (includes DWARF 2 Call Frame Information).
1809
1810DWARF 2's Call Frame Information makes available compiler generated
1811information that more exactly describes the program's run-time stack.
1812By using this information, GDB is able to provide more robust stack
1813backtraces.
1814
1815The i386, amd64 (nee, x86-64), Alpha, m68hc11, ia64, and m32r targets
1816have been updated to use a new backtrace mechanism which includes
1817DWARF 2 CFI support.
1818
1819* Hosted file I/O.
1820
1821GDB's remote protocol has been extended to include support for hosted
1822file I/O (where the remote target uses GDB's file system). See GDB's
1823remote protocol documentation for details.
1824
1825* All targets using the new architecture framework.
1826
1827All of GDB's targets have been updated to use the new internal
1828architecture framework. The way is now open for future GDB releases
1829to include cross-architecture native debugging support (i386 on amd64,
1830ppc32 on ppc64).
1831
1832* GNU/Linux's Thread Local Storage (TLS)
1833
1834GDB now includes support for for the GNU/Linux implementation of
1835per-thread variables.
1836
1837* GNU/Linux's Native POSIX Thread Library (NPTL)
1838
1839GDB's thread code has been updated to work with either the new
1840GNU/Linux NPTL thread library or the older "LinuxThreads" library.
1841
1842* Separate debug info.
1843
1844GDB, in conjunction with BINUTILS, now supports a mechanism for
1845automatically loading debug information from a separate file. Instead
1846of shipping full debug and non-debug versions of system libraries,
1847system integrators can now instead ship just the stripped libraries
1848and optional debug files.
1849
1850* DWARF 2 Location Expressions
1851
1852DWARF 2 Location Expressions allow the compiler to more completely
1853describe the location of variables (even in optimized code) to the
1854debugger.
1855
1856GDB now includes preliminary support for location expressions (support
1857for DW_OP_piece is still missing).
1858
1859* Java
1860
1861A number of long standing bugs that caused GDB to die while starting a
1862Java application have been fixed. GDB's Java support is now
1863considered "useable".
1864
85f8f974
DJ
1865* GNU/Linux support for fork, vfork, and exec.
1866
1867The "catch fork", "catch exec", "catch vfork", and "set follow-fork-mode"
1868commands are now implemented for GNU/Linux. They require a 2.5.x or later
1869kernel.
1870
0fac0b41
DJ
1871* GDB supports logging output to a file
1872
1873There are two new commands, "set logging" and "show logging", which can be
1874used to capture GDB's output to a file.
f2c06f52 1875
6ad8ae5c
DJ
1876* The meaning of "detach" has changed for gdbserver
1877
1878The "detach" command will now resume the application, as documented. To
1879disconnect from gdbserver and leave it stopped, use the new "disconnect"
1880command.
1881
e286caf2 1882* d10v, m68hc11 `regs' command deprecated
5f601589
AC
1883
1884The `info registers' command has been updated so that it displays the
1885registers using a format identical to the old `regs' command.
1886
d28f9cdf
DJ
1887* Profiling support
1888
1889A new command, "maint set profile on/off", has been added. This command can
1890be used to enable or disable profiling while running GDB, to profile a
1891session or a set of commands. In addition there is a new configure switch,
1892"--enable-profiling", which will cause GDB to be compiled with profiling
1893data, for more informative profiling results.
1894
da0f9dcd
AC
1895* Default MI syntax changed to "mi2".
1896
1897The default MI (machine interface) syntax, enabled by the command line
1898option "-i=mi", has been changed to "mi2". The previous MI syntax,
b68767c1 1899"mi1", can be enabled by specifying the option "-i=mi1".
da0f9dcd
AC
1900
1901Support for the original "mi0" syntax (included in GDB 5.0) has been
1902removed.
1903
fb9b6b35
JJ
1904Fix for gdb/192: removed extraneous space when displaying frame level.
1905Fix for gdb/672: update changelist is now output in mi list format.
1906Fix for gdb/702: a -var-assign that updates the value now shows up
1907 in a subsequent -var-update.
1908
954a4db8
MK
1909* New native configurations.
1910
1911FreeBSD/amd64 x86_64-*-freebsd*
1912
6760f9e6
JB
1913* Multi-arched targets.
1914
b4263afa 1915HP/PA HPUX11 hppa*-*-hpux*
85a453d5 1916Renesas M32R/D w/simulator m32r-*-elf*
6760f9e6 1917
1b831c93
AC
1918* OBSOLETE configurations and files
1919
1920Configurations that have been declared obsolete in this release have
1921been commented out. Unless there is activity to revive these
1922configurations, the next release of GDB will have their sources
1923permanently REMOVED.
1924
8b0e5691 1925Z8000 simulator z8k-zilog-none or z8ksim
67f16606 1926Matsushita MN10200 w/simulator mn10200-*-*
fd2299bd 1927H8/500 simulator h8500-hitachi-hms or h8500hms
56056df7
AC
1928HP/PA running BSD hppa*-*-bsd*
1929HP/PA running OSF/1 hppa*-*-osf*
1930HP/PA Pro target hppa*-*-pro*
78c43945 1931PMAX (MIPS) running Mach 3.0 mips*-*-mach3*
2fbce691
AC
1932Sequent family i[3456]86-sequent-sysv4*
1933 i[3456]86-sequent-sysv*
1934 i[3456]86-sequent-bsd*
f81824a9
AC
1935Tsqware Sparclet sparclet-*-*
1936Fujitsu SPARClite sparclite-fujitsu-none or sparclite
fd2299bd 1937
5835abe7
NC
1938* REMOVED configurations and files
1939
1940V850EA ISA
1b831c93
AC
1941Motorola Delta 88000 running Sys V m88k-motorola-sysv or delta88
1942IBM AIX PS/2 i[3456]86-*-aix
1943i386 running Mach 3.0 i[3456]86-*-mach3*
1944i386 running Mach i[3456]86-*-mach*
1945i386 running OSF/1 i[3456]86-*osf1mk*
1946HP/Apollo 68k Family m68*-apollo*-sysv*,
1947 m68*-apollo*-bsd*,
1948 m68*-hp-bsd*, m68*-hp-hpux*
1949Argonaut Risc Chip (ARC) arc-*-*
1950Mitsubishi D30V d30v-*-*
1951Fujitsu FR30 fr30-*-elf*
1952OS/9000 i[34]86-*-os9k
1953I960 with MON960 i960-*-coff
5835abe7 1954
a094c6fb
AC
1955* MIPS $fp behavior changed
1956
1957The convenience variable $fp, for the MIPS, now consistently returns
1958the address of the current frame's base. Previously, depending on the
1959context, $fp could refer to either $sp or the current frame's base
1960address. See ``8.10 Registers'' in the manual ``Debugging with GDB:
1961The GNU Source-Level Debugger''.
1962
299ffc64 1963*** Changes in GDB 5.3:
37057839 1964
46248966
AC
1965* GNU/Linux shared library multi-threaded performance improved.
1966
1967When debugging a multi-threaded application on GNU/Linux, GDB now uses
1968`/proc', in preference to `ptrace' for memory reads. This may result
1969in an improvement in the start-up time of multi-threaded, shared
1970library applications when run under GDB. One GDB user writes: ``loads
1971shared libs like mad''.
1972
b9d14705 1973* ``gdbserver'' now supports multi-threaded applications on some targets
6da02953 1974
b9d14705
DJ
1975Support for debugging multi-threaded applications which use
1976the GNU/Linux LinuxThreads package has been added for
1977arm*-*-linux*-gnu*, i[3456]86-*-linux*-gnu*, mips*-*-linux*-gnu*,
1978powerpc*-*-linux*-gnu*, and sh*-*-linux*-gnu*.
6da02953 1979
e0e9281e
JB
1980* GDB now supports C/C++ preprocessor macros.
1981
1982GDB now expands preprocessor macro invocations in C/C++ expressions,
1983and provides various commands for showing macro definitions and how
1984they expand.
1985
dd73b9bb
AC
1986The new command `macro expand EXPRESSION' expands any macro
1987invocations in expression, and shows the result.
1988
1989The new command `show macro MACRO-NAME' shows the definition of the
1990macro named MACRO-NAME, and where it was defined.
1991
e0e9281e
JB
1992Most compilers don't include information about macros in the debugging
1993information by default. In GCC 3.1, for example, you need to compile
1994your program with the options `-gdwarf-2 -g3'. If the macro
1995information is present in the executable, GDB will read it.
1996
2250ee0c
CV
1997* Multi-arched targets.
1998
6e3ba3b8
JT
1999DEC Alpha (partial) alpha*-*-*
2000DEC VAX (partial) vax-*-*
2250ee0c 2001NEC V850 v850-*-*
6e3ba3b8 2002National Semiconductor NS32000 (partial) ns32k-*-*
a1789893
GS
2003Motorola 68000 (partial) m68k-*-*
2004Motorola MCORE mcore-*-*
2250ee0c 2005
cd9bfe15 2006* New targets.
e33ce519 2007
456f8b9d
DB
2008Fujitsu FRV architecture added by Red Hat frv*-*-*
2009
e33ce519 2010
da8ca43d
JT
2011* New native configurations
2012
2013Alpha NetBSD alpha*-*-netbsd*
029923d4 2014SH NetBSD sh*-*-netbsdelf*
45888261 2015MIPS NetBSD mips*-*-netbsd*
9ce5c36a 2016UltraSPARC NetBSD sparc64-*-netbsd*
da8ca43d 2017
cd9bfe15
AC
2018* OBSOLETE configurations and files
2019
2020Configurations that have been declared obsolete in this release have
2021been commented out. Unless there is activity to revive these
2022configurations, the next release of GDB will have their sources
2023permanently REMOVED.
2024
92eb23c5 2025Mitsubishi D30V d30v-*-*
a99a9e1b 2026OS/9000 i[34]86-*-os9k
1c7cc583 2027IBM AIX PS/2 i[3456]86-*-aix
7a3085c1 2028Fujitsu FR30 fr30-*-elf*
7fb623f7 2029Motorola Delta 88000 running Sys V m88k-motorola-sysv or delta88
eb4c54a2 2030Argonaut Risc Chip (ARC) arc-*-*
d8ee244c
MK
2031i386 running Mach 3.0 i[3456]86-*-mach3*
2032i386 running Mach i[3456]86-*-mach*
2033i386 running OSF/1 i[3456]86-*osf1mk*
822e978b
AC
2034HP/Apollo 68k Family m68*-apollo*-sysv*,
2035 m68*-apollo*-bsd*,
2036 m68*-hp-bsd*, m68*-hp-hpux*
4d210288 2037I960 with MON960 i960-*-coff
92eb23c5 2038
db034ac5
AC
2039* OBSOLETE languages
2040
2041CHILL, a Pascal like language used by telecommunications companies.
2042
cd9bfe15
AC
2043* REMOVED configurations and files
2044
2045AMD 29k family via UDI a29k-amd-udi, udi29k
2046A29K VxWorks a29k-*-vxworks
2047AMD 29000 embedded, using EBMON a29k-none-none
2048AMD 29000 embedded with COFF a29k-none-coff
2049AMD 29000 embedded with a.out a29k-none-aout
2050
2051testsuite/gdb.hp/gdb.threads-hp/ directory
2052
20f01a46
DH
2053* New command "set max-user-call-depth <nnn>"
2054
2055This command allows the user to limit the call depth of user-defined
2056commands. The default is 1024.
2057
a5941fbf
MK
2058* Changes in FreeBSD/i386 native debugging.
2059
2060Support for the "generate-core-file" has been added.
2061
89743e04
MS
2062* New commands "dump", "append", and "restore".
2063
2064These commands allow data to be copied from target memory
2065to a bfd-format or binary file (dump and append), and back
2066from a file into memory (restore).
37057839 2067
9fb14e79
JB
2068* Improved "next/step" support on multi-processor Alpha Tru64.
2069
2070The previous single-step mechanism could cause unpredictable problems,
2071including the random appearance of SIGSEGV or SIGTRAP signals. The use
2072of a software single-step mechanism prevents this.
2073
2037aebb
AC
2074*** Changes in GDB 5.2.1:
2075
2076* New targets.
2077
2078Atmel AVR avr*-*-*
2079
2080* Bug fixes
2081
2082gdb/182: gdb/323: gdb/237: On alpha, gdb was reporting:
2083mdebugread.c:2443: gdb-internal-error: sect_index_data not initialized
2084Fix, by Joel Brobecker imported from mainline.
2085
2086gdb/439: gdb/291: On some ELF object files, gdb was reporting:
2087dwarf2read.c:1072: gdb-internal-error: sect_index_text not initialize
2088Fix, by Fred Fish, imported from mainline.
2089
2090Dwarf2 .debug_frame & .eh_frame handler improved in many ways.
2091Surprisingly enough, it works now.
2092By Michal Ludvig, imported from mainline.
2093
2094i386 hardware watchpoint support:
2095avoid misses on second run for some targets.
2096By Pierre Muller, imported from mainline.
2097
37057839 2098*** Changes in GDB 5.2:
eb7cedd9 2099
1a703748
MS
2100* New command "set trust-readonly-sections on[off]".
2101
2102This command is a hint that tells gdb that read-only sections
2103really are read-only (ie. that their contents will not change).
2104In this mode, gdb will go to the object file rather than the
2105target to read memory from read-only sections (such as ".text").
2106This can be a significant performance improvement on some
2107(notably embedded) targets.
2108
cefd4ef5
MS
2109* New command "generate-core-file" (or "gcore").
2110
55241689
AC
2111This new gdb command allows the user to drop a core file of the child
2112process state at any time. So far it's been implemented only for
2113GNU/Linux and Solaris, but should be relatively easily ported to other
2114hosts. Argument is core file name (defaults to core.<pid>).
cefd4ef5 2115
352ed7b4
MS
2116* New command line option
2117
2118GDB now accepts --pid or -p followed by a process id.
2119
2120* Change in command line behavior -- corefiles vs. process ids.
2121
2122There is a subtle behavior in the way in which GDB handles
2123command line arguments. The first non-flag argument is always
2124a program to debug, but the second non-flag argument may either
2125be a corefile or a process id. Previously, GDB would attempt to
2126open the second argument as a corefile, and if that failed, would
2127issue a superfluous error message and then attempt to attach it as
2128a process. Now, if the second argument begins with a non-digit,
2129it will be treated as a corefile. If it begins with a digit,
2130GDB will attempt to attach it as a process, and if no such process
2131is found, will then attempt to open it as a corefile.
2132
fe419ffc
RE
2133* Changes in ARM configurations.
2134
2135Multi-arch support is enabled for all ARM configurations. The ARM/NetBSD
2136configuration is fully multi-arch.
2137
eb7cedd9
MK
2138* New native configurations
2139
fe419ffc 2140ARM NetBSD arm*-*-netbsd*
eb7cedd9 2141x86 OpenBSD i[3456]86-*-openbsd*
55241689 2142AMD x86-64 running GNU/Linux x86_64-*-linux-*
768f0842 2143Sparc64 running FreeBSD sparc64-*-freebsd*
eb7cedd9 2144
c9f63e6b
CV
2145* New targets
2146
2147Sanyo XStormy16 xstormy16-elf
2148
9b4ff276
AC
2149* OBSOLETE configurations and files
2150
2151Configurations that have been declared obsolete in this release have
2152been commented out. Unless there is activity to revive these
2153configurations, the next release of GDB will have their sources
2154permanently REMOVED.
2155
2156AMD 29k family via UDI a29k-amd-udi, udi29k
2157A29K VxWorks a29k-*-vxworks
2158AMD 29000 embedded, using EBMON a29k-none-none
2159AMD 29000 embedded with COFF a29k-none-coff
2160AMD 29000 embedded with a.out a29k-none-aout
2161
b4ceaee6 2162testsuite/gdb.hp/gdb.threads-hp/ directory
9b4ff276 2163
e2caac18
AC
2164* REMOVED configurations and files
2165
2166TI TMS320C80 tic80-*-*
7bc65f05 2167WDC 65816 w65-*-*
7768dd6c
AC
2168PowerPC Solaris powerpcle-*-solaris*
2169PowerPC Windows NT powerpcle-*-cygwin32
2170PowerPC Netware powerpc-*-netware*
5e734e1f 2171Harris/CXUX m88k m88*-harris-cxux*
1406caf7
AC
2172Most ns32k hosts and targets ns32k-*-mach3* ns32k-umax-*
2173 ns32k-utek-sysv* ns32k-utek-*
7e24f0b1 2174SunOS 4.0.Xi on i386 i[3456]86-*-sunos*
9b567150 2175Ultracomputer (29K) running Sym1 a29k-nyu-sym1 a29k-*-kern*
3680c638
AC
2176Sony NEWS (68K) running NEWSOS 3.x m68*-sony-sysv news
2177ISI Optimum V (3.05) under 4.3bsd. m68*-isi-*
a752853e 2178Apple Macintosh (MPW) host and target N/A host, powerpc-*-macos*
e2caac18 2179
c2a727fa
TT
2180* Changes to command line processing
2181
2182The new `--args' feature can be used to specify command-line arguments
2183for the inferior from gdb's command line.
2184
467d8519
TT
2185* Changes to key bindings
2186
2187There is a new `operate-and-get-next' function bound to `C-o'.
2188
7072a954
AC
2189*** Changes in GDB 5.1.1
2190
2191Fix compile problem on DJGPP.
2192
2193Fix a problem with floating-point registers on the i386 being
2194corrupted.
2195
2196Fix to stop GDB crashing on .debug_str debug info.
2197
2198Numerous documentation fixes.
2199
2200Numerous testsuite fixes.
2201
34f47bc4 2202*** Changes in GDB 5.1:
139760b7
MK
2203
2204* New native configurations
2205
2206Alpha FreeBSD alpha*-*-freebsd*
2207x86 FreeBSD 3.x and 4.x i[3456]86*-freebsd[34]*
55241689 2208MIPS GNU/Linux mips*-*-linux*
e23194cb
EZ
2209MIPS SGI Irix 6.x mips*-sgi-irix6*
2210ia64 AIX ia64-*-aix*
55241689 2211s390 and s390x GNU/Linux {s390,s390x}-*-linux*
139760b7 2212
bf64bfd6
AC
2213* New targets
2214
def90278 2215Motorola 68HC11 and 68HC12 m68hc11-elf
24be5c34 2216CRIS cris-axis
55241689 2217UltraSparc running GNU/Linux sparc64-*-linux*
def90278 2218
17e78a56 2219* OBSOLETE configurations and files
bf64bfd6
AC
2220
2221x86 FreeBSD before 2.2 i[3456]86*-freebsd{1,2.[01]}*,
9b9c068d 2222Harris/CXUX m88k m88*-harris-cxux*
bb19ff3b
AC
2223Most ns32k hosts and targets ns32k-*-mach3* ns32k-umax-*
2224 ns32k-utek-sysv* ns32k-utek-*
76f4ea53
AC
2225TI TMS320C80 tic80-*-*
2226WDC 65816 w65-*-*
4a1968f4 2227Ultracomputer (29K) running Sym1 a29k-nyu-sym1 a29k-*-kern*
1b2b2c16
AC
2228PowerPC Solaris powerpcle-*-solaris*
2229PowerPC Windows NT powerpcle-*-cygwin32
2230PowerPC Netware powerpc-*-netware*
24f89b68 2231SunOS 4.0.Xi on i386 i[3456]86-*-sunos*
514e603d
AC
2232Sony NEWS (68K) running NEWSOS 3.x m68*-sony-sysv news
2233ISI Optimum V (3.05) under 4.3bsd. m68*-isi-*
d036b4d9 2234Apple Macintosh (MPW) host N/A
bf64bfd6 2235
17e78a56
AC
2236stuff.c (Program to stuff files into a specially prepared space in kdb)
2237kdb-start.c (Main loop for the standalone kernel debugger)
2238
7fcca85b
AC
2239Configurations that have been declared obsolete in this release have
2240been commented out. Unless there is activity to revive these
2241configurations, the next release of GDB will have their sources
2242permanently REMOVED.
2243
a196c81c 2244* REMOVED configurations and files
7fcca85b
AC
2245
2246Altos 3068 m68*-altos-*
2247Convex c1-*-*, c2-*-*
2248Pyramid pyramid-*-*
2249ARM RISCix arm-*-* (as host)
2250Tahoe tahoe-*-*
a196c81c 2251ser-ocd.c *-*-*
bf64bfd6 2252
6d6b80e5 2253* GDB has been converted to ISO C.
e23194cb 2254
6d6b80e5 2255GDB's source code has been converted to ISO C. In particular, the
e23194cb
EZ
2256sources are fully protoized, and rely on standard headers being
2257present.
2258
bf64bfd6
AC
2259* Other news:
2260
e23194cb
EZ
2261* "info symbol" works on platforms which use COFF, ECOFF, XCOFF, and NLM.
2262
2263* The MI enabled by default.
2264
2265The new machine oriented interface (MI) introduced in GDB 5.0 has been
2266revised and enabled by default. Packages which use GDB as a debugging
2267engine behind a UI or another front end are encouraged to switch to
2268using the GDB/MI interface, instead of the old annotations interface
2269which is now deprecated.
2270
2271* Support for debugging Pascal programs.
2272
2273GDB now includes support for debugging Pascal programs. The following
2274main features are supported:
2275
2276 - Pascal-specific data types such as sets;
2277
2278 - automatic recognition of Pascal sources based on file-name
2279 extension;
2280
2281 - Pascal-style display of data types, variables, and functions;
2282
2283 - a Pascal expression parser.
2284
2285However, some important features are not yet supported.
2286
2287 - Pascal string operations are not supported at all;
2288
2289 - there are some problems with boolean types;
2290
2291 - Pascal type hexadecimal constants are not supported
2292 because they conflict with the internal variables format;
2293
2294 - support for Pascal objects and classes is not full yet;
2295
2296 - unlike Pascal, GDB is case-sensitive for symbol names.
2297
2298* Changes in completion.
2299
2300Commands such as `shell', `run' and `set args', which pass arguments
2301to inferior programs, now complete on file names, similar to what
2302users expect at the shell prompt.
2303
2304Commands which accept locations, such as `disassemble', `print',
2305`breakpoint', `until', etc. now complete on filenames as well as
2306program symbols. Thus, if you type "break foob TAB", and the source
2307files linked into the programs include `foobar.c', that file name will
2308be one of the candidates for completion. However, file names are not
2309considered for completion after you typed a colon that delimits a file
2310name from a name of a function in that file, as in "break foo.c:bar".
2311
2312`set demangle-style' completes on available demangling styles.
2313
2314* New platform-independent commands:
2315
2316It is now possible to define a post-hook for a command as well as a
2317hook that runs before the command. For more details, see the
2318documentation of `hookpost' in the GDB manual.
2319
2320* Changes in GNU/Linux native debugging.
2321
d7275149
MK
2322Support for debugging multi-threaded programs has been completely
2323revised for all platforms except m68k and sparc. You can now debug as
2324many threads as your system allows you to have.
2325
e23194cb
EZ
2326Attach/detach is supported for multi-threaded programs.
2327
d7275149
MK
2328Support for SSE registers was added for x86. This doesn't work for
2329multi-threaded programs though.
e23194cb
EZ
2330
2331* Changes in MIPS configurations.
bf64bfd6
AC
2332
2333Multi-arch support is enabled for all MIPS configurations.
2334
e23194cb
EZ
2335GDB can now be built as native debugger on SGI Irix 6.x systems for
2336debugging n32 executables. (Debugging 64-bit executables is not yet
2337supported.)
2338
2339* Unified support for hardware watchpoints in all x86 configurations.
2340
2341Most (if not all) native x86 configurations support hardware-assisted
2342breakpoints and watchpoints in a unified manner. This support
2343implements debug register sharing between watchpoints, which allows to
2344put a virtually infinite number of watchpoints on the same address,
2345and also supports watching regions up to 16 bytes with several debug
2346registers.
2347
2348The new maintenance command `maintenance show-debug-regs' toggles
2349debugging print-outs in functions that insert, remove, and test
2350watchpoints and hardware breakpoints.
2351
2352* Changes in the DJGPP native configuration.
2353
2354New command ``info dos sysinfo'' displays assorted information about
2355the CPU, OS, memory, and DPMI server.
2356
2357New commands ``info dos gdt'', ``info dos ldt'', and ``info dos idt''
2358display information about segment descriptors stored in GDT, LDT, and
2359IDT.
2360
2361New commands ``info dos pde'' and ``info dos pte'' display entries
2362from Page Directory and Page Tables (for now works with CWSDPMI only).
2363New command ``info dos address-pte'' displays the Page Table entry for
2364a given linear address.
2365
2366GDB can now pass command lines longer than 126 characters to the
2367program being debugged (requires an update to the libdbg.a library
2368which is part of the DJGPP development kit).
2369
2370DWARF2 debug info is now supported.
2371
6c56c069
EZ
2372It is now possible to `step' and `next' through calls to `longjmp'.
2373
e23194cb
EZ
2374* Changes in documentation.
2375
2376All GDB documentation was converted to GFDL, the GNU Free
2377Documentation License.
2378
2379Tracepoints-related commands are now fully documented in the GDB
2380manual.
2381
2382TUI, the Text-mode User Interface, is now documented in the manual.
2383
2384Tracepoints-related commands are now fully documented in the GDB
2385manual.
2386
2387The "GDB Internals" manual now has an index. It also includes
2388documentation of `ui_out' functions, GDB coding standards, x86
2389hardware watchpoints, and memory region attributes.
2390
5d6640b1
AC
2391* GDB's version number moved to ``version.in''
2392
2393The Makefile variable VERSION has been replaced by the file
2394``version.in''. People creating GDB distributions should update the
2395contents of this file.
2396
1a1d8446
AC
2397* gdba.el deleted
2398
2399GUD support is now a standard part of the EMACS distribution.
139760b7 2400
9debab2f 2401*** Changes in GDB 5.0:
7a292a7a 2402
c63ce875
EZ
2403* Improved support for debugging FP programs on x86 targets
2404
2405Unified and much-improved support for debugging floating-point
2406programs on all x86 targets. In particular, ``info float'' now
2407displays the FP registers in the same format on all x86 targets, with
2408greater level of detail.
2409
2410* Improvements and bugfixes in hardware-assisted watchpoints
2411
2412It is now possible to watch array elements, struct members, and
2413bitfields with hardware-assisted watchpoints. Data-read watchpoints
2414on x86 targets no longer erroneously trigger when the address is
2415written.
2416
2417* Improvements in the native DJGPP version of GDB
2418
2419The distribution now includes all the scripts and auxiliary files
2420necessary to build the native DJGPP version on MS-DOS/MS-Windows
2421machines ``out of the box''.
2422
2423The DJGPP version can now debug programs that use signals. It is
2424possible to catch signals that happened in the debuggee, deliver
2425signals to it, interrupt it with Ctrl-C, etc. (Previously, a signal
2426would kill the program being debugged.) Programs that hook hardware
2427interrupts (keyboard, timer, etc.) can also be debugged.
2428
2429It is now possible to debug DJGPP programs that redirect their
2430standard handles or switch them to raw (as opposed to cooked) mode, or
2431even close them. The command ``run < foo > bar'' works as expected,
2432and ``info terminal'' reports useful information about the debuggee's
2433terminal, including raw/cooked mode, redirection, etc.
2434
2435The DJGPP version now uses termios functions for console I/O, which
2436enables debugging graphics programs. Interrupting GDB with Ctrl-C
2437also works.
2438
2439DOS-style file names with drive letters are now fully supported by
2440GDB.
2441
2442It is now possible to debug DJGPP programs that switch their working
2443directory. It is also possible to rerun the debuggee any number of
2444times without restarting GDB; thus, you can use the same setup,
2445breakpoints, etc. for many debugging sessions.
2446
ed9a39eb
JM
2447* New native configurations
2448
2449ARM GNU/Linux arm*-*-linux*
afc05dd4 2450PowerPC GNU/Linux powerpc-*-linux*
ed9a39eb 2451
7a292a7a
SS
2452* New targets
2453
96baa820 2454Motorola MCore mcore-*-*
adf40b2e
JM
2455x86 VxWorks i[3456]86-*-vxworks*
2456PowerPC VxWorks powerpc-*-vxworks*
7a292a7a
SS
2457TI TMS320C80 tic80-*-*
2458
085dd6e6
JM
2459* OBSOLETE configurations
2460
2461Altos 3068 m68*-altos-*
2462Convex c1-*-*, c2-*-*
9846de1b 2463Pyramid pyramid-*-*
ed9a39eb 2464ARM RISCix arm-*-* (as host)
104c1213 2465Tahoe tahoe-*-*
7a292a7a 2466
9debab2f
AC
2467Configurations that have been declared obsolete will be commented out,
2468but the code will be left in place. If there is no activity to revive
2469these configurations before the next release of GDB, the sources will
2470be permanently REMOVED.
2471
5330533d
SS
2472* Gould support removed
2473
2474Support for the Gould PowerNode and NP1 has been removed.
2475
bc9e5bbf
AC
2476* New features for SVR4
2477
2478On SVR4 native platforms (such as Solaris), if you attach to a process
2479without first loading a symbol file, GDB will now attempt to locate and
2480load symbols from the running process's executable file.
2481
2482* Many C++ enhancements
2483
2484C++ support has been greatly improved. Overload resolution now works properly
2485in almost all cases. RTTI support is on the way.
2486
adf40b2e
JM
2487* Remote targets can connect to a sub-program
2488
2489A popen(3) style serial-device has been added. This device starts a
2490sub-process (such as a stand-alone simulator) and then communicates
2491with that. The sub-program to run is specified using the syntax
2492``|<program> <args>'' vis:
2493
2494 (gdb) set remotedebug 1
2495 (gdb) target extended-remote |mn10300-elf-sim program-args
2496
43e526b9
JM
2497* MIPS 64 remote protocol
2498
2499A long standing bug in the mips64 remote protocol where by GDB
2500expected certain 32 bit registers (ex SR) to be transfered as 32
2501instead of 64 bits has been fixed.
2502
2503The command ``set remote-mips64-transfers-32bit-regs on'' has been
2504added to provide backward compatibility with older versions of GDB.
2505
96baa820
JM
2506* ``set remotebinarydownload'' replaced by ``set remote X-packet''
2507
2508The command ``set remotebinarydownload'' command has been replaced by
2509``set remote X-packet''. Other commands in ``set remote'' family
2510include ``set remote P-packet''.
2511
11cf8741
JM
2512* Breakpoint commands accept ranges.
2513
2514The breakpoint commands ``enable'', ``disable'', and ``delete'' now
2515accept a range of breakpoints, e.g. ``5-7''. The tracepoint command
2516``tracepoint passcount'' also accepts a range of tracepoints.
2517
7876dd43
DB
2518* ``apropos'' command added.
2519
2520The ``apropos'' command searches through command names and
2521documentation strings, printing out matches, making it much easier to
2522try to find a command that does what you are looking for.
2523
bc9e5bbf
AC
2524* New MI interface
2525
2526A new machine oriented interface (MI) has been added to GDB. This
2527interface is designed for debug environments running GDB as a separate
7162c0ca
EZ
2528process. This is part of the long term libGDB project. See the
2529"GDB/MI" chapter of the GDB manual for further information. It can be
2530enabled by configuring with:
bc9e5bbf
AC
2531
2532 .../configure --enable-gdbmi
2533
c906108c
SS
2534*** Changes in GDB-4.18:
2535
2536* New native configurations
2537
2538HP-UX 10.20 hppa*-*-hpux10.20
2539HP-UX 11.x hppa*-*-hpux11.0*
55241689 2540M68K GNU/Linux m68*-*-linux*
c906108c
SS
2541
2542* New targets
2543
2544Fujitsu FR30 fr30-*-elf*
2545Intel StrongARM strongarm-*-*
2546Mitsubishi D30V d30v-*-*
2547
2548* OBSOLETE configurations
2549
2550Gould PowerNode, NP1 np1-*-*, pn-*-*
2551
2552Configurations that have been declared obsolete will be commented out,
2553but the code will be left in place. If there is no activity to revive
2554these configurations before the next release of GDB, the sources will
2555be permanently REMOVED.
2556
2557* ANSI/ISO C
2558
2559As a compatibility experiment, GDB's source files buildsym.h and
2560buildsym.c have been converted to pure standard C, no longer
2561containing any K&R compatibility code. We believe that all systems in
2562use today either come with a standard C compiler, or have a GCC port
2563available. If this is not true, please report the affected
2564configuration to bug-gdb@gnu.org immediately. See the README file for
2565information about getting a standard C compiler if you don't have one
2566already.
2567
2568* Readline 2.2
2569
2570GDB now uses readline 2.2.
2571
2572* set extension-language
2573
2574You can now control the mapping between filename extensions and source
2575languages by using the `set extension-language' command. For instance,
2576you can ask GDB to treat .c files as C++ by saying
2577 set extension-language .c c++
2578The command `info extensions' lists all of the recognized extensions
2579and their associated languages.
2580
2581* Setting processor type for PowerPC and RS/6000
2582
2583When GDB is configured for a powerpc*-*-* or an rs6000*-*-* target,
2584you can use the `set processor' command to specify what variant of the
2585PowerPC family you are debugging. The command
2586
2587 set processor NAME
2588
2589sets the PowerPC/RS6000 variant to NAME. GDB knows about the
2590following PowerPC and RS6000 variants:
2591
2592 ppc-uisa PowerPC UISA - a PPC processor as viewed by user-level code
2593 rs6000 IBM RS6000 ("POWER") architecture, user-level view
2594 403 IBM PowerPC 403
2595 403GC IBM PowerPC 403GC
2596 505 Motorola PowerPC 505
2597 860 Motorola PowerPC 860 or 850
2598 601 Motorola PowerPC 601
2599 602 Motorola PowerPC 602
2600 603 Motorola/IBM PowerPC 603 or 603e
2601 604 Motorola PowerPC 604 or 604e
2602 750 Motorola/IBM PowerPC 750 or 750
2603
2604At the moment, this command just tells GDB what to name the
2605special-purpose processor registers. Since almost all the affected
2606registers are inaccessible to user-level programs, this command is
2607only useful for remote debugging in its present form.
2608
2609* HP-UX support
2610
2611Thanks to a major code donation from Hewlett-Packard, GDB now has much
2612more extensive support for HP-UX. Added features include shared
2613library support, kernel threads and hardware watchpoints for 11.00,
2614support for HP's ANSI C and C++ compilers, and a compatibility mode
2615for xdb and dbx commands.
2616
2617* Catchpoints
2618
2619HP's donation includes the new concept of catchpoints, which is a
2620generalization of the old catch command. On HP-UX, it is now possible
2621to catch exec, fork, and vfork, as well as library loading.
2622
2623This means that the existing catch command has changed; its first
2624argument now specifies the type of catch to be set up. See the
2625output of "help catch" for a list of catchpoint types.
2626
2627* Debugging across forks
2628
2629On HP-UX, you can choose which process to debug when a fork() happens
2630in the inferior.
2631
2632* TUI
2633
2634HP has donated a curses-based terminal user interface (TUI). To get
2635it, build with --enable-tui. Although this can be enabled for any
2636configuration, at present it only works for native HP debugging.
2637
2638* GDB remote protocol additions
2639
2640A new protocol packet 'X' that writes binary data is now available.
2641Default behavior is to try 'X', then drop back to 'M' if the stub
2642fails to respond. The settable variable `remotebinarydownload'
2643allows explicit control over the use of 'X'.
2644
2645For 64-bit targets, the memory packets ('M' and 'm') can now contain a
2646full 64-bit address. The command
2647
2648 set remoteaddresssize 32
2649
2650can be used to revert to the old behaviour. For existing remote stubs
2651the change should not be noticed, as the additional address information
2652will be discarded.
2653
2654In order to assist in debugging stubs, you may use the maintenance
2655command `packet' to send any text string to the stub. For instance,
2656
2657 maint packet heythere
2658
2659sends the packet "$heythere#<checksum>". Note that it is very easy to
2660disrupt a debugging session by sending the wrong packet at the wrong
2661time.
2662
2663The compare-sections command allows you to compare section data on the
2664target to what is in the executable file without uploading or
2665downloading, by comparing CRC checksums.
2666
2667* Tracing can collect general expressions
2668
2669You may now collect general expressions at tracepoints. This requires
2670further additions to the target-side stub; see tracepoint.c and
2671doc/agentexpr.texi for further details.
2672
2673* mask-address variable for Mips
2674
2675For Mips targets, you may control the zeroing of the upper 32 bits of
2676a 64-bit address by entering `set mask-address on'. This is mainly
2677of interest to users of embedded R4xxx and R5xxx processors.
2678
2679* Higher serial baud rates
2680
2681GDB's serial code now allows you to specify baud rates 57600, 115200,
2682230400, and 460800 baud. (Note that your host system may not be able
2683to achieve all of these rates.)
2684
2685* i960 simulator
2686
2687The i960 configuration now includes an initial implementation of a
2688builtin simulator, contributed by Jim Wilson.
2689
2690
2691*** Changes in GDB-4.17:
2692
2693* New native configurations
2694
2695Alpha GNU/Linux alpha*-*-linux*
2696Unixware 2.x i[3456]86-unixware2*
2697Irix 6.x mips*-sgi-irix6*
2698PowerPC GNU/Linux powerpc-*-linux*
2699PowerPC Solaris powerpcle-*-solaris*
2700Sparc GNU/Linux sparc-*-linux*
2701Motorola sysV68 R3V7.1 m68k-motorola-sysv
2702
2703* New targets
2704
2705Argonaut Risc Chip (ARC) arc-*-*
2706Hitachi H8/300S h8300*-*-*
2707Matsushita MN10200 w/simulator mn10200-*-*
2708Matsushita MN10300 w/simulator mn10300-*-*
2709MIPS NEC VR4100 mips64*vr4100*{,el}-*-elf*
2710MIPS NEC VR5000 mips64*vr5000*{,el}-*-elf*
2711MIPS Toshiba TX39 mips64*tx39*{,el}-*-elf*
2712Mitsubishi D10V w/simulator d10v-*-*
2713Mitsubishi M32R/D w/simulator m32r-*-elf*
2714Tsqware Sparclet sparclet-*-*
2715NEC V850 w/simulator v850-*-*
2716
2717* New debugging protocols
2718
2719ARM with RDI protocol arm*-*-*
2720M68K with dBUG monitor m68*-*-{aout,coff,elf}
2721DDB and LSI variants of PMON protocol mips*-*-*
2722PowerPC with DINK32 monitor powerpc{,le}-*-eabi
2723PowerPC with SDS protocol powerpc{,le}-*-eabi
2724Macraigor OCD (Wiggler) devices powerpc{,le}-*-eabi
2725
2726* DWARF 2
2727
2728All configurations can now understand and use the DWARF 2 debugging
2729format. The choice is automatic, if the symbol file contains DWARF 2
2730information.
2731
2732* Java frontend
2733
2734GDB now includes basic Java language support. This support is
2735only useful with Java compilers that produce native machine code.
2736
2737* solib-absolute-prefix and solib-search-path
2738
2739For SunOS and SVR4 shared libraries, you may now set the prefix for
2740loading absolute shared library symbol files, and the search path for
2741locating non-absolute shared library symbol files.
2742
2743* Live range splitting
2744
2745GDB can now effectively debug code for which GCC has performed live
2746range splitting as part of its optimization. See gdb/doc/LRS for
2747more details on the expected format of the stabs information.
2748
2749* Hurd support
2750
2751GDB's support for the GNU Hurd, including thread debugging, has been
2752updated to work with current versions of the Hurd.
2753
2754* ARM Thumb support
2755
2756GDB's ARM target configuration now handles the ARM7T (Thumb) 16-bit
2757instruction set. ARM GDB automatically detects when Thumb
2758instructions are in use, and adjusts disassembly and backtracing
2759accordingly.
2760
2761* MIPS16 support
2762
2763GDB's MIPS target configurations now handle the MIP16 16-bit
2764instruction set.
2765
2766* Overlay support
2767
2768GDB now includes support for overlays; if an executable has been
2769linked such that multiple sections are based at the same address, GDB
2770will decide which section to use for symbolic info. You can choose to
2771control the decision manually, using overlay commands, or implement
2772additional target-side support and use "overlay load-target" to bring
2773in the overlay mapping. Do "help overlay" for more detail.
2774
2775* info symbol
2776
2777The command "info symbol <address>" displays information about
2778the symbol at the specified address.
2779
2780* Trace support
2781
2782The standard remote protocol now includes an extension that allows
2783asynchronous collection and display of trace data. This requires
2784extensive support in the target-side debugging stub. Tracing mode
2785includes a new interaction mode in GDB and new commands: see the
2786file tracepoint.c for more details.
2787
2788* MIPS simulator
2789
2790Configurations for embedded MIPS now include a simulator contributed
2791by Cygnus Solutions. The simulator supports the instruction sets
2792of most MIPS variants.
2793
2794* Sparc simulator
2795
2796Sparc configurations may now include the ERC32 simulator contributed
2797by the European Space Agency. The simulator is not built into
2798Sparc targets by default; configure with --enable-sim to include it.
2799
2800* set architecture
2801
2802For target configurations that may include multiple variants of a
2803basic architecture (such as MIPS and SH), you may now set the
2804architecture explicitly. "set arch" sets, "info arch" lists
2805the possible architectures.
2806
2807*** Changes in GDB-4.16:
2808
2809* New native configurations
2810
2811Windows 95, x86 Windows NT i[345]86-*-cygwin32
2812M68K NetBSD m68k-*-netbsd*
2813PowerPC AIX 4.x powerpc-*-aix*
2814PowerPC MacOS powerpc-*-macos*
2815PowerPC Windows NT powerpcle-*-cygwin32
2816RS/6000 AIX 4.x rs6000-*-aix4*
2817
2818* New targets
2819
2820ARM with RDP protocol arm-*-*
2821I960 with MON960 i960-*-coff
2822MIPS VxWorks mips*-*-vxworks*
2823MIPS VR4300 with PMON mips64*vr4300{,el}-*-elf*
2824PowerPC with PPCBUG monitor powerpc{,le}-*-eabi*
2825Hitachi SH3 sh-*-*
2826Matra Sparclet sparclet-*-*
2827
2828* PowerPC simulator
2829
2830The powerpc-eabi configuration now includes the PSIM simulator,
2831contributed by Andrew Cagney, with assistance from Mike Meissner.
2832PSIM is a very elaborate model of the PowerPC, including not only
2833basic instruction set execution, but also details of execution unit
2834performance and I/O hardware. See sim/ppc/README for more details.
2835
2836* Solaris 2.5
2837
2838GDB now works with Solaris 2.5.
2839
2840* Windows 95/NT native
2841
2842GDB will now work as a native debugger on Windows 95 and Windows NT.
2843To build it from source, you must use the "gnu-win32" environment,
2844which uses a DLL to emulate enough of Unix to run the GNU tools.
2845Further information, binaries, and sources are available at
2846ftp.cygnus.com, under pub/gnu-win32.
2847
2848* dont-repeat command
2849
2850If a user-defined command includes the command `dont-repeat', then the
2851command will not be repeated if the user just types return. This is
2852useful if the command is time-consuming to run, so that accidental
2853extra keystrokes don't run the same command many times.
2854
2855* Send break instead of ^C
2856
2857The standard remote protocol now includes an option to send a break
2858rather than a ^C to the target in order to interrupt it. By default,
2859GDB will send ^C; to send a break, set the variable `remotebreak' to 1.
2860
2861* Remote protocol timeout
2862
2863The standard remote protocol includes a new variable `remotetimeout'
2864that allows you to set the number of seconds before GDB gives up trying
2865to read from the target. The default value is 2.
2866
2867* Automatic tracking of dynamic object loading (HPUX and Solaris only)
2868
2869By default GDB will automatically keep track of objects as they are
2870loaded and unloaded by the dynamic linker. By using the command `set
2871stop-on-solib-events 1' you can arrange for GDB to stop the inferior
2872when shared library events occur, thus allowing you to set breakpoints
2873in shared libraries which are explicitly loaded by the inferior.
2874
2875Note this feature does not work on hpux8. On hpux9 you must link
2876/usr/lib/end.o into your program. This feature should work
2877automatically on hpux10.
2878
2879* Irix 5.x hardware watchpoint support
2880
2881Irix 5 configurations now support the use of hardware watchpoints.
2882
2883* Mips protocol "SYN garbage limit"
2884
2885When debugging a Mips target using the `target mips' protocol, you
2886may set the number of characters that GDB will ignore by setting
2887the `syn-garbage-limit'. A value of -1 means that GDB will ignore
2888every character. The default value is 1050.
2889
2890* Recording and replaying remote debug sessions
2891
2892If you set `remotelogfile' to the name of a file, gdb will write to it
2893a recording of a remote debug session. This recording may then be
2894replayed back to gdb using "gdbreplay". See gdbserver/README for
2895details. This is useful when you have a problem with GDB while doing
2896remote debugging; you can make a recording of the session and send it
2897to someone else, who can then recreate the problem.
2898
2899* Speedups for remote debugging
2900
2901GDB includes speedups for downloading and stepping MIPS systems using
2902the IDT monitor, fast downloads to the Hitachi SH E7000 emulator,
2903and more efficient S-record downloading.
2904
2905* Memory use reductions and statistics collection
2906
2907GDB now uses less memory and reports statistics about memory usage.
2908Try the `maint print statistics' command, for example.
2909
2910*** Changes in GDB-4.15:
2911
2912* Psymtabs for XCOFF
2913
2914The symbol reader for AIX GDB now uses partial symbol tables. This
2915can greatly improve startup time, especially for large executables.
2916
2917* Remote targets use caching
2918
2919Remote targets now use a data cache to speed up communication with the
2920remote side. The data cache could lead to incorrect results because
2921it doesn't know about volatile variables, thus making it impossible to
2922debug targets which use memory mapped I/O devices. `set remotecache
2923off' turns the the data cache off.
2924
2925* Remote targets may have threads
2926
2927The standard remote protocol now includes support for multiple threads
2928in the target system, using new protocol commands 'H' and 'T'. See
2929gdb/remote.c for details.
2930
2931* NetROM support
2932
2933If GDB is configured with `--enable-netrom', then it will include
2934support for the NetROM ROM emulator from XLNT Designs. The NetROM
2935acts as though it is a bank of ROM on the target board, but you can
2936write into it over the network. GDB's support consists only of
2937support for fast loading into the emulated ROM; to debug, you must use
2938another protocol, such as standard remote protocol. The usual
2939sequence is something like
2940
2941 target nrom <netrom-hostname>
2942 load <prog>
2943 target remote <netrom-hostname>:1235
2944
2945* Macintosh host
2946
2947GDB now includes support for the Apple Macintosh, as a host only. It
2948may be run as either an MPW tool or as a standalone application, and
2949it can debug through the serial port. All the usual GDB commands are
2950available, but to the target command, you must supply "serial" as the
2951device type instead of "/dev/ttyXX". See mpw-README in the main
2952directory for more information on how to build. The MPW configuration
2953scripts */mpw-config.in support only a few targets, and only the
2954mips-idt-ecoff target has been tested.
2955
2956* Autoconf
2957
2958GDB configuration now uses autoconf. This is not user-visible,
2959but does simplify configuration and building.
2960
2961* hpux10
2962
2963GDB now supports hpux10.
2964
2965*** Changes in GDB-4.14:
2966
2967* New native configurations
2968
2969x86 FreeBSD i[345]86-*-freebsd
2970x86 NetBSD i[345]86-*-netbsd
2971NS32k NetBSD ns32k-*-netbsd
2972Sparc NetBSD sparc-*-netbsd
2973
2974* New targets
2975
2976A29K VxWorks a29k-*-vxworks
2977HP PA PRO embedded (WinBond W89K & Oki OP50N) hppa*-*-pro*
2978CPU32 EST-300 emulator m68*-*-est*
2979PowerPC ELF powerpc-*-elf
2980WDC 65816 w65-*-*
2981
2982* Alpha OSF/1 support for procfs
2983
2984GDB now supports procfs under OSF/1-2.x and higher, which makes it
2985possible to attach to running processes. As the mounting of the /proc
2986filesystem is optional on the Alpha, GDB automatically determines
2987the availability of /proc during startup. This can lead to problems
2988if /proc is unmounted after GDB has been started.
2989
2990* Arguments to user-defined commands
2991
2992User commands may accept up to 10 arguments separated by whitespace.
2993Arguments are accessed within the user command via $arg0..$arg9. A
2994trivial example:
2995define adder
2996 print $arg0 + $arg1 + $arg2
2997
2998To execute the command use:
2999adder 1 2 3
3000
3001Defines the command "adder" which prints the sum of its three arguments.
3002Note the arguments are text substitutions, so they may reference variables,
3003use complex expressions, or even perform inferior function calls.
3004
3005* New `if' and `while' commands
3006
3007This makes it possible to write more sophisticated user-defined
3008commands. Both commands take a single argument, which is the
3009expression to evaluate, and must be followed by the commands to
3010execute, one per line, if the expression is nonzero, the list being
3011terminated by the word `end'. The `if' command list may include an
3012`else' word, which causes the following commands to be executed only
3013if the expression is zero.
3014
3015* Fortran source language mode
3016
3017GDB now includes partial support for Fortran 77. It will recognize
3018Fortran programs and can evaluate a subset of Fortran expressions, but
3019variables and functions may not be handled correctly. GDB will work
3020with G77, but does not yet know much about symbols emitted by other
3021Fortran compilers.
3022
3023* Better HPUX support
3024
3025Most debugging facilities now work on dynamic executables for HPPAs
3026running hpux9 or later. You can attach to running dynamically linked
3027processes, but by default the dynamic libraries will be read-only, so
3028for instance you won't be able to put breakpoints in them. To change
3029that behavior do the following before running the program:
3030
3031 adb -w a.out
3032 __dld_flags?W 0x5
3033 control-d
3034
3035This will cause the libraries to be mapped private and read-write.
3036To revert to the normal behavior, do this:
3037
3038 adb -w a.out
3039 __dld_flags?W 0x4
3040 control-d
3041
3042You cannot set breakpoints or examine data in the library until after
3043the library is loaded if the function/data symbols do not have
3044external linkage.
3045
3046GDB can now also read debug symbols produced by the HP C compiler on
3047HPPAs (sorry, no C++, Fortran or 68k support).
3048
3049* Target byte order now dynamically selectable
3050
3051You can choose which byte order to use with a target system, via the
3052commands "set endian big" and "set endian little", and you can see the
3053current setting by using "show endian". You can also give the command
3054"set endian auto", in which case GDB will use the byte order
3055associated with the executable. Currently, only embedded MIPS
3056configurations support dynamic selection of target byte order.
3057
3058* New DOS host serial code
3059
3060This version uses DPMI interrupts to handle buffered I/O, so you
3061no longer need to run asynctsr when debugging boards connected to
3062a PC's serial port.
3063
3064*** Changes in GDB-4.13:
3065
3066* New "complete" command
3067
3068This lists all the possible completions for the rest of the line, if it
3069were to be given as a command itself. This is intended for use by emacs.
3070
3071* Trailing space optional in prompt
3072
3073"set prompt" no longer adds a space for you after the prompt you set. This
3074allows you to set a prompt which ends in a space or one that does not.
3075
3076* Breakpoint hit counts
3077
3078"info break" now displays a count of the number of times the breakpoint
3079has been hit. This is especially useful in conjunction with "ignore"; you
3080can ignore a large number of breakpoint hits, look at the breakpoint info
3081to see how many times the breakpoint was hit, then run again, ignoring one
3082less than that number, and this will get you quickly to the last hit of
3083that breakpoint.
3084
3085* Ability to stop printing at NULL character
3086
3087"set print null-stop" will cause GDB to stop printing the characters of
3088an array when the first NULL is encountered. This is useful when large
3089arrays actually contain only short strings.
3090
3091* Shared library breakpoints
3092
3093In SunOS 4.x, SVR4, and Alpha OSF/1 configurations, you can now set
3094breakpoints in shared libraries before the executable is run.
3095
3096* Hardware watchpoints
3097
3098There is a new hardware breakpoint for the watch command for sparclite
3099targets. See gdb/sparclite/hw_breakpoint.note.
3100
55241689 3101Hardware watchpoints are also now supported under GNU/Linux.
c906108c
SS
3102
3103* Annotations
3104
3105Annotations have been added. These are for use with graphical interfaces,
3106and are still experimental. Currently only gdba.el uses these.
3107
3108* Improved Irix 5 support
3109
3110GDB now works properly with Irix 5.2.
3111
3112* Improved HPPA support
3113
3114GDB now works properly with the latest GCC and GAS.
3115
3116* New native configurations
3117
3118Sequent PTX4 i[34]86-sequent-ptx4
3119HPPA running OSF/1 hppa*-*-osf*
3120Atari TT running SVR4 m68*-*-sysv4*
3121RS/6000 LynxOS rs6000-*-lynxos*
3122
3123* New targets
3124
3125OS/9000 i[34]86-*-os9k
3126MIPS R4000 mips64*{,el}-*-{ecoff,elf}
3127Sparc64 sparc64-*-*
3128
3129* Hitachi SH7000 and E7000-PC ICE support
3130
3131There is now support for communicating with the Hitachi E7000-PC ICE.
3132This is available automatically when GDB is configured for the SH.
3133
3134* Fixes
3135
3136As usual, a variety of small fixes and improvements, both generic
3137and configuration-specific. See the ChangeLog for more detail.
3138
3139*** Changes in GDB-4.12:
3140
3141* Irix 5 is now supported
3142
3143* HPPA support
3144
3145GDB-4.12 on the HPPA has a number of changes which make it unable
3146to debug the output from the currently released versions of GCC and
3147GAS (GCC 2.5.8 and GAS-2.2 or PAGAS-1.36). Until the next major release
3148of GCC and GAS, versions of these tools designed to work with GDB-4.12
3149can be retrieved via anonymous ftp from jaguar.cs.utah.edu:/dist.
3150
3151
3152*** Changes in GDB-4.11:
3153
3154* User visible changes:
3155
3156* Remote Debugging
3157
3158The "set remotedebug" option is now consistent between the mips remote
3159target, remote targets using the gdb-specific protocol, UDI (AMD's
3160debug protocol for the 29k) and the 88k bug monitor. It is now an
3161integer specifying a debug level (normally 0 or 1, but 2 means more
3162debugging info for the mips target).
3163
3164* DEC Alpha native support
3165
3166GDB now works on the DEC Alpha. GCC 2.4.5 does not produce usable
3167debug info, but GDB works fairly well with the DEC compiler and should
3168work with a future GCC release. See the README file for a few
3169Alpha-specific notes.
3170
3171* Preliminary thread implementation
3172
3173GDB now has preliminary thread support for both SGI/Irix and LynxOS.
3174
3175* LynxOS native and target support for 386
3176
3177This release has been hosted on LynxOS 2.2, and also can be configured
3178to remotely debug programs running under LynxOS (see gdb/gdbserver/README
3179for details).
3180
3181* Improvements in C++ mangling/demangling.
3182
3183This release has much better g++ debugging, specifically in name
3184mangling/demangling, virtual function calls, print virtual table,
3185call methods, ...etc.
3186
3187*** Changes in GDB-4.10:
3188
3189 * User visible changes:
3190
3191Remote debugging using the GDB-specific (`target remote') protocol now
3192supports the `load' command. This is only useful if you have some
3193other way of getting the stub to the target system, and you can put it
3194somewhere in memory where it won't get clobbered by the download.
3195
3196Filename completion now works.
3197
3198When run under emacs mode, the "info line" command now causes the
3199arrow to point to the line specified. Also, "info line" prints
3200addresses in symbolic form (as well as hex).
3201
3202All vxworks based targets now support a user settable option, called
3203vxworks-timeout. This option represents the number of seconds gdb
3204should wait for responses to rpc's. You might want to use this if
3205your vxworks target is, perhaps, a slow software simulator or happens
3206to be on the far side of a thin network line.
3207
3208 * DEC alpha support
3209
3210This release contains support for using a DEC alpha as a GDB host for
3211cross debugging. Native alpha debugging is not supported yet.
3212
3213
3214*** Changes in GDB-4.9:
3215
3216 * Testsuite
3217
3218This is the first GDB release which is accompanied by a matching testsuite.
3219The testsuite requires installation of dejagnu, which should be available
3220via ftp from most sites that carry GNU software.
3221
3222 * C++ demangling
3223
3224'Cfront' style demangling has had its name changed to 'ARM' style, to
3225emphasize that it was written from the specifications in the C++ Annotated
3226Reference Manual, not necessarily to be compatible with AT&T cfront. Despite
3227disclaimers, it still generated too much confusion with users attempting to
3228use gdb with AT&T cfront.
3229
3230 * Simulators
3231
3232GDB now uses a standard remote interface to a simulator library.
3233So far, the library contains simulators for the Zilog Z8001/2, the
3234Hitachi H8/300, H8/500 and Super-H.
3235
3236 * New targets supported
3237
3238H8/300 simulator h8300-hitachi-hms or h8300hms
3239H8/500 simulator h8500-hitachi-hms or h8500hms
3240SH simulator sh-hitachi-hms or sh
3241Z8000 simulator z8k-zilog-none or z8ksim
3242IDT MIPS board over serial line mips-idt-ecoff
3243
3244Cross-debugging to GO32 targets is supported. It requires a custom
3245version of the i386-stub.c module which is integrated with the
3246GO32 memory extender.
3247
3248 * New remote protocols
3249
3250MIPS remote debugging protocol.
3251
3252 * New source languages supported
3253
3254This version includes preliminary support for Chill, a Pascal like language
3255used by telecommunications companies. Chill support is also being integrated
3256into the GNU compiler, but we don't know when it will be publically available.
3257
3258
3259*** Changes in GDB-4.8:
3260
3261 * HP Precision Architecture supported
3262
3263GDB now supports HP PA-RISC machines running HPUX. A preliminary
3264version of this support was available as a set of patches from the
3265University of Utah. GDB does not support debugging of programs
3266compiled with the HP compiler, because HP will not document their file
3267format. Instead, you must use GCC (version 2.3.2 or later) and PA-GAS
3268(as available from jaguar.cs.utah.edu:/dist/pa-gas.u4.tar.Z).
3269
3270Many problems in the preliminary version have been fixed.
3271
3272 * Faster and better demangling
3273
3274We have improved template demangling and fixed numerous bugs in the GNU style
3275demangler. It can now handle type modifiers such as `static' or `const'. Wide
3276character types (wchar_t) are now supported. Demangling of each symbol is now
3277only done once, and is cached when the symbol table for a file is read in.
3278This results in a small increase in memory usage for C programs, a moderate
3279increase in memory usage for C++ programs, and a fantastic speedup in
3280symbol lookups.
3281
3282`Cfront' style demangling still doesn't work with AT&T cfront. It was written
3283from the specifications in the Annotated Reference Manual, which AT&T's
3284compiler does not actually implement.
3285
3286 * G++ multiple inheritance compiler problem
3287
3288In the 2.3.2 release of gcc/g++, how the compiler resolves multiple
3289inheritance lattices was reworked to properly discover ambiguities. We
3290recently found an example which causes this new algorithm to fail in a
3291very subtle way, producing bad debug information for those classes.
3292The file 'gcc.patch' (in this directory) can be applied to gcc to
3293circumvent the problem. A future GCC release will contain a complete
3294fix.
3295
3296The previous G++ debug info problem (mentioned below for the gdb-4.7
3297release) is fixed in gcc version 2.3.2.
3298
3299 * Improved configure script
3300
3301The `configure' script will now attempt to guess your system type if
3302you don't supply a host system type. The old scheme of supplying a
3303host system triplet is preferable over using this. All the magic is
3304done in the new `config.guess' script. Examine it for details.
3305
3306We have also brought our configure script much more in line with the FSF's
3307version. It now supports the --with-xxx options. In particular,
3308`--with-minimal-bfd' can be used to make the GDB binary image smaller.
3309The resulting GDB will not be able to read arbitrary object file formats --
3310only the format ``expected'' to be used on the configured target system.
3311We hope to make this the default in a future release.
3312
3313 * Documentation improvements
3314
3315There's new internal documentation on how to modify GDB, and how to
3316produce clean changes to the code. We implore people to read it
3317before submitting changes.
3318
3319The GDB manual uses new, sexy Texinfo conditionals, rather than arcane
3320M4 macros. The new texinfo.tex is provided in this release. Pre-built
3321`info' files are also provided. To build `info' files from scratch,
3322you will need the latest `makeinfo' release, which will be available in
3323a future texinfo-X.Y release.
3324
3325*NOTE* The new texinfo.tex can cause old versions of TeX to hang.
3326We're not sure exactly which versions have this problem, but it has
3327been seen in 3.0. We highly recommend upgrading to TeX version 3.141
3328or better. If that isn't possible, there is a patch in
3329`texinfo/tex3patch' that will modify `texinfo/texinfo.tex' to work
3330around this problem.
3331
3332 * New features
3333
3334GDB now supports array constants that can be used in expressions typed in by
3335the user. The syntax is `{element, element, ...}'. Ie: you can now type
3336`print {1, 2, 3}', and it will build up an array in memory malloc'd in
3337the target program.
3338
3339The new directory `gdb/sparclite' contains a program that demonstrates
3340how the sparc-stub.c remote stub runs on a Fujitsu SPARClite processor.
3341
3342 * New native hosts supported
3343
3344HP/PA-RISC under HPUX using GNU tools hppa1.1-hp-hpux
3345386 CPUs running SCO Unix 3.2v4 i386-unknown-sco3.2v4
3346
3347 * New targets supported
3348
3349AMD 29k family via UDI a29k-amd-udi or udi29k
3350
3351 * New file formats supported
3352
3353BFD now supports reading HP/PA-RISC executables (SOM file format?),
3354HPUX core files, and SCO 3.2v2 core files.
3355
3356 * Major bug fixes
3357
3358Attaching to processes now works again; thanks for the many bug reports.
3359
3360We have also stomped on a bunch of core dumps caused by
3361printf_filtered("%s") problems.
3362
3363We eliminated a copyright problem on the rpc and ptrace header files
3364for VxWorks, which was discovered at the last minute during the 4.7
3365release. You should now be able to build a VxWorks GDB.
3366
3367You can now interrupt gdb while an attached process is running. This
3368will cause the attached process to stop, and give control back to GDB.
3369
3370We fixed problems caused by using too many file descriptors
3371for reading symbols from object files and libraries. This was
3372especially a problem for programs that used many (~100) shared
3373libraries.
3374
3375The `step' command now only enters a subroutine if there is line number
3376information for the subroutine. Otherwise it acts like the `next'
3377command. Previously, `step' would enter subroutines if there was
3378any debugging information about the routine. This avoids problems
3379when using `cc -g1' on MIPS machines.
3380
3381 * Internal improvements
3382
3383GDB's internal interfaces have been improved to make it easier to support
3384debugging of multiple languages in the future.
3385
3386GDB now uses a common structure for symbol information internally.
3387Minimal symbols (derived from linkage symbols in object files), partial
3388symbols (from a quick scan of debug information), and full symbols
3389contain a common subset of information, making it easier to write
3390shared code that handles any of them.
3391
3392 * New command line options
3393
3394We now accept --silent as an alias for --quiet.
3395
3396 * Mmalloc licensing
3397
3398The memory-mapped-malloc library is now licensed under the GNU Library
3399General Public License.
3400
3401*** Changes in GDB-4.7:
3402
3403 * Host/native/target split
3404
3405GDB has had some major internal surgery to untangle the support for
3406hosts and remote targets. Now, when you configure GDB for a remote
3407target, it will no longer load in all of the support for debugging
3408local programs on the host. When fully completed and tested, this will
3409ensure that arbitrary host/target combinations are possible.
3410
3411The primary conceptual shift is to separate the non-portable code in
3412GDB into three categories. Host specific code is required any time GDB
3413is compiled on that host, regardless of the target. Target specific
3414code relates to the peculiarities of the target, but can be compiled on
3415any host. Native specific code is everything else: it can only be
3416built when the host and target are the same system. Child process
3417handling and core file support are two common `native' examples.
3418
3419GDB's use of /proc for controlling Unix child processes is now cleaner.
3420It has been split out into a single module under the `target_ops' vector,
3421plus two native-dependent functions for each system that uses /proc.
3422
3423 * New hosts supported
3424
3425HP/Apollo 68k (under the BSD domain) m68k-apollo-bsd or apollo68bsd
3426386 CPUs running various BSD ports i386-unknown-bsd or 386bsd
3427386 CPUs running SCO Unix i386-unknown-scosysv322 or i386sco
3428
3429 * New targets supported
3430
3431Fujitsu SPARClite sparclite-fujitsu-none or sparclite
343268030 and CPU32 m68030-*-*, m68332-*-*
3433
3434 * New native hosts supported
3435
3436386 CPUs running various BSD ports i386-unknown-bsd or 386bsd
3437 (386bsd is not well tested yet)
3438386 CPUs running SCO Unix i386-unknown-scosysv322 or sco
3439
3440 * New file formats supported
3441
3442BFD now supports COFF files for the Zilog Z8000 microprocessor. It
3443supports reading of `a.out.adobe' object files, which are an a.out
3444format extended with minimal information about multiple sections.
3445
3446 * New commands
3447
3448`show copying' is the same as the old `info copying'.
3449`show warranty' is the same as `info warrantee'.
3450These were renamed for consistency. The old commands continue to work.
3451
3452`info handle' is a new alias for `info signals'.
3453
3454You can now define pre-command hooks, which attach arbitrary command
3455scripts to any command. The commands in the hook will be executed
3456prior to the user's command. You can also create a hook which will be
3457executed whenever the program stops. See gdb.texinfo.
3458
3459 * C++ improvements
3460
3461We now deal with Cfront style name mangling, and can even extract type
3462info from mangled symbols. GDB can automatically figure out which
3463symbol mangling style your C++ compiler uses.
3464
3465Calling of methods and virtual functions has been improved as well.
3466
3467 * Major bug fixes
3468
3469The crash that occured when debugging Sun Ansi-C compiled binaries is
3470fixed. This was due to mishandling of the extra N_SO stabs output
3471by the compiler.
3472
3473We also finally got Ultrix 4.2 running in house, and fixed core file
3474support, with help from a dozen people on the net.
3475
3476John M. Farrell discovered that the reason that single-stepping was so
3477slow on all of the Mips based platforms (primarily SGI and DEC) was
3478that we were trying to demangle and lookup a symbol used for internal
3479purposes on every instruction that was being stepped through. Changing
3480the name of that symbol so that it couldn't be mistaken for a C++
3481mangled symbol sped things up a great deal.
3482
3483Rich Pixley sped up symbol lookups in general by getting much smarter
3484about when C++ symbol mangling is necessary. This should make symbol
3485completion (TAB on the command line) much faster. It's not as fast as
3486we'd like, but it's significantly faster than gdb-4.6.
3487
3488 * AMD 29k support
3489
3490A new user controllable variable 'call_scratch_address' can
3491specify the location of a scratch area to be used when GDB
3492calls a function in the target. This is necessary because the
3493usual method of putting the scratch area on the stack does not work
3494in systems that have separate instruction and data spaces.
3495
3496We integrated changes to support the 29k UDI (Universal Debugger
3497Interface), but discovered at the last minute that we didn't have all
3498of the appropriate copyright paperwork. We are working with AMD to
3499resolve this, and hope to have it available soon.
3500
3501 * Remote interfaces
3502
3503We have sped up the remote serial line protocol, especially for targets
3504with lots of registers. It now supports a new `expedited status' ('T')
3505message which can be used in place of the existing 'S' status message.
3506This allows the remote stub to send only the registers that GDB
3507needs to make a quick decision about single-stepping or conditional
3508breakpoints, eliminating the need to fetch the entire register set for
3509each instruction being stepped through.
3510
3511The GDB remote serial protocol now implements a write-through cache for
3512registers, only re-reading the registers if the target has run.
3513
3514There is also a new remote serial stub for SPARC processors. You can
3515find it in gdb-4.7/gdb/sparc-stub.c. This was written to support the
3516Fujitsu SPARClite processor, but will run on any stand-alone SPARC
3517processor with a serial port.
3518
3519 * Configuration
3520
3521Configure.in files have become much easier to read and modify. A new
3522`table driven' format makes it more obvious what configurations are
3523supported, and what files each one uses.
3524
3525 * Library changes
3526
3527There is a new opcodes library which will eventually contain all of the
3528disassembly routines and opcode tables. At present, it only contains
3529Sparc and Z8000 routines. This will allow the assembler, debugger, and
3530disassembler (binutils/objdump) to share these routines.
3531
3532The libiberty library is now copylefted under the GNU Library General
3533Public License. This allows more liberal use, and was done so libg++
3534can use it. This makes no difference to GDB, since the Library License
3535grants all the rights from the General Public License.
3536
3537 * Documentation
3538
3539The file gdb-4.7/gdb/doc/stabs.texinfo is a (relatively) complete
3540reference to the stabs symbol info used by the debugger. It is (as far
3541as we know) the only published document on this fascinating topic. We
3542encourage you to read it, compare it to the stabs information on your
3543system, and send improvements on the document in general (to
3544bug-gdb@prep.ai.mit.edu).
3545
3546And, of course, many bugs have been fixed.
3547
3548
3549*** Changes in GDB-4.6:
3550
3551 * Better support for C++ function names
3552
3553GDB now accepts as input the "demangled form" of C++ overloaded function
3554names and member function names, and can do command completion on such names
3555(using TAB, TAB-TAB, and ESC-?). The names have to be quoted with a pair of
3556single quotes. Examples are 'func (int, long)' and 'obj::operator==(obj&)'.
3557Make use of command completion, it is your friend.
3558
3559GDB also now accepts a variety of C++ mangled symbol formats. They are
3560the GNU g++ style, the Cfront (ARM) style, and the Lucid (lcc) style.
3561You can tell GDB which format to use by doing a 'set demangle-style {gnu,
3562lucid, cfront, auto}'. 'gnu' is the default. Do a 'set demangle-style foo'
3563for the list of formats.
3564
3565 * G++ symbol mangling problem
3566
3567Recent versions of gcc have a bug in how they emit debugging information for
3568C++ methods (when using dbx-style stabs). The file 'gcc.patch' (in this
3569directory) can be applied to gcc to fix the problem. Alternatively, if you
3570can't fix gcc, you can #define GCC_MANGLE_BUG when compling gdb/symtab.c. The
3571usual symptom is difficulty with setting breakpoints on methods. GDB complains
3572about the method being non-existent. (We believe that version 2.2.2 of GCC has
3573this problem.)
3574
3575 * New 'maintenance' command
3576
3577All of the commands related to hacking GDB internals have been moved out of
3578the main command set, and now live behind the 'maintenance' command. This
3579can also be abbreviated as 'mt'. The following changes were made:
3580
3581 dump-me -> maintenance dump-me
3582 info all-breakpoints -> maintenance info breakpoints
3583 printmsyms -> maintenance print msyms
3584 printobjfiles -> maintenance print objfiles
3585 printpsyms -> maintenance print psymbols
3586 printsyms -> maintenance print symbols
3587
3588The following commands are new:
3589
3590 maintenance demangle Call internal GDB demangler routine to
3591 demangle a C++ link name and prints the result.
3592 maintenance print type Print a type chain for a given symbol
3593
3594 * Change to .gdbinit file processing
3595
3596We now read the $HOME/.gdbinit file before processing the argv arguments
3597(e.g. reading symbol files or core files). This allows global parameters to
3598be set, which will apply during the symbol reading. The ./.gdbinit is still
3599read after argv processing.
3600
3601 * New hosts supported
3602
3603Solaris-2.0 !!! sparc-sun-solaris2 or sun4sol2
3604
55241689 3605GNU/Linux support i386-unknown-linux or linux
c906108c
SS
3606
3607We are also including code to support the HP/PA running BSD and HPUX. This
3608is almost guaranteed not to work, as we didn't have time to test or build it
3609for this release. We are including it so that the more adventurous (or
3610masochistic) of you can play with it. We also had major problems with the
3611fact that the compiler that we got from HP doesn't support the -g option.
3612It costs extra.
3613
3614 * New targets supported
3615
3616Hitachi H8/300 h8300-hitachi-hms or h8300hms
3617
3618 * More smarts about finding #include files
3619
3620GDB now remembers the compilation directory for all include files, and for
3621all files from which C is generated (like yacc and lex sources). This
3622greatly improves GDB's ability to find yacc/lex sources, and include files,
3623especially if you are debugging your program from a directory different from
3624the one that contains your sources.
3625
3626We also fixed a bug which caused difficulty with listing and setting
3627breakpoints in include files which contain C code. (In the past, you had to
3628try twice in order to list an include file that you hadn't looked at before.)
3629
3630 * Interesting infernals change
3631
3632GDB now deals with arbitrary numbers of sections, where the symbols for each
3633section must be relocated relative to that section's landing place in the
3634target's address space. This work was needed to support ELF with embedded
3635stabs used by Solaris-2.0.
3636
3637 * Bug fixes (of course!)
3638
3639There have been loads of fixes for the following things:
3640 mips, rs6000, 29k/udi, m68k, g++, type handling, elf/dwarf, m88k,
3641 i960, stabs, DOS(GO32), procfs, etc...
3642
3643See the ChangeLog for details.
3644
3645*** Changes in GDB-4.5:
3646
3647 * New machines supported (host and target)
3648
3649IBM RS6000 running AIX rs6000-ibm-aix or rs6000
3650
3651SGI Irix-4.x mips-sgi-irix4 or iris4
3652
3653 * New malloc package
3654
3655GDB now uses a new memory manager called mmalloc, based on gmalloc.
3656Mmalloc is capable of handling mutiple heaps of memory. It is also
3657capable of saving a heap to a file, and then mapping it back in later.
3658This can be used to greatly speedup the startup of GDB by using a
3659pre-parsed symbol table which lives in a mmalloc managed heap. For
3660more details, please read mmalloc/mmalloc.texi.
3661
3662 * info proc
3663
3664The 'info proc' command (SVR4 only) has been enhanced quite a bit. See
3665'help info proc' for details.
3666
3667 * MIPS ecoff symbol table format
3668
3669The code that reads MIPS symbol table format is now supported on all hosts.
3670Thanks to MIPS for releasing the sym.h and symconst.h files to make this
3671possible.
3672
3673 * File name changes for MS-DOS
3674
3675Many files in the config directories have been renamed to make it easier to
3676support GDB on MS-DOSe systems (which have very restrictive file name
3677conventions :-( ). MS-DOSe host support (under DJ Delorie's GO32
3678environment) is close to working but has some remaining problems. Note
3679that debugging of DOS programs is not supported, due to limitations
3680in the ``operating system'', but it can be used to host cross-debugging.
3681
3682 * Cross byte order fixes
3683
3684Many fixes have been made to support cross debugging of Sparc and MIPS
3685targets from hosts whose byte order differs.
3686
3687 * New -mapped and -readnow options
3688
3689If memory-mapped files are available on your system through the 'mmap'
3690system call, you can use the -mapped option on the `file' or
3691`symbol-file' commands to cause GDB to write the symbols from your
3692program into a reusable file. If the program you are debugging is
3693called `/path/fred', the mapped symbol file will be `./fred.syms'.
3694Future GDB debugging sessions will notice the presence of this file,
3695and will quickly map in symbol information from it, rather than reading
3696the symbol table from the executable program. Using the '-mapped'
3697option in a GDB `file' or `symbol-file' command has the same effect as
3698starting GDB with the '-mapped' command-line option.
3699
3700You can cause GDB to read the entire symbol table immediately by using
3701the '-readnow' option with any of the commands that load symbol table
3702information (or on the GDB command line). This makes the command
3703slower, but makes future operations faster.
3704
3705The -mapped and -readnow options are typically combined in order to
3706build a `fred.syms' file that contains complete symbol information.
3707A simple GDB invocation to do nothing but build a `.syms' file for future
3708use is:
3709
3710 gdb -batch -nx -mapped -readnow programname
3711
3712The `.syms' file is specific to the host machine on which GDB is run.
3713It holds an exact image of GDB's internal symbol table. It cannot be
3714shared across multiple host platforms.
3715
3716 * longjmp() handling
3717
3718GDB is now capable of stepping and nexting over longjmp(), _longjmp(), and
3719siglongjmp() without losing control. This feature has not yet been ported to
3720all systems. It currently works on many 386 platforms, all MIPS-based
3721platforms (SGI, DECstation, etc), and Sun3/4.
3722
3723 * Solaris 2.0
3724
3725Preliminary work has been put in to support the new Solaris OS from Sun. At
3726this time, it can control and debug processes, but it is not capable of
3727reading symbols.
3728
3729 * Bug fixes
3730
3731As always, many many bug fixes. The major areas were with g++, and mipsread.
3732People using the MIPS-based platforms should experience fewer mysterious
3733crashes and trashed symbol tables.
3734
3735*** Changes in GDB-4.4:
3736
3737 * New machines supported (host and target)
3738
3739SCO Unix on i386 IBM PC clones i386-sco-sysv or i386sco
3740 (except core files)
3741BSD Reno on Vax vax-dec-bsd
3742Ultrix on Vax vax-dec-ultrix
3743
3744 * New machines supported (target)
3745
3746AMD 29000 embedded, using EBMON a29k-none-none
3747
3748 * C++ support
3749
3750GDB continues to improve its handling of C++. `References' work better.
3751The demangler has also been improved, and now deals with symbols mangled as
3752per the Annotated C++ Reference Guide.
3753
3754GDB also now handles `stabs' symbol information embedded in MIPS
3755`ecoff' symbol tables. Since the ecoff format was not easily
3756extensible to handle new languages such as C++, this appeared to be a
3757good way to put C++ debugging info into MIPS binaries. This option
3758will be supported in the GNU C compiler, version 2, when it is
3759released.
3760
3761 * New features for SVR4
3762
3763GDB now handles SVR4 shared libraries, in the same fashion as SunOS
3764shared libraries. Debugging dynamically linked programs should present
3765only minor differences from debugging statically linked programs.
3766
3767The `info proc' command will print out information about any process
3768on an SVR4 system (including the one you are debugging). At the moment,
3769it prints the address mappings of the process.
3770
3771If you bring up GDB on another SVR4 system, please send mail to
3772bug-gdb@prep.ai.mit.edu to let us know what changes were reqired (if any).
3773
3774 * Better dynamic linking support in SunOS
3775
3776Reading symbols from shared libraries which contain debugging symbols
3777now works properly. However, there remain issues such as automatic
3778skipping of `transfer vector' code during function calls, which
3779make it harder to debug code in a shared library, than to debug the
3780same code linked statically.
3781
3782 * New Getopt
3783
3784GDB is now using the latest `getopt' routines from the FSF. This
3785version accepts the -- prefix for options with long names. GDB will
3786continue to accept the old forms (-option and +option) as well.
3787Various single letter abbreviations for options have been explicity
3788added to the option table so that they won't get overshadowed in the
3789future by other options that begin with the same letter.
3790
3791 * Bugs fixed
3792
3793The `cleanup_undefined_types' bug that many of you noticed has been squashed.
3794Many assorted bugs have been handled. Many more remain to be handled.
3795See the various ChangeLog files (primarily in gdb and bfd) for details.
3796
3797
3798*** Changes in GDB-4.3:
3799
3800 * New machines supported (host and target)
3801
3802Amiga 3000 running Amix m68k-cbm-svr4 or amix
3803NCR 3000 386 running SVR4 i386-ncr-svr4 or ncr3000
3804Motorola Delta 88000 running Sys V m88k-motorola-sysv or delta88
3805
3806 * Almost SCO Unix support
3807
3808We had hoped to support:
3809SCO Unix on i386 IBM PC clones i386-sco-sysv or i386sco
3810(except for core file support), but we discovered very late in the release
3811that it has problems with process groups that render gdb unusable. Sorry
3812about that. I encourage people to fix it and post the fixes.
3813
3814 * Preliminary ELF and DWARF support
3815
3816GDB can read ELF object files on System V Release 4, and can handle
3817debugging records for C, in DWARF format, in ELF files. This support
3818is preliminary. If you bring up GDB on another SVR4 system, please
3819send mail to bug-gdb@prep.ai.mit.edu to let us know what changes were
3820reqired (if any).
3821
3822 * New Readline
3823
3824GDB now uses the latest `readline' library. One user-visible change
3825is that two tabs will list possible command completions, which previously
3826required typing M-? (meta-question mark, or ESC ?).
3827
3828 * Bugs fixed
3829
3830The `stepi' bug that many of you noticed has been squashed.
3831Many bugs in C++ have been handled. Many more remain to be handled.
3832See the various ChangeLog files (primarily in gdb and bfd) for details.
3833
3834 * State of the MIPS world (in case you wondered):
3835
3836GDB can understand the symbol tables emitted by the compilers
3837supplied by most vendors of MIPS-based machines, including DEC. These
3838symbol tables are in a format that essentially nobody else uses.
3839
3840Some versions of gcc come with an assembler post-processor called
3841mips-tfile. This program is required if you want to do source-level
3842debugging of gcc-compiled programs. I believe FSF does not ship
3843mips-tfile with gcc version 1, but it will eventually come with gcc
3844version 2.
3845
3846Debugging of g++ output remains a problem. g++ version 1.xx does not
3847really support it at all. (If you're lucky, you should be able to get
3848line numbers and stack traces to work, but no parameters or local
3849variables.) With some work it should be possible to improve the
3850situation somewhat.
3851
3852When gcc version 2 is released, you will have somewhat better luck.
3853However, even then you will get confusing results for inheritance and
3854methods.
3855
3856We will eventually provide full debugging of g++ output on
3857DECstations. This will probably involve some kind of stabs-in-ecoff
3858encapulation, but the details have not been worked out yet.
3859
3860
3861*** Changes in GDB-4.2:
3862
3863 * Improved configuration
3864
3865Only one copy of `configure' exists now, and it is not self-modifying.
3866Porting BFD is simpler.
3867
3868 * Stepping improved
3869
3870The `step' and `next' commands now only stop at the first instruction
3871of a source line. This prevents the multiple stops that used to occur
3872in switch statements, for-loops, etc. `Step' continues to stop if a
3873function that has debugging information is called within the line.
3874
3875 * Bug fixing
3876
3877Lots of small bugs fixed. More remain.
3878
3879 * New host supported (not target)
3880
3881Intel 386 PC clone running Mach i386-none-mach
3882
3883
3884*** Changes in GDB-4.1:
3885
3886 * Multiple source language support
3887
3888GDB now has internal scaffolding to handle several source languages.
3889It determines the type of each source file from its filename extension,
3890and will switch expression parsing and number formatting to match the
3891language of the function in the currently selected stack frame.
3892You can also specifically set the language to be used, with
3893`set language c' or `set language modula-2'.
3894
3895 * GDB and Modula-2
3896
3897GDB now has preliminary support for the GNU Modula-2 compiler,
3898currently under development at the State University of New York at
3899Buffalo. Development of both GDB and the GNU Modula-2 compiler will
3900continue through the fall of 1991 and into 1992.
3901
3902Other Modula-2 compilers are currently not supported, and attempting to
3903debug programs compiled with them will likely result in an error as the
3904symbol table is read. Feel free to work on it, though!
3905
3906There are hooks in GDB for strict type checking and range checking,
3907in the `Modula-2 philosophy', but they do not currently work.
3908
3909 * set write on/off
3910
3911GDB can now write to executable and core files (e.g. patch
3912a variable's value). You must turn this switch on, specify
3913the file ("exec foo" or "core foo"), *then* modify it, e.g.
3914by assigning a new value to a variable. Modifications take
3915effect immediately.
3916
3917 * Automatic SunOS shared library reading
3918
3919When you run your program, GDB automatically determines where its
3920shared libraries (if any) have been loaded, and reads their symbols.
3921The `share' command is no longer needed. This also works when
3922examining core files.
3923
3924 * set listsize
3925
3926You can specify the number of lines that the `list' command shows.
3927The default is 10.
3928
3929 * New machines supported (host and target)
3930
3931SGI Iris (MIPS) running Irix V3: mips-sgi-irix or iris
3932Sony NEWS (68K) running NEWSOS 3.x: m68k-sony-sysv or news
3933Ultracomputer (29K) running Sym1: a29k-nyu-sym1 or ultra3
3934
3935 * New hosts supported (not targets)
3936
3937IBM RT/PC: romp-ibm-aix or rtpc
3938
3939 * New targets supported (not hosts)
3940
3941AMD 29000 embedded with COFF a29k-none-coff
3942AMD 29000 embedded with a.out a29k-none-aout
3943Ultracomputer remote kernel debug a29k-nyu-kern
3944
3945 * New remote interfaces
3946
3947AMD 29000 Adapt
3948AMD 29000 Minimon
3949
3950
3951*** Changes in GDB-4.0:
3952
3953 * New Facilities
3954
3955Wide output is wrapped at good places to make the output more readable.
3956
3957Gdb now supports cross-debugging from a host machine of one type to a
3958target machine of another type. Communication with the target system
3959is over serial lines. The ``target'' command handles connecting to the
3960remote system; the ``load'' command will download a program into the
3961remote system. Serial stubs for the m68k and i386 are provided. Gdb
3962also supports debugging of realtime processes running under VxWorks,
3963using SunRPC Remote Procedure Calls over TCP/IP to talk to a debugger
3964stub on the target system.
3965
3966New CPUs supported include the AMD 29000 and Intel 960.
3967
3968GDB now reads object files and symbol tables via a ``binary file''
3969library, which allows a single copy of GDB to debug programs of multiple
3970object file types such as a.out and coff.
3971
3972There is now a GDB reference card in "doc/refcard.tex". (Make targets
3973refcard.dvi and refcard.ps are available to format it).
3974
3975
3976 * Control-Variable user interface simplified
3977
3978All variables that control the operation of the debugger can be set
3979by the ``set'' command, and displayed by the ``show'' command.
3980
3981For example, ``set prompt new-gdb=>'' will change your prompt to new-gdb=>.
3982``Show prompt'' produces the response:
3983Gdb's prompt is new-gdb=>.
3984
3985What follows are the NEW set commands. The command ``help set'' will
3986print a complete list of old and new set commands. ``help set FOO''
3987will give a longer description of the variable FOO. ``show'' will show
3988all of the variable descriptions and their current settings.
3989
3990confirm on/off: Enables warning questions for operations that are
3991 hard to recover from, e.g. rerunning the program while
3992 it is already running. Default is ON.
3993
3994editing on/off: Enables EMACS style command line editing
3995 of input. Previous lines can be recalled with
3996 control-P, the current line can be edited with control-B,
3997 you can search for commands with control-R, etc.
3998 Default is ON.
3999
4000history filename NAME: NAME is where the gdb command history
4001 will be stored. The default is .gdb_history,
4002 or the value of the environment variable
4003 GDBHISTFILE.
4004
4005history size N: The size, in commands, of the command history. The
4006 default is 256, or the value of the environment variable
4007 HISTSIZE.
4008
4009history save on/off: If this value is set to ON, the history file will
4010 be saved after exiting gdb. If set to OFF, the
4011 file will not be saved. The default is OFF.
4012
4013history expansion on/off: If this value is set to ON, then csh-like
4014 history expansion will be performed on
4015 command line input. The default is OFF.
4016
4017radix N: Sets the default radix for input and output. It can be set
4018 to 8, 10, or 16. Note that the argument to "radix" is interpreted
4019 in the current radix, so "set radix 10" is always a no-op.
4020
4021height N: This integer value is the number of lines on a page. Default
4022 is 24, the current `stty rows'' setting, or the ``li#''
4023 setting from the termcap entry matching the environment
4024 variable TERM.
4025
4026width N: This integer value is the number of characters on a line.
4027 Default is 80, the current `stty cols'' setting, or the ``co#''
4028 setting from the termcap entry matching the environment
4029 variable TERM.
4030
4031Note: ``set screensize'' is obsolete. Use ``set height'' and
4032``set width'' instead.
4033
4034print address on/off: Print memory addresses in various command displays,
4035 such as stack traces and structure values. Gdb looks
4036 more ``symbolic'' if you turn this off; it looks more
4037 ``machine level'' with it on. Default is ON.
4038
4039print array on/off: Prettyprint arrays. New convenient format! Default
4040 is OFF.
4041
4042print demangle on/off: Print C++ symbols in "source" form if on,
4043 "raw" form if off.
4044
4045print asm-demangle on/off: Same, for assembler level printouts
4046 like instructions.
4047
4048print vtbl on/off: Prettyprint C++ virtual function tables. Default is OFF.
4049
4050
4051 * Support for Epoch Environment.
4052
4053The epoch environment is a version of Emacs v18 with windowing. One
4054new command, ``inspect'', is identical to ``print'', except that if you
4055are running in the epoch environment, the value is printed in its own
4056window.
4057
4058
4059 * Support for Shared Libraries
4060
4061GDB can now debug programs and core files that use SunOS shared libraries.
4062Symbols from a shared library cannot be referenced
4063before the shared library has been linked with the program (this
4064happens after you type ``run'' and before the function main() is entered).
4065At any time after this linking (including when examining core files
4066from dynamically linked programs), gdb reads the symbols from each
4067shared library when you type the ``sharedlibrary'' command.
4068It can be abbreviated ``share''.
4069
4070sharedlibrary REGEXP: Load shared object library symbols for files
4071 matching a unix regular expression. No argument
4072 indicates to load symbols for all shared libraries.
4073
4074info sharedlibrary: Status of loaded shared libraries.
4075
4076
4077 * Watchpoints
4078
4079A watchpoint stops execution of a program whenever the value of an
4080expression changes. Checking for this slows down execution
4081tremendously whenever you are in the scope of the expression, but is
4082quite useful for catching tough ``bit-spreader'' or pointer misuse
4083problems. Some machines such as the 386 have hardware for doing this
4084more quickly, and future versions of gdb will use this hardware.
4085
4086watch EXP: Set a watchpoint (breakpoint) for an expression.
4087
4088info watchpoints: Information about your watchpoints.
4089
4090delete N: Deletes watchpoint number N (same as breakpoints).
4091disable N: Temporarily turns off watchpoint number N (same as breakpoints).
4092enable N: Re-enables watchpoint number N (same as breakpoints).
4093
4094
4095 * C++ multiple inheritance
4096
4097When used with a GCC version 2 compiler, GDB supports multiple inheritance
4098for C++ programs.
4099
4100 * C++ exception handling
4101
4102Gdb now supports limited C++ exception handling. Besides the existing
4103ability to breakpoint on an exception handler, gdb can breakpoint on
4104the raising of an exception (before the stack is peeled back to the
4105handler's context).
4106
4107catch FOO: If there is a FOO exception handler in the dynamic scope,
4108 set a breakpoint to catch exceptions which may be raised there.
4109 Multiple exceptions (``catch foo bar baz'') may be caught.
4110
4111info catch: Lists all exceptions which may be caught in the
4112 current stack frame.
4113
4114
4115 * Minor command changes
4116
4117The command ``call func (arg, arg, ...)'' now acts like the print
4118command, except it does not print or save a value if the function's result
4119is void. This is similar to dbx usage.
4120
4121The ``up'' and ``down'' commands now always print the frame they end up
4122at; ``up-silently'' and `down-silently'' can be used in scripts to change
4123frames without printing.
4124
4125 * New directory command
4126
4127'dir' now adds directories to the FRONT of the source search path.
4128The path starts off empty. Source files that contain debug information
4129about the directory in which they were compiled can be found even
4130with an empty path; Sun CC and GCC include this information. If GDB can't
4131find your source file in the current directory, type "dir .".
4132
4133 * Configuring GDB for compilation
4134
4135For normal use, type ``./configure host''. See README or gdb.texinfo
4136for more details.
4137
4138GDB now handles cross debugging. If you are remotely debugging between
4139two different machines, type ``./configure host -target=targ''.
4140Host is the machine where GDB will run; targ is the machine
4141where the program that you are debugging will run.