OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gdb-7.1/] [gdb/] [NEWS] - Blame information for rev 359

Go to most recent revision | Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.