forked from bminor/binutils-gdb
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNEWS
6622 lines (4799 loc) · 234 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
What has changed in GDB?
(Organized release by release)
*** Changes since GDB 7.12
* Building GDB and GDBserver now requires a C++11 compiler.
For example, GCC 4.8 or later.
It is no longer possible to build GDB or GDBserver with a C
compiler. The --disable-build-with-cxx configure option has been
removed.
* Building GDB and GDBserver now requires GNU make >= 3.81.
It is no longer supported to build GDB or GDBserver with another
implementation of the make program or an earlier version of GNU make.
* Native debugging on MS-Windows supports command-line redirection
Command-line arguments used for starting programs on MS-Windows can
now include redirection symbols supported by native Windows shells,
such as '<', '>', '>>', '2>&1', etc. This affects GDB commands such
as "run", "start", and "set args", as well as the corresponding MI
features.
* Support for thread names on MS-Windows.
GDB now catches and handles the special exception that programs
running on MS-Windows use to assign names to threads in the
debugger.
* Support for Java programs compiled with gcj has been removed.
* User commands now accept an unlimited number of arguments.
Previously, only up to 10 was accepted.
* The "eval" command now expands user-defined command arguments.
This makes it easier to process a variable number of arguments:
define mycommand
set $i = 0
while $i < $argc
eval "print $arg%d", $i
set $i = $i + 1
end
end
* New targets
Synopsys ARC arc*-*-elf32
*** Changes in GDB 7.12
* GDB and GDBserver now build with a C++ compiler by default.
The --enable-build-with-cxx configure option is now enabled by
default. One must now explicitly configure with
--disable-build-with-cxx in order to build with a C compiler. This
option will be removed in a future release.
* GDBserver now supports recording btrace without maintaining an active
GDB connection.
* GDB now supports a negative repeat count in the 'x' command to examine
memory backward from the given address. For example:
(gdb) bt
#0 Func1 (n=42, p=0x40061c "hogehoge") at main.cpp:4
#1 0x400580 in main (argc=1, argv=0x7fffffffe5c8) at main.cpp:8
(gdb) x/-5i 0x0000000000400580
0x40056a <main(int, char**)+8>: mov %edi,-0x4(%rbp)
0x40056d <main(int, char**)+11>: mov %rsi,-0x10(%rbp)
0x400571 <main(int, char**)+15>: mov $0x40061c,%esi
0x400576 <main(int, char**)+20>: mov $0x2a,%edi
0x40057b <main(int, char**)+25>:
callq 0x400536 <Func1(int, char const*)>
* Fortran: Support structures with fields of dynamic types and
arrays of dynamic types.
* GDB now supports multibit bitfields and enums in target register
descriptions.
* New Python-based convenience function $_as_string(val), which returns
the textual representation of a value. This function is especially
useful to obtain the text label of an enum value.
* Intel MPX bound violation handling.
Segmentation faults caused by a Intel MPX boundary violation
now display the kind of violation (upper or lower), the memory
address accessed and the memory bounds, along with the usual
signal received and code location.
For example:
Program received signal SIGSEGV, Segmentation fault
Upper bound violation while accessing address 0x7fffffffc3b3
Bounds: [lower = 0x7fffffffc390, upper = 0x7fffffffc3a3]
0x0000000000400d7c in upper () at i386-mpx-sigsegv.c:68
* Rust language support.
GDB now supports debugging programs written in the Rust programming
language. See https://www.rust-lang.org/ for more information about
Rust.
* Support for running interpreters on specified input/output devices
GDB now supports a new mechanism that allows frontends to provide
fully featured GDB console views, as a better alternative to
building such views on top of the "-interpreter-exec console"
command. See the new "new-ui" command below. With that command,
frontends can now start GDB in the traditional command-line mode
running in an embedded terminal emulator widget, and create a
separate MI interpreter running on a specified i/o device. In this
way, GDB handles line editing, history, tab completion, etc. in the
console all by itself, and the GUI uses the separate MI interpreter
for its own control and synchronization, invisible to the command
line.
* The "catch syscall" command catches groups of related syscalls.
The "catch syscall" command now supports catching a group of related
syscalls using the 'group:' or 'g:' prefix.
* New commands
skip -file file
skip -gfile file-glob-pattern
skip -function function
skip -rfunction regular-expression
A generalized form of the skip command, with new support for
glob-style file names and regular expressions for function names.
Additionally, a file spec and a function spec may now be combined.
maint info line-table REGEXP
Display the contents of GDB's internal line table data struture.
maint selftest
Run any GDB unit tests that were compiled in.
new-ui INTERP TTY
Start a new user interface instance running INTERP as interpreter,
using the TTY file for input/output.
* Python Scripting
** gdb.Breakpoint objects have a new attribute "pending", which
indicates whether the breakpoint is pending.
** Three new breakpoint-related events have been added:
gdb.breakpoint_created, gdb.breakpoint_modified, and
gdb.breakpoint_deleted.
signal-event EVENTID
Signal ("set") the given MS-Windows event object. This is used in
conjunction with the Windows JIT debugging (AeDebug) support, where
the OS suspends a crashing process until a debugger can attach to
it. Resuming the crashing process, in order to debug it, is done by
signalling an event.
* Support for tracepoints and fast tracepoints on s390-linux and s390x-linux
was added in GDBserver, including JIT compiling fast tracepoint's
conditional expression bytecode into native code.
* Support for various remote target protocols and ROM monitors has
been removed:
target m32rsdi Remote M32R debugging over SDI
target mips MIPS remote debugging protocol
target pmon PMON ROM monitor
target ddb NEC's DDB variant of PMON for Vr4300
target rockhopper NEC RockHopper variant of PMON
target lsi LSI variant of PMO
* Support for tracepoints and fast tracepoints on powerpc-linux,
powerpc64-linux, and powerpc64le-linux was added in GDBserver,
including JIT compiling fast tracepoint's conditional expression
bytecode into native code.
* MI async record =record-started now includes the method and format used for
recording. For example:
=record-started,thread-group="i1",method="btrace",format="bts"
* MI async record =thread-selected now includes the frame field. For example:
=thread-selected,id="3",frame={level="0",addr="0x00000000004007c0"}
* New targets
Andes NDS32 nds32*-*-elf
*** Changes in GDB 7.11
* GDB now supports debugging kernel-based threads on FreeBSD.
* Per-inferior thread numbers
Thread numbers are now per inferior instead of global. If you're
debugging multiple inferiors, GDB displays thread IDs using a
qualified INF_NUM.THR_NUM form. For example:
(gdb) info threads
Id Target Id Frame
1.1 Thread 0x7ffff7fc2740 (LWP 8155) (running)
1.2 Thread 0x7ffff7fc1700 (LWP 8168) (running)
* 2.1 Thread 0x7ffff7fc2740 (LWP 8157) (running)
2.2 Thread 0x7ffff7fc1700 (LWP 8190) (running)
As consequence, thread numbers as visible in the $_thread
convenience variable and in Python's InferiorThread.num attribute
are no longer unique between inferiors.
GDB now maintains a second thread ID per thread, referred to as the
global thread ID, which is the new equivalent of thread numbers in
previous releases. See also $_gthread below.
For backwards compatibility, MI's thread IDs always refer to global
IDs.
* Commands that accept thread IDs now accept the qualified
INF_NUM.THR_NUM form as well. For example:
(gdb) thread 2.1
[Switching to thread 2.1 (Thread 0x7ffff7fc2740 (LWP 8157))] (running)
(gdb)
* In commands that accept a list of thread IDs, you can now refer to
all threads of an inferior using a star wildcard. GDB accepts
"INF_NUM.*", to refer to all threads of inferior INF_NUM, and "*" to
refer to all threads of the current inferior. For example, "info
threads 2.*".
* You can use "info threads -gid" to display the global thread ID of
all threads.
* The new convenience variable $_gthread holds the global number of
the current thread.
* The new convenience variable $_inferior holds the number of the
current inferior.
* GDB now displays the ID and name of the thread that hit a breakpoint
or received a signal, if your program is multi-threaded. For
example:
Thread 3 "bar" hit Breakpoint 1 at 0x40087a: file program.c, line 20.
Thread 1 "main" received signal SIGINT, Interrupt.
* Record btrace now supports non-stop mode.
* Support for tracepoints on aarch64-linux was added in GDBserver.
* The 'record instruction-history' command now indicates speculative execution
when using the Intel Processor Trace recording format.
* GDB now allows users to specify explicit locations, bypassing
the linespec parser. This feature is also available to GDB/MI
clients.
* Multi-architecture debugging is supported on AArch64 GNU/Linux.
GDB now is able to debug both AArch64 applications and ARM applications
at the same time.
* Support for fast tracepoints on aarch64-linux was added in GDBserver,
including JIT compiling fast tracepoint's conditional expression bytecode
into native code.
* GDB now supports displaced stepping on AArch64 GNU/Linux.
* "info threads", "info inferiors", "info display", "info checkpoints"
and "maint info program-spaces" now list the corresponding items in
ascending ID order, for consistency with all other "info" commands.
* In Ada, the overloads selection menu has been enhanced to display the
parameter types and the return types for the matching overloaded subprograms.
* New commands
maint set target-non-stop (on|off|auto)
maint show target-non-stop
Control whether GDB targets always operate in non-stop mode even if
"set non-stop" is "off". The default is "auto", meaning non-stop
mode is enabled if supported by the target.
maint set bfd-sharing
maint show bfd-sharing
Control the reuse of bfd objects.
set debug bfd-cache
show debug bfd-cache
Control display of debugging info regarding bfd caching.
set debug fbsd-lwp
show debug fbsd-lwp
Control display of debugging info regarding FreeBSD threads.
set remote multiprocess-extensions-packet
show remote multiprocess-extensions-packet
Set/show the use of the remote protocol multiprocess extensions.
set remote thread-events
show remote thread-events
Set/show the use of thread create/exit events.
set ada print-signatures on|off
show ada print-signatures"
Control whether parameter types and return types are displayed in overloads
selection menus. It is activaled (@code{on}) by default.
set max-value-size
show max-value-size
Controls the maximum size of memory, in bytes, that GDB will
allocate for value contents. Prevents incorrect programs from
causing GDB to allocate overly large buffers. Default is 64k.
* The "disassemble" command accepts a new modifier: /s.
It prints mixed source+disassembly like /m with two differences:
- disassembled instructions are now printed in program order, and
- and source for all relevant files is now printed.
The "/m" option is now considered deprecated: its "source-centric"
output hasn't proved useful in practice.
* The "record instruction-history" command accepts a new modifier: /s.
It behaves exactly like /m and prints mixed source+disassembly.
* The "set scheduler-locking" command supports a new mode "replay".
It behaves like "off" in record mode and like "on" in replay mode.
* Support for various ROM monitors has been removed:
target dbug dBUG ROM monitor for Motorola ColdFire
target picobug Motorola picobug monitor
target dink32 DINK32 ROM monitor for PowerPC
target m32r Renesas M32R/D ROM monitor
target mon2000 mon2000 ROM monitor
target ppcbug PPCBUG ROM monitor for PowerPC
* Support for reading/writing memory and extracting values on architectures
whose memory is addressable in units of any integral multiple of 8 bits.
* New remote packets
exec stop reason
Indicates that an exec system call was executed.
exec-events feature in qSupported
The qSupported packet allows GDB to request support for exec
events using the new 'gdbfeature' exec-event, and the qSupported
response can contain the corresponding 'stubfeature'. Set and
show commands can be used to display whether these features are enabled.
vCtrlC
Equivalent to interrupting with the ^C character, but works in
non-stop mode.
thread created stop reason (T05 create:...)
Indicates that the thread was just created and is stopped at entry.
thread exit stop reply (w exitcode;tid)
Indicates that the thread has terminated.
QThreadEvents
Enables/disables thread create and exit event reporting. For
example, this is used in non-stop mode when GDB stops a set of
threads and synchronously waits for the their corresponding stop
replies. Without exit events, if one of the threads exits, GDB
would hang forever not knowing that it should no longer expect a
stop for that same thread.
N stop reply
Indicates that there are no resumed threads left in the target (all
threads are stopped). The remote stub reports support for this stop
reply to GDB's qSupported query.
QCatchSyscalls
Enables/disables catching syscalls from the inferior process.
The remote stub reports support for this packet to GDB's qSupported query.
syscall_entry stop reason
Indicates that a syscall was just called.
syscall_return stop reason
Indicates that a syscall just returned.
* Extended-remote exec events
** GDB now has support for exec events on extended-remote Linux targets.
For such targets with Linux kernels 2.5.46 and later, this enables
follow-exec-mode and exec catchpoints.
set remote exec-event-feature-packet
show remote exec-event-feature-packet
Set/show the use of the remote exec event feature.
* Thread names in remote protocol
The reply to qXfer:threads:read may now include a name attribute for each
thread.
* Target remote mode fork and exec events
** GDB now has support for fork and exec events on target remote mode
Linux targets. For such targets with Linux kernels 2.5.46 and later,
this enables follow-fork-mode, detach-on-fork, follow-exec-mode, and
fork and exec catchpoints.
* Remote syscall events
** GDB now has support for catch syscall on remote Linux targets,
currently enabled on x86/x86_64 architectures.
set remote catch-syscall-packet
show remote catch-syscall-packet
Set/show the use of the remote catch syscall feature.
* MI changes
** The -var-set-format command now accepts the zero-hexadecimal
format. It outputs data in hexadecimal format with zero-padding on the
left.
* Python Scripting
** gdb.InferiorThread objects have a new attribute "global_num",
which refers to the thread's global thread ID. The existing
"num" attribute now refers to the thread's per-inferior number.
See "Per-inferior thread numbers" above.
** gdb.InferiorThread objects have a new attribute "inferior", which
is the Inferior object the thread belongs to.
*** Changes in GDB 7.10
* Support for process record-replay and reverse debugging on aarch64*-linux*
targets has been added. GDB now supports recording of A64 instruction set
including advance SIMD instructions.
* Support for Sun's version of the "stabs" debug file format has been removed.
* GDB now honors the content of the file /proc/PID/coredump_filter
(PID is the process ID) on GNU/Linux systems. This file can be used
to specify the types of memory mappings that will be included in a
corefile. For more information, please refer to the manual page of
"core(5)". GDB also has a new command: "set use-coredump-filter
on|off". It allows to set whether GDB will read the content of the
/proc/PID/coredump_filter file when generating a corefile.
* The "info os" command on GNU/Linux can now display information on
cpu information :
"info os cpus" Listing of all cpus/cores on the system
* GDB has two new commands: "set serial parity odd|even|none" and
"show serial parity". These allows to set or show parity for the
remote serial I/O.
* The "info source" command now displays the producer string if it was
present in the debug info. This typically includes the compiler version
and may include things like its command line arguments.
* The "info dll", an alias of the "info sharedlibrary" command,
is now available on all platforms.
* Directory names supplied to the "set sysroot" commands may be
prefixed with "target:" to tell GDB to access shared libraries from
the target system, be it local or remote. This replaces the prefix
"remote:". The default sysroot has been changed from "" to
"target:". "remote:" is automatically converted to "target:" for
backward compatibility.
* The system root specified by "set sysroot" will be prepended to the
filename of the main executable (if reported to GDB as absolute by
the operating system) when starting processes remotely, and when
attaching to already-running local or remote processes.
* GDB now supports automatic location and retrieval of executable
files from remote targets. Remote debugging can now be initiated
using only a "target remote" or "target extended-remote" command
(no "set sysroot" or "file" commands are required). See "New remote
packets" below.
* The "dump" command now supports verilog hex format.
* GDB now supports the vector ABI on S/390 GNU/Linux targets.
* On GNU/Linux, GDB and gdbserver are now able to access executable
and shared library files without a "set sysroot" command when
attaching to processes running in different mount namespaces from
the debugger. This makes it possible to attach to processes in
containers as simply as "gdb -p PID" or "gdbserver --attach PID".
See "New remote packets" below.
* The "tui reg" command now provides completion for all of the
available register groups, including target specific groups.
* The HISTSIZE environment variable is no longer read when determining
the size of GDB's command history. GDB now instead reads the dedicated
GDBHISTSIZE environment variable. Setting GDBHISTSIZE to "-1" or to "" now
disables truncation of command history. Non-numeric values of GDBHISTSIZE
are ignored.
* Guile Scripting
** Memory ports can now be unbuffered.
* Python Scripting
** gdb.Objfile objects have a new attribute "username",
which is the name of the objfile as specified by the user,
without, for example, resolving symlinks.
** You can now write frame unwinders in Python.
** gdb.Type objects have a new method "optimized_out",
returning optimized out gdb.Value instance of this type.
** gdb.Value objects have new methods "reference_value" and
"const_value" which return a reference to the value and a
"const" version of the value respectively.
* New commands
maint print symbol-cache
Print the contents of the symbol cache.
maint print symbol-cache-statistics
Print statistics of symbol cache usage.
maint flush-symbol-cache
Flush the contents of the symbol cache.
record btrace bts
record bts
Start branch trace recording using Branch Trace Store (BTS) format.
compile print
Evaluate expression by using the compiler and print result.
tui enable
tui disable
Explicit commands for enabling and disabling tui mode.
show mpx bound
set mpx bound on i386 and amd64
Support for bound table investigation on Intel MPX enabled applications.
record btrace pt
record pt
Start branch trace recording using Intel Processor Trace format.
maint info btrace
Print information about branch tracing internals.
maint btrace packet-history
Print the raw branch tracing data.
maint btrace clear-packet-history
Discard the stored raw branch tracing data.
maint btrace clear
Discard all branch tracing data. It will be fetched and processed
anew by the next "record" command.
* New options
set debug dwarf-die
Renamed from "set debug dwarf2-die".
show debug dwarf-die
Renamed from "show debug dwarf2-die".
set debug dwarf-read
Renamed from "set debug dwarf2-read".
show debug dwarf-read
Renamed from "show debug dwarf2-read".
maint set dwarf always-disassemble
Renamed from "maint set dwarf2 always-disassemble".
maint show dwarf always-disassemble
Renamed from "maint show dwarf2 always-disassemble".
maint set dwarf max-cache-age
Renamed from "maint set dwarf2 max-cache-age".
maint show dwarf max-cache-age
Renamed from "maint show dwarf2 max-cache-age".
set debug dwarf-line
show debug dwarf-line
Control display of debugging info regarding DWARF line processing.
set max-completions
show max-completions
Set the maximum number of candidates to be considered during
completion. The default value is 200. This limit allows GDB
to avoid generating large completion lists, the computation of
which can cause the debugger to become temporarily unresponsive.
set history remove-duplicates
show history remove-duplicates
Control the removal of duplicate history entries.
maint set symbol-cache-size
maint show symbol-cache-size
Control the size of the symbol cache.
set|show record btrace bts buffer-size
Set and show the size of the ring buffer used for branch tracing in
BTS format.
The obtained size may differ from the requested size. Use "info
record" to see the obtained buffer size.
set debug linux-namespaces
show debug linux-namespaces
Control display of debugging info regarding Linux namespaces.
set|show record btrace pt buffer-size
Set and show the size of the ring buffer used for branch tracing in
Intel Processor Trace format.
The obtained size may differ from the requested size. Use "info
record" to see the obtained buffer size.
maint set|show btrace pt skip-pad
Set and show whether PAD packets are skipped when computing the
packet history.
* The command 'thread apply all' can now support new option '-ascending'
to call its specified command for all threads in ascending order.
* Python/Guile scripting
** GDB now supports auto-loading of Python/Guile scripts contained in the
special section named `.debug_gdb_scripts'.
* New remote packets
qXfer:btrace-conf:read
Return the branch trace configuration for the current thread.
Qbtrace-conf:bts:size
Set the requested ring buffer size for branch tracing in BTS format.
Qbtrace:pt
Enable Intel Procesor Trace-based branch tracing for the current
process. The remote stub reports support for this packet to GDB's
qSupported query.
Qbtrace-conf:pt:size
Set the requested ring buffer size for branch tracing in Intel Processor
Trace format.
swbreak stop reason
Indicates a memory breakpoint instruction was executed, irrespective
of whether it was GDB that planted the breakpoint or the breakpoint
is hardcoded in the program. This is required for correct non-stop
mode operation.
hwbreak stop reason
Indicates the target stopped for a hardware breakpoint. This is
required for correct non-stop mode operation.
vFile:fstat:
Return information about files on the remote system.
qXfer:exec-file:read
Return the full absolute name of the file that was executed to
create a process running on the remote system.
vFile:setfs:
Select the filesystem on which vFile: operations with filename
arguments will operate. This is required for GDB to be able to
access files on remote targets where the remote stub does not
share a common filesystem with the inferior(s).
fork stop reason
Indicates that a fork system call was executed.
vfork stop reason
Indicates that a vfork system call was executed.
vforkdone stop reason
Indicates that a vfork child of the specified process has executed
an exec or exit, allowing the vfork parent to resume execution.
fork-events and vfork-events features in qSupported
The qSupported packet allows GDB to request support for fork and
vfork events using new 'gdbfeatures' fork-events and vfork-events,
and the qSupported response can contain the corresponding
'stubfeatures'. Set and show commands can be used to display
whether these features are enabled.
* Extended-remote fork events
** GDB now has support for fork events on extended-remote Linux
targets. For targets with Linux kernels 2.5.60 and later, this
enables follow-fork-mode and detach-on-fork for both fork and
vfork, as well as fork and vfork catchpoints.
* The info record command now shows the recording format and the
branch tracing configuration for the current thread when using
the btrace record target.
For the BTS format, it shows the ring buffer size.
* GDB now has support for DTrace USDT (Userland Static Defined
Tracing) probes. The supported targets are x86_64-*-linux-gnu.
* GDB now supports access to vector registers on S/390 GNU/Linux
targets.
* Removed command line options
-xdb HP-UX XDB compatibility mode.
* Removed targets and native configurations
HP/PA running HP-UX hppa*-*-hpux*
Itanium running HP-UX ia64-*-hpux*
* New configure options
--with-intel-pt
This configure option allows the user to build GDB with support for
Intel Processor Trace (default: auto). This requires libipt.
--with-libipt-prefix=PATH
Specify the path to the version of libipt that GDB should use.
$PATH/include should contain the intel-pt.h header and
$PATH/lib should contain the libipt.so library.
*** Changes in GDB 7.9.1
* Python Scripting
** Xmethods can now specify a result type.
*** Changes in GDB 7.9
* GDB now supports hardware watchpoints on x86 GNU Hurd.
* Python Scripting
** You can now access frame registers from Python scripts.
** New attribute 'producer' for gdb.Symtab objects.
** gdb.Objfile objects have a new attribute "progspace",
which is the gdb.Progspace object of the containing program space.
** gdb.Objfile objects have a new attribute "owner".
** gdb.Objfile objects have a new attribute "build_id",
which is the build ID generated when the file was built.
** gdb.Objfile objects have a new method "add_separate_debug_file".
** A new event "gdb.clear_objfiles" has been added, triggered when
selecting a new file to debug.
** You can now add attributes to gdb.Objfile and gdb.Progspace objects.
** New function gdb.lookup_objfile.
New events which are triggered when GDB modifies the state of the
inferior.
** gdb.events.inferior_call_pre: Function call is about to be made.
** gdb.events.inferior_call_post: Function call has just been made.
** gdb.events.memory_changed: A memory location has been altered.
** gdb.events.register_changed: A register has been altered.
* New Python-based convenience functions:
** $_caller_is(name [, number_of_frames])
** $_caller_matches(regexp [, number_of_frames])
** $_any_caller_is(name [, number_of_frames])
** $_any_caller_matches(regexp [, number_of_frames])
* GDB now supports the compilation and injection of source code into
the inferior. GDB will use GCC 5.0 or higher built with libcc1.so
to compile the source code to object code, and if successful, inject
and execute that code within the current context of the inferior.
Currently the C language is supported. The commands used to
interface with this new feature are:
compile code [-raw|-r] [--] [source code]
compile file [-raw|-r] filename
* New commands
demangle [-l language] [--] name
Demangle "name" in the specified language, or the current language
if elided. This command is renamed from the "maint demangle" command.
The latter is kept as a no-op to avoid "maint demangle" being interpreted
as "maint demangler-warning".
queue-signal signal-name-or-number
Queue a signal to be delivered to the thread when it is resumed.
add-auto-load-scripts-directory directory
Add entries to the list of directories from which to load auto-loaded
scripts.
maint print user-registers
List all currently available "user" registers.
compile code [-r|-raw] [--] [source code]
Compile, inject, and execute in the inferior the executable object
code produced by compiling the provided source code.
compile file [-r|-raw] filename
Compile and inject into the inferior the executable object code
produced by compiling the source code stored in the filename
provided.
* On resume, GDB now always passes the signal the program had stopped
for to the thread the signal was sent to, even if the user changed
threads before resuming. Previously GDB would often (but not
always) deliver the signal to the thread that happens to be current
at resume time.
* Conversely, the "signal" command now consistently delivers the
requested signal to the current thread. GDB now asks for
confirmation if the program had stopped for a signal and the user
switched threads meanwhile.
* "breakpoint always-inserted" modes "off" and "auto" merged.
Now, when 'breakpoint always-inserted mode' is set to "off", GDB
won't remove breakpoints from the target until all threads stop,
even in non-stop mode. The "auto" mode has been removed, and "off"
is now the default mode.
* New options
set debug symbol-lookup
show debug symbol-lookup
Control display of debugging info regarding symbol lookup.
* MI changes
** The -list-thread-groups command outputs an exit-code field for
inferiors that have exited.
* New targets
MIPS SDE mips*-sde*-elf*
* Removed targets
Support for these obsolete configurations has been removed.
Alpha running OSF/1 (or Tru64) alpha*-*-osf*
SGI Irix-5.x mips-*-irix5*
SGI Irix-6.x mips-*-irix6*
VAX running (4.2 - 4.3 Reno) BSD vax-*-bsd*
VAX running Ultrix vax-*-ultrix*
* The "dll-symbols" command, and its two aliases ("add-shared-symbol-files"
and "assf"), have been removed. Use the "sharedlibrary" command, or
its alias "share", instead.
*** Changes in GDB 7.8
* New command line options
-D data-directory
This is an alias for the --data-directory option.
* GDB supports printing and modifying of variable length automatic arrays
as specified in ISO C99.
* The ARM simulator now supports instruction level tracing
with or without disassembly.
* Guile scripting
GDB now has support for scripting using Guile. Whether this is
available is determined at configure time.
Guile version 2.0 or greater is required.
Guile version 2.0.9 is well tested, earlier 2.0 versions are not.
* New commands (for set/show, see "New options" below)
guile [code]
gu [code]
Invoke CODE by passing it to the Guile interpreter.
guile-repl
gr
Start a Guile interactive prompt (or "repl" for "read-eval-print loop").
info auto-load guile-scripts [regexp]
Print the list of automatically loaded Guile scripts.
* The source command is now capable of sourcing Guile scripts.
This feature is dependent on the debugger being built with Guile support.
* New options
set print symbol-loading (off|brief|full)
show print symbol-loading
Control whether to print informational messages when loading symbol
information for a file. The default is "full", but when debugging
programs with large numbers of shared libraries the amount of output
becomes less useful.
set guile print-stack (none|message|full)
show guile print-stack
Show a stack trace when an error is encountered in a Guile script.
set auto-load guile-scripts (on|off)
show auto-load guile-scripts
Control auto-loading of Guile script files.
maint ada set ignore-descriptive-types (on|off)
maint ada show ignore-descriptive-types
Control whether the debugger should ignore descriptive types in Ada
programs. The default is not to ignore the descriptive types. See
the user manual for more details on descriptive types and the intended
usage of this option.
set auto-connect-native-target
Control whether GDB is allowed to automatically connect to the
native target for the run, attach, etc. commands when not connected
to any target yet. See also "target native" below.
set record btrace replay-memory-access (read-only|read-write)
show record btrace replay-memory-access
Control what memory accesses are allowed during replay.
maint set target-async (on|off)
maint show target-async
This controls whether GDB targets operate in synchronous or
asynchronous mode. Normally the default is asynchronous, if it is
available; but this can be changed to more easily debug problems
occurring only in synchronous mode.
set mi-async (on|off)
show mi-async
Control whether MI asynchronous mode is preferred. This supersedes
"set target-async" of previous GDB versions.
* "set target-async" is deprecated as a CLI option and is now an alias
for "set mi-async" (only puts MI into async mode).
* Background execution commands (e.g., "c&", "s&", etc.) are now
possible ``out of the box'' if the target supports them. Previously
the user would need to explicitly enable the possibility with the
"set target-async on" command.
* New features in the GDB remote stub, GDBserver
** New option --debug-format=option1[,option2,...] allows one to add
additional text to each output. At present only timestamps
are supported: --debug-format=timestamps.
Timestamps can also be turned on with the
"monitor set debug-format timestamps" command from GDB.
* The 'record instruction-history' command now starts counting instructions
at one. This also affects the instruction ranges reported by the
'record function-call-history' command when given the /i modifier.
* The command 'record function-call-history' supports a new modifier '/c' to
indent the function names based on their call stack depth.
The fields for the '/i' and '/l' modifier have been reordered.
The source line range is now prefixed with 'at'.
The instruction range is now prefixed with 'inst'.
Both ranges are now printed as '<from>, <to>' to allow copy&paste to the
"record instruction-history" and "list" commands.
* The ranges given as arguments to the 'record function-call-history' and
'record instruction-history' commands are now inclusive.
* The btrace record target now supports the 'record goto' command.
For locations inside the execution trace, the back trace is computed
based on the information stored in the execution trace.
* The btrace record target supports limited reverse execution and replay.
The target does not record data and therefore does not allow reading
memory or registers.
* The "catch syscall" command now works on s390*-linux* targets.
* The "compare-sections" command is no longer specific to target
remote. It now works with all targets.
* All native targets are now consistently called "native".
Consequently, the "target child", "target GNU", "target djgpp",
"target procfs" (Solaris/Irix/OSF/AIX) and "target darwin-child"
commands have been replaced with "target native". The QNX/NTO port
leaves the "procfs" target in place and adds a "native" target for
consistency with other ports. The impact on users should be minimal
as these commands previously either throwed an error, or were
no-ops. The target's name is visible in the output of the following
commands: "help target", "info target", "info files", "maint print
target-stack".
* The "target native" command now connects to the native target. This
can be used to launch native programs even when "set
auto-connect-native-target" is set to off.
* GDB now supports access to Intel MPX registers on GNU/Linux.
* Support for Intel AVX-512 registers on GNU/Linux.
Support displaying and modifying Intel AVX-512 registers
$zmm0 - $zmm31 and $k0 - $k7 on GNU/Linux.
* New remote packets
qXfer:btrace:read's annex
The qXfer:btrace:read packet supports a new annex 'delta' to read