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