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