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