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