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