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