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