From: Ezra Sitorus Date: Mon, 17 Nov 2025 12:45:58 +0000 (+0000) Subject: gdb/doc: Document AArch64 FPMR support X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=994bc098f9517ca346c93e040af36359939c3553;p=thirdparty%2Fbinutils-gdb.git gdb/doc: Document AArch64 FPMR support Add NEWS entry and document new feature in gdb.texinfo. Reviewed-By: Eli Zaretskii Approved-By: Luis Machado --- diff --git a/gdb/NEWS b/gdb/NEWS index 6ef60ac3399..c19f0ed1e36 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -47,6 +47,7 @@ version number has not increased as a consequence of this change. This fixes an issue where GDB could fail to find a type when relying on the index. Any existing indexes should be regenerated. +* Support for Floating Point Mode Register (FPMR) in AArch64. * New targets @@ -1482,7 +1483,7 @@ AMDGPU amdgcn-*-* * New features in the GDB remote stub, GDBserver ** GDBserver is now supported on LoongArch GNU/Linux. - + ** GDBserver is now supported on CSKY GNU/Linux. * LoongArch floating-point support @@ -2376,7 +2377,7 @@ pipe -d DELIM COMMAND DELIM SHELL_COMMAND define-prefix COMMAND Define or mark a command as a user-defined prefix command. - + with SETTING [VALUE] [-- COMMAND] w SETTING [VALUE] [-- COMMAND] Temporarily set SETTING, run COMMAND, and restore SETTING. @@ -3486,7 +3487,7 @@ show disassembler-options 0x40057b : callq 0x400536 -* Fortran: Support structures with fields of dynamic types and +* Fortran: Support structures with fields of dynamic types and arrays of dynamic types. * The symbol dumping maintenance commands have new syntax. @@ -4098,7 +4099,7 @@ vforkdone stop reason 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 + 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 @@ -4167,7 +4168,7 @@ Itanium running HP-UX ia64-*-hpux* ** 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 + 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. @@ -4834,7 +4835,7 @@ Tilera TILE-Gx GNU/Linux tilegx*-*-linux * New commands (for set/show, see "New options" below) -catch signal +catch signal Catch signals. This is similar to "handle", but allows commands and conditions to be attached. @@ -4918,14 +4919,14 @@ show debug notification "=memory-changed". ** The data-disassemble command response will include a "fullname" field containing the absolute file name when source has been requested. - ** New optional parameter COUNT added to the "-data-write-memory-bytes" + ** New optional parameter COUNT added to the "-data-write-memory-bytes" command, to allow pattern filling of memory areas. ** New commands "-catch-load"/"-catch-unload" added for intercepting library load/unload events. ** The response to breakpoint commands and breakpoint async records includes an "installed" field containing a boolean state about each non-pending tracepoint location is whether installed on target or not. - ** Output of the "-trace-status" command includes a "trace-file" field + ** Output of the "-trace-status" command includes a "trace-file" field containing the name of the trace file being examined. This field is optional, and only present when examining a trace file. ** The "fullname" field is now always present along with the "file" field, @@ -4982,8 +4983,8 @@ qXfer:btrace:read in . * GDB now supports reversible debugging on ARM, it allows you to - debug basic ARM and THUMB instructions, and provides - record/replay support. + debug basic ARM and THUMB instructions, and provides + record/replay support. * The option "symbol-reloading" has been deleted as it is no longer used. @@ -5295,7 +5296,7 @@ QProgramSignals: replaced it. Additionally, the default for "print-stack" is now "message", which just prints the error message without the stack trace. - + ** A prompt substitution hook (prompt_hook) is now available to the Python API. @@ -5322,7 +5323,7 @@ QProgramSignals: ** A new class "gdb.FinishBreakpoint" is provided to catch the return of a function. This class is based on the "finish" command - available in the CLI. + available in the CLI. ** Type objects for struct and union types now allow access to the fields using standard Python dictionary (mapping) methods. @@ -5499,7 +5500,7 @@ show trace-stop-notes * New remote packets QTEnable - + Dynamically enable a tracepoint in a started trace experiment. QTDisable @@ -5586,7 +5587,7 @@ Renesas RL78 rl78-*-elf ** Breakpoints can now be sub-classed in Python, and in particular you may implement a 'stop' function that is executed each time - the inferior reaches that breakpoint. + the inferior reaches that breakpoint. ** New function gdb.lookup_global_symbol looks up a global symbol. @@ -5741,8 +5742,8 @@ Analog Devices, Inc. Blackfin Processor bfin-* arguments even if the namespace has not been imported. For example: namespace A - { - class B { }; + { + class B { }; void foo (B) { } } ... @@ -6142,7 +6143,7 @@ source * New commands (for set/show, see "New options" below) record save [] - Save a file (in core file format) containing the process record + Save a file (in core file format) containing the process record execution log for replay debugging at a later time. record restore @@ -6414,7 +6415,7 @@ qXfer:siginfo:write * GDB now supports multiple function calling conventions according to the DWARF-2 DW_AT_calling_convention function attribute. - + * The SH target utilizes the aforementioned change to distinguish between gcc and Renesas calling convention. It also adds the new CLI commands `set/show sh calling-convention'. @@ -6670,7 +6671,7 @@ show multiple-symbols The value of this variable can be changed to adjust the debugger behavior when an expression or a breakpoint location contains an ambiguous symbol name (an overloaded function name, for instance). - + set breakpoint always-inserted show breakpoint always-inserted Keep breakpoints always inserted in the target, as opposed to inserting @@ -6913,7 +6914,7 @@ vRun *** Changes in GDB 6.7 -* Resolved 101 resource leaks, null pointer dereferences, etc. in gdb, +* Resolved 101 resource leaks, null pointer dereferences, etc. in gdb, bfd, libiberty and opcodes, as revealed by static analysis donated by Coverity, Inc. (http://scan.coverity.com). @@ -6925,7 +6926,7 @@ symbol definition in the current shared library if it was built using the recognize the -tui command-line option and print a message that the TUI is not supported. -* The GDB remote stub, gdbserver, now has lower overhead for high +* The GDB remote stub, gdbserver, now has lower overhead for high frequency signals (e.g. SIGALRM) via the QPassSignals packet. * GDB for MIPS targets now autodetects whether a remote target provides @@ -6963,7 +6964,7 @@ has been rewritten to use the standard GDB remote protocol. layout. It also supports a TextSeg= and DataSeg= response when only segment base addresses (rather than offsets) are available. -* The /i format now outputs any trailing branch delay slot instructions +* The /i format now outputs any trailing branch delay slot instructions immediately following the last instruction within the count specified. * The GDB remote protocol "T" stop reply packet now supports a @@ -7110,7 +7111,7 @@ target ocd DWARF 1 support - A debug information format. The predecessor to DWARF 2 and + A debug information format. The predecessor to DWARF 2 and DWARF 3, which are still supported. Support for the HP aCC compiler on HP-UX/PA-RISC @@ -7229,7 +7230,7 @@ The following commands are presently only implemented for native GNU/Linux: checkpoint Save a snapshot of the program state. -restart Return the program state to a +restart Return the program state to a previously saved state. info checkpoints List currently saved checkpoints. @@ -7374,8 +7375,8 @@ continued, we're looking forward to our first translation. * Ada -Initial support for debugging programs compiled with the GNAT -implementation of the Ada programming language has been integrated +Initial support for debugging programs compiled with the GNAT +implementation of the Ada programming language has been integrated into GDB. In this release, support is limited to expression evaluation. * New native configurations @@ -7842,7 +7843,7 @@ Fujitsu SPARClite sparclite-fujitsu-none or sparclite * REMOVED configurations and files -V850EA ISA +V850EA ISA Motorola Delta 88000 running Sys V m88k-motorola-sysv or delta88 IBM AIX PS/2 i[3456]86-*-aix i386 running Mach 3.0 i[3456]86-*-mach3* @@ -7877,7 +7878,7 @@ shared libs like mad''. * ``gdbserver'' now supports multi-threaded applications on some targets -Support for debugging multi-threaded applications which use +Support for debugging multi-threaded applications which use the GNU/Linux LinuxThreads package has been added for arm*-*-linux*-gnu*, i[3456]86-*-linux*-gnu*, mips*-*-linux*-gnu*, powerpc*-*-linux*-gnu*, and sh*-*-linux*-gnu*. @@ -7992,11 +7993,11 @@ gdb/439: gdb/291: On some ELF object files, gdb was reporting: dwarf2read.c:1072: gdb-internal-error: sect_index_text not initialize Fix, by Fred Fish, imported from mainline. -Dwarf2 .debug_frame & .eh_frame handler improved in many ways. +Dwarf2 .debug_frame & .eh_frame handler improved in many ways. Surprisingly enough, it works now. By Michal Ludvig, imported from mainline. -i386 hardware watchpoint support: +i386 hardware watchpoint support: avoid misses on second run for some targets. By Pierre Muller, imported from mainline. @@ -8020,18 +8021,18 @@ hosts. Argument is core file name (defaults to core.). * New command line option -GDB now accepts --pid or -p followed by a process id. +GDB now accepts --pid or -p followed by a process id. * Change in command line behavior -- corefiles vs. process ids. -There is a subtle behavior in the way in which GDB handles +There is a subtle behavior in the way in which GDB handles command line arguments. The first non-flag argument is always a program to debug, but the second non-flag argument may either be a corefile or a process id. Previously, GDB would attempt to open the second argument as a corefile, and if that failed, would issue a superfluous error message and then attempt to attach it as -a process. Now, if the second argument begins with a non-digit, -it will be treated as a corefile. If it begins with a digit, +a process. Now, if the second argument begins with a non-digit, +it will be treated as a corefile. If it begins with a digit, GDB will attempt to attach it as a process, and if no such process is found, will then attempt to open it as a corefile. @@ -8091,7 +8092,7 @@ for the inferior from gdb's command line. There is a new `operate-and-get-next' function bound to `C-o'. -*** Changes in GDB 5.1.1 +*** Changes in GDB 5.1.1 Fix compile problem on DJGPP. @@ -8123,7 +8124,7 @@ UltraSparc running GNU/Linux sparc64-*-linux* * OBSOLETE configurations and files -x86 FreeBSD before 2.2 i[3456]86*-freebsd{1,2.[01]}*, +x86 FreeBSD before 2.2 i[3456]86*-freebsd{1,2.[01]}*, Harris/CXUX m88k m88*-harris-cxux* Most ns32k hosts and targets ns32k-*-mach3* ns32k-umax-* ns32k-utek-sysv* ns32k-utek-* @@ -9004,7 +9005,7 @@ There is a new hardware breakpoint for the watch command for sparclite targets. See gdb/sparclite/hw_breakpoint.note. Hardware watchpoints are also now supported under GNU/Linux. - + * Annotations Annotations have been added. These are for use with graphical interfaces, @@ -9085,7 +9086,7 @@ for details). * Improvements in C++ mangling/demangling. -This release has much better g++ debugging, specifically in name +This release has much better g++ debugging, specifically in name mangling/demangling, virtual function calls, print virtual table, call methods, ...etc. @@ -9147,7 +9148,7 @@ Z8000 simulator z8k-zilog-none or z8ksim IDT MIPS board over serial line mips-idt-ecoff Cross-debugging to GO32 targets is supported. It requires a custom -version of the i386-stub.c module which is integrated with the +version of the i386-stub.c module which is integrated with the GO32 memory extender. * New remote protocols @@ -9768,7 +9769,7 @@ encapulation, but the details have not been worked out yet. * Improved configuration Only one copy of `configure' exists now, and it is not self-modifying. -Porting BFD is simpler. +Porting BFD is simpler. * Stepping improved @@ -9870,7 +9871,7 @@ stub on the target system. New CPUs supported include the AMD 29000 and Intel 960. -GDB now reads object files and symbol tables via a ``binary file'' +GDB now reads object files and symbol tables via a ``binary file'' library, which allows a single copy of GDB to debug programs of multiple object file types such as a.out and coff. @@ -9896,27 +9897,27 @@ confirm on/off: Enables warning questions for operations that are hard to recover from, e.g. rerunning the program while it is already running. Default is ON. -editing on/off: Enables EMACS style command line editing - of input. Previous lines can be recalled with +editing on/off: Enables EMACS style command line editing + of input. Previous lines can be recalled with control-P, the current line can be edited with control-B, you can search for commands with control-R, etc. Default is ON. -history filename NAME: NAME is where the gdb command history +history filename NAME: NAME is where the gdb command history will be stored. The default is .gdb_history, or the value of the environment variable GDBHISTFILE. -history size N: The size, in commands, of the command history. The +history size N: The size, in commands, of the command history. The default is 256, or the value of the environment variable HISTSIZE. history save on/off: If this value is set to ON, the history file will - be saved after exiting gdb. If set to OFF, the + be saved after exiting gdb. If set to OFF, the file will not be saved. The default is OFF. -history expansion on/off: If this value is set to ON, then csh-like - history expansion will be performed on +history expansion on/off: If this value is set to ON, then csh-like + history expansion will be performed on command line input. The default is OFF. radix N: Sets the default radix for input and output. It can be set @@ -9941,7 +9942,7 @@ print address on/off: Print memory addresses in various command displays, more ``symbolic'' if you turn this off; it looks more ``machine level'' with it on. Default is ON. -print array on/off: Prettyprint arrays. New convenient format! Default +print array on/off: Prettyprint arrays. New convenient format! Default is OFF. print demangle on/off: Print C++ symbols in "source" form if on, @@ -9972,7 +9973,7 @@ from dynamically linked programs), gdb reads the symbols from each shared library when you type the ``sharedlibrary'' command. It can be abbreviated ``share''. -sharedlibrary REGEXP: Load shared object library symbols for files +sharedlibrary REGEXP: Load shared object library symbols for files matching a unix regular expression. No argument indicates to load symbols for all shared libraries. @@ -10040,7 +10041,7 @@ find your source file in the current directory, type "dir .". For normal use, type ``./configure host''. See README or gdb.texinfo for more details. -GDB now handles cross debugging. If you are remotely debugging between +GDB now handles cross debugging. If you are remotely debugging between two different machines, type ``./configure host -target=targ''. Host is the machine where GDB will run; targ is the machine where the program that you are debugging will run. diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index b52fd7f880d..87e994defa6 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -27152,6 +27152,27 @@ Program received signal SIGSEGV, Segmentation fault Guarded Control Stack error. @end smallexample +@subsubsection AArch64 Floating Point Mode Register +@cindex floating point mode register, AArch64 +@cindex FPMR, AArch64 + +When @value{GDBN} is debugging the AArch64 architecture and the Floating Point +Mode Register (@acronym{FPMR}) is available, then @value{GDBN} will make the +@code{fpmr} available. This register determines the behavior of @code{FP8} +instructions. + +To aid debugging, @value{GDBN} interprets the mode or value of each field in +@code{fpmr}. + +@smallexample +p $fpmr +$1 = [ F8S1=E5M2 F8S2=E5M2 F8D=E5M2 OSM=Inf OSC=Inf/NaN LSCALE=0 NSCALE=0 LSCALE2=0 ] +@end smallexample + +For more information about @acronym{FPMR}, please refer to the official +@uref{https://developer.arm.com/documentation/ddi0601/latest,ignored, +architecture registers documentation}. + @node x86 @subsection x86 @@ -49894,6 +49915,57 @@ documentation} in the Linux kernel. Extra registers are allowed in these features, but they will not affect @value{GDBN}. +@subsubsection AArch64 FPMR feature + +The @samp{org.gnu.gdb.aarch64.fpmr} optional feature was introduced so +@value{GDBN} could detect support for the Floating Point Mode Register +extension. If present, this feature must have the following register: + +@itemize @minus +@item +@samp{fpmr}, the floating point mode register. It is represented as +if it were a 64-bit register with a custom flags type. +@end itemize + +The custom flags type allows @value{GDBN} to print a human-friendly +representation of the contents of @code{fpmr} should contain: + +@itemize @minus + +@item +@code{F8S1}, which is either @code{E5M2} or @code{E4M3} + +@item +@code{F8S2}, which is either @code{E5M2} or @code{E4M3} + +@item +@code{F8D}, which is either @code{E5M2} or @code{E4M3} + +@item +@code{OSM}, which is either @code{Inf} or @code{MaxNormal} + +@item +@code{OSC}, which is either @code{Inf/NaN} or @code{MaxNormal} + +@item +@code{LSCALE}, which is a 7-bit unsigned value + +@item +@code{NSCALE}, which is actually an 8-bit signed value but represented as an +8-bit unsigned value + +@item +@code{LSCALE2}, which is a 6-bit unsigned value + +@end itemize + +Extra registers are allowed in this feature, but they will not affect +@value{GDBN}. + +For more information about @acronym{FPMR}, please refer to the official +@uref{https://developer.arm.com/documentation/ddi0601/latest,ignored, +architecture registers documentation}. + @node Alpha Features @subsection Alpha Features @cindex target descriptions, Alpha Features