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