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