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