Print this page
15254 %ymm registers not restored after signal handler
15367 x86 getfpregs() summons corrupting %xmm ghosts
15333 want x86 /proc xregs support (libc_db, libproc, mdb, etc.)
15336 want libc functions for extended ucontext_t
15334 want ps_lwphandle-specific reg routines
15328 FPU_CW_INIT mistreats reserved bit
15335 i86pc fpu_subr.c isn't really platform-specific
15332 setcontext(2) isn't actually noreturn
15331 need <sys/stdalign.h>
Change-Id: I7060aa86042dfb989f77fc3323c065ea2eafa9ad
Conflicts:
    usr/src/uts/common/fs/proc/prcontrol.c
    usr/src/uts/intel/os/archdep.c
    usr/src/uts/intel/sys/ucontext.h
    usr/src/uts/intel/syscall/getcontext.c

Split Close
Expand all
Collapse all
          --- old/usr/src/man/man5/core.5.man.txt
          +++ new/usr/src/man/man5/core.5.man.txt
↓ open down ↓ 96 lines elided ↑ open up ↑
  97   97       PF_SUNW_FAILURE flag set in its p_flags field; if the data is excluded
  98   98       because of a signal, the segment's p_flags field will have the
  99   99       PF_SUNW_KILLED flag set.
 100  100  
 101  101       The program headers of an ELF core file also contain entries for two NOTE
 102  102       segments, each containing several note entries as described below.  The
 103  103       note entry header and core file note type (n_type) definitions are
 104  104       contained in <sys/elf.h>.  The first NOTE segment exists for binary
 105  105       compatibility with old programs that deal with core files.  It contains
 106  106       structures defined in <sys/old_procfs.h>.  New programs should recognize
 107      -     and skip this BNOTE segment, advancing instead to the new NOTE segment.
      107 +     and skip this NOTE segment, advancing instead to the new NOTE segment.
 108  108       The old NOTE segment is deleted from core files in a future release.
 109  109  
 110  110       The old NOTE segment contains the following entries.  Each has entry name
 111  111       CORE and presents the contents of a system structure:
 112  112  
 113  113       prpsinfo_t  n_type: NT_PRPSINFO.  This entry contains information of
 114  114                   interest to the ps(1) command, such as process status, CPU
 115  115                   usage, nice value, controlling terminal, user-ID, process-ID,
 116  116                   the name of the executable, and so forth.  The prpsinfo_t
 117  117                   structure is defined in <sys/old_procfs.h>.
↓ open down ↓ 13 lines elided ↑ open up ↑
 131  131       process (LWP) in the process, the old NOTE segment contains an entry with
 132  132       a prstatus_t structure, plus other optionally-present entries describing
 133  133       the LWP, as follows:
 134  134  
 135  135       prstatus_t    n_type: NT_PRSTATUS.  This structure contains things of
 136  136                     interest to a debugger from the operating system, such as
 137  137                     the general registers, signal dispositions, state, reason
 138  138                     for stopping, process-ID, and so forth.  The prstatus_t
 139  139                     structure is defined in <sys/old_procfs.h>.
 140  140  
 141      -     prfpregset_t  n_type: NT_PRFPREG.  This entry is present only if the BLWP
      141 +     prfpregset_t  n_type: NT_PRFPREG.  This entry is present only if the LWP
 142  142                     used the floating-point hardware.  It contains the
 143  143                     floating-point registers.  The prfpregset_t structure is
 144  144                     defined in <sys/procfs_isa.h>.
 145  145  
 146  146       gwindows_t    n_type: NT_GWINDOWS.  This entry is present only on a SPARC
 147  147                     machine and only if the system was unable to flush all of
 148  148                     the register windows to the stack.  It contains all of the
 149  149                     unspilled register windows.  The gwindows_t structure is
 150  150                     defined in <sys/regset.h>.
 151  151  
 152      -     prxregset_t   n_type: NT_PRXREG.  This entry is present only if the
 153      -                   machine has extra register state associated with it.  It
 154      -                   contains the extra register state.  The prxregset_t
 155      -                   structure is defined in sys/procfs_isa.h.
      152 +     prxregset_t   n_type: NT_PRXREG.  This entry is no longer included in
      153 +                   core files, but is of historical note because in the past
      154 +                   it was included on SPARC-based systems.  While since then
      155 +                   the prxregset_t and extended register sets have been
      156 +                   defined on other architectures, they do not emit this in
      157 +                   the old note section because there is no binary
      158 +                   compatibility.
 156  159  
 157  160       The new NOTE segment contains the following entries.  Each has entry name
 158  161       CORE and presents the contents of a system structure:
 159  162  
 160  163       psinfo_t     n_type: NT_PSINFO.  This structure contains information of
 161  164                    interest to the ps(1) command, such as process status, CPU
 162  165                    usage, nice value, controlling terminal, user-ID, process-
 163  166                    ID, the name of the executable, and so forth.  The psinfo_t
 164  167                    structure is defined in <sys/procfs.h>
 165  168  
↓ open down ↓ 118 lines elided ↑ open up ↑
 284  287                    structure is defined in <sys/procfs.h>.  gwindows_t n_type:
 285  288                    NT_GWINDOWS.  This entry is present only on a SPARC machine
 286  289                    and only if the system was unable to flush all of the
 287  290                    register windows to the stack.  It contains all of the
 288  291                    unspilled register windows.  The gwindows_t structure is
 289  292                    defined in <sys/regset.h>.
 290  293  
 291  294       prxregset_t  n_type: NT_PRXREG.  This entry is present only if the
 292  295                    machine has extra register state associated with it.  It
 293  296                    contains the extra register state.  The prxregset_t
 294      -                  structure is defined in <sys/procfs_isa.h>.
      297 +                  structure is defined in <sys/procfs_isa.h>; however
      298 +                  applications should include <procfs.h> to get access to it.
      299 +                  On most architectures the prxregset_t is opaque and is made
      300 +                  up of multiple structures because it can vary in length.
      301 +                  proc(5) discusses the structure of the extended register set
      302 +                  for each supported architecture.
 295  303  
 296  304       asrset_t     asrset_t n_type: NT_ASRS.  This entry is present only on a
 297  305                    SPARC V9 machine and only if the process is a 64-bit
 298  306                    process.  It contains the ancillary state registers for the
 299  307                    LWP.  The asrset_t asrset_t structure is defined in
 300  308                    <sys/regset.h>.
 301  309  
 302  310       psinfo_t     n_type: NT_SPYMASTER.  This entry is present only for an
 303  311                    agent LWP and contains the psinfo_t of the process that
 304  312                    created the agent LWP.  See the proc(5) description of the
↓ open down ↓ 8 lines elided ↑ open up ↑
 313  321  
 314  322       The size of the core file created by a process can be controlled by the
 315  323       user (see getrlimit(2))
 316  324  
 317  325  SEE ALSO
 318  326       elfdump(1), gcore(1), mdb(1), proc(1), ps(1), getrlimit(2), setrlimit(2),
 319  327       setuid(2), sysinfo(2), uname(2), upanic(2), getzoneid(3C),
 320  328       getzonenamebyid(3C), elf(3ELF), signal.h(3HEAD), a.out(5), proc(5),
 321  329       security-flags(7), zones(7), coreadm(8)
 322  330  
 323      -illumos                         August 3, 2021                         illumos
      331 +illumos                        January 24, 2023                        illumos
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX