IPB
>  Man Pages > Unix > Solaris 10 11/06 > Section 4 > core man page

core man page

Section 4 - Solaris 10 11/06 Man Pages

Other operating system man pages available here


Advanced Search

Hopefully, this page is exactly what you are looking for, but if not, you can always find further assistance on Unix/Linux Forum!





File Formats                                              core(4)



NAME
     core - process core file

DESCRIPTION
     The operating system writes out a core file  for  a  process
     when the process is terminated due to receiving certain sig-
     nals. A core file is a disk copy of the contents of the pro-
     cess address space at the time the process received the sig-
     nal, along with additional information about  the  state  of
     the process. This information can be consumed by a debugger.
     Core files can also be generated by  applying  the  gcore(1)
     utility to a running process.

     Typically, core files are produced following abnormal termi-
     nation  of a process resulting from a bug in the correspond-
     ing application. Whatever the cause, the  core  file  itself
     provides invaluable information to the programmer or support
     engineer to aid in diagnosing the problem. The core file can
     be inspected using a debugger such as dbx(1) or mdb(1) or by
     applying one of the proc(1) tools.

     The operating system attempts to create up to two core files
     for each abnormally terminating process, using a global core
     file name pattern and a per-process core file name  pattern.
     These patterns are expanded to determine the pathname of the
     resulting core files, and can be configured by  coreadm(1M).
     By default, the global core file pattern is disabled and not
     used, and the per-process core file pattern is set to  core.
     Therefore,  by  default,  the  operating  system attempts to
     create a core file named core in the process's current work-
     ing directory.

     A process terminates and produces a core  file  whenever  it
     receives  one of the signals whose default disposition is to
     cause a core dump. The list of signals that result  in  gen-
     erating  a core file is shown in signal.h(3HEAD). Therefore,
     a process might not produce a core file if it has blocked or
     modified the behavior of the corresponding signal. Addition-
     ally, no core dump can be created under the following condi-
     tions:

       o  If normal file and directory access permissions prevent
          the  creation  or  modification of the per-process core
          file pathname by the current process user and group ID.
          This  test does not apply to the global core file path-
          name because, regardless of  the  UID  of  the  process
          dumping core, the attempt to write the global core file
          is made as the superuser.

       o  Core files owned by the user nobody will  not  be  pro-
          duced.   For  example,  core  files  generated  for the
          superuser on an NFS directory are owned by  nobody  and



SunOS 5.10           Last change: 9 Aug 2005                    1






File Formats                                              core(4)



          are, therefore, not written.

       o  If the core file pattern expands  to  a  pathname  that
          contains  intermediate directory components that do not
          exist. For example, if the global  pattern  is  set  to
          /var/core/%n/core.%p, and no directory /var/core/`uname
          -n` has been created, no global  core  files  are  pro-
          duced.

       o  If the destination directory is part  of  a  filesystem
          that is mounted read-only.

       o  If the resource limit RLIMIT_CORE has been set to 0 for
          the  process,  no  per-process  core  file is produced.
          Refer to setrlimit(2) and ulimit(1) for  more  informa-
          tion on resource limits.

       o  If the core file name already exists in the destination
          directory and is not a regular file (that is, is a sym-
          link, block or character special-file, and so forth).

       o  If the kernel cannot open the destination file  O_EXCL,
          which  can  occur  if  same  file  is  being created by
          another process simultaneously.

       o  If the process's effective user ID  is  different  from
          its  real  user ID or if its effective group ID is dif-
          ferent from its real group ID.  Similarly,  set-user-ID
          and  set-group-ID programs do not produce core files as
          this  could  potentially  compromise  system  security.
          These processes can be explicitly granted permission to
          produce core files using coreadm(1M), at  the  risk  of
          exposing secure information.


     The core file contains all the process information pertinent
     to   debugging:  contents  of  hardware  registers,  process
     status, and process data. The  format  of  a  core  file  is
     object file specific.

     For ELF executable programs (see a.out(4)),  the  core  file
     generated  is  also  an ELF file, containing ELF program and
     file headers. The e_type field in the file header  has  type
     ET_CORE. The program header contains an entry for every seg-
     ment that was part of the process address  space,  including
     shared library segments. The contents of the mappings speci-
     fied by coreadm(1M) are also part of the  core  image.  Each
     program  header has its p_memsz field set to the size of the
     mapping. The program headers that represent  mappings  whose
     data  is included in the core file have their p_filesz field
     set the same as p_memsz, otherwise p_filesz is zero.




SunOS 5.10           Last change: 9 Aug 2005                    2






File Formats                                              core(4)



     A mapping's data can be excluded due to the core  file  con-
     tent  settings (see coreadm(1M)), or due to some failure. If
     the data is excluded  because  of  a  failure,  the  program
     header  entry  will have the PF_SUNW_FAILURE flag set in its
     p_flags field.

     The program headers of an ELF core file also contain entries
     for  two NOTE segments, each containing several note entries
     as described below. The note entry header and core file note
     type  (n_type) definitions are contained in <sys/elf.h>. The
     first NOTE segment exists for binary compatibility with  old
     programs  that  deal with core files. It contains structures
     defined in <sys/old_procfs.h>. New programs should recognize
     and  skip  this  NOTE  segment, advancing instead to the new
     NOTE segment. The old NOTE  segment  is  deleted  from  core
     files in a future release.

     The old NOTE segment contains the  following  entries.  Each
     has  entry name "CORE" and presents the contents of a system
     structure:

     prpsinfo_t              n_type: NT_PRPSINFO. This entry con-
                             tains information of interest to the
                             ps(1)  command,  such   as   process
                             status,  CPU  usage,  "nice"  value,
                             controlling    terminal,    user-ID,
                             process-ID,  the name of the execut-
                             able, and so forth.  The  prpsinfo_t
                             structure      is     defined     in
                             <sys/old_procfs.h>.



     char array              n_type: NT_PLATFORM. This entry con-
                             tains   a   string   describing  the
                             specific model of the hardware plat-
                             form  on  which  this  core file was
                             created.  This  information  is  the
                             same  as provided by sysinfo(2) when
                             invoked     with     the     command
                             SI_PLATFORM.



     auxv_t array            n_type: NT_AUXV. This entry contains
                             the  array of auxv_t structures that
                             was passed by the  operating  system
                             as   startup   information   to  the
                             dynamic  linker.  Auxiliary   vector
                             information     is     defined    in
                             <sys/auxv.h>.




SunOS 5.10           Last change: 9 Aug 2005                    3






File Formats                                              core(4)



     Following  these  entries,  for  each  active   (non-zombie)
     light-weight process (LWP) in the process, the old NOTE seg-
     ment contains an entry with  a  prstatus_t  structure,  plus
     other optionally-present entries describing the LWP, as fol-
     lows:

     prstatus_t              n_type: NT_PRSTATUS. This  structure
                             contains  things  of  interest  to a
                             debugger from the operating  system,
                             such  as the general registers, sig-
                             nal dispositions, state, reason  for
                             stopping,  process-ID, and so forth.
                             The prstatus_t structure is  defined
                             in <sys/old_procfs.h>.



     prfpregset_t            n_type: NT_PRFPREG.  This  entry  is
                             present  only  if  the  LWP used the
                             floating-point hardware. It contains
                             the  floating-point  registers.  The
                             prfpregset_t structure is defined in
                             <sys/procfs_isa.h>.



     gwindows_t              n_type: NT_GWINDOWS. This  entry  is
                             present  only on a SPARC machine and
                             only if the  system  was  unable  to
                             flush all of the register windows to
                             the stack. It contains  all  of  the
                             unspilled   register   windows.  The
                             gwindows_t structure is  defined  in
                             <sys/regset.h>.



     prxregset_t             n_type:  NT_PRXREG.  This  entry  is
                             present  only  if  the  machine  has
                             extra register state associated with
                             it.  It  contains the extra register
                             state. The prxregset_t structure  is
                             defined in <sys/procfs_isa.h>.



     The new NOTE segment contains the  following  entries.  Each
     has  entry name "CORE" and presents the contents of a system
     structure:

     psinfo_t                n_type:  NT_PSINFO.  This  structure
                             contains  information of interest to



SunOS 5.10           Last change: 9 Aug 2005                    4






File Formats                                              core(4)



                             the ps(1) command, such  as  process
                             status,  CPU  usage,  "nice"  value,
                             controlling    terminal,    user-ID,
                             process-ID,  the name of the execut-
                             able, and  so  forth.  The  psinfo_t
                             structure      is     defined     in
                             <sys/procfs.h>.



     pstatus_t               n_type: NT_PSTATUS.  This  structure
                             contains  things  of  interest  to a
                             debugger from the operating  system,
                             such   as  pending  signals,  state,
                             process-ID,  and   so   forth.   The
                             pstatus_t  structure  is  defined in
                             <sys/procfs.h>.



     char array              n_type: NT_PLATFORM. This entry con-
                             tains   a   string   describing  the
                             specific model of the hardware plat-
                             form  on  which  this  core file was
                             created.  This  information  is  the
                             same  as provided by sysinfo(2) when
                             invoked     with     the     command
                             SI_PLATFORM.



     auxv_t array            n_type: NT_AUXV. This entry contains
                             the  array of auxv_t structures that
                             was passed by the  operating  system
                             as   startup   information   to  the
                             dynamic  linker.  Auxiliary   vector
                             information     is     defined    in
                             <sys/auxv.h>.



     struct utsname          n_type: NT_UTSNAME.  This  structure
                             contains the system information that
                             would have been returned to the pro-
                             cess  if it had performed a uname(2)
                             system call prior to  dumping  core.
                             The  utsname structure is defined in
                             <sys/utsname.h>.







SunOS 5.10           Last change: 9 Aug 2005                    5






File Formats                                              core(4)



     prcred_t                n_type:  NT_PRCRED.  This  structure
                             contains  the  process  credentials,
                             including  the  real,   saved,   and
                             effective  user  and  group IDs. The
                             prcred_t  structure  is  defined  in
                             <aasys/procfs.h>.    Following   the
                             structure is an  optional  array  of
                             supplementary  group  IDs. The total
                             number of supplementary group IDs is
                             given  by  the  pr_ngroups member of
                             the  prcred_t  structure,  and   the
                             structure  includes  space  for  one
                             supplementary group.  If  pr_ngroups
                             is   greater   than   1,   there  is
                             pr_ngroups - 1 gid_t items following
                             the  structure;  otherwise, there is
                             no additional data.



     char array              n_type: NT_ZONENAME. This entry con-
                             tains  a  string which describes the
                             name of the zone in which  the  pro-
                             cess  was running. See zones(5). The
                             information is the same as  provided
                             by  getzonenamebyid(3C) when invoked
                             with the numerical  ID  returned  by
                             getzoneid(3C).



     struct ssd array        n_type:  NT_LDT.   This   entry   is
                             present   only   on  an  32-bit  x86
                             machine and only if the process  has
                             set  up  a  Local  Descriptor  Table
                             (LDT).  It  contains  an  array   of
                             structures  of type struct ssd, each
                             of which was typically used  to  set
                             up  the  %gs  segment register to be
                             used to fetch  the  address  of  the
                             current thread information structure
                             in a multithreaded process. The  ssd
                             structure      is     defined     in
                             <sys/sysi86.h>.



     core_content_t          n_type:  NT_CONTENT.  This  optional
                             entry  indicates  which parts of the
                             process image are  specified  to  be
                             included   in  the  core  file.  See
                             coreadm(1M).



SunOS 5.10           Last change: 9 Aug 2005                    6






File Formats                                              core(4)



     Following these entries, for each active and zombie  LWP  in
     the  process, the new NOTE segment contains an entry with an
     lwpsinfo_t structure plus, for a non-zombie  LWP,  an  entry
     with an lwpstatus_t structure, plus other optionally-present
     entries describing the LWP, as follows. A zombie  LWP  is  a
     non-detached  LWP  that  has terminated but has not yet been
     reaped by another LWP in the same process.

     lwpsinfo_t      n_type: NT_LWPSINFO. This structure contains
                     information  of  interest  to the ps(1) com-
                     mand, such as LWP status, CPU usage,  "nice"
                     value,  LWP-ID, and so forth. The lwpsinfo_t
                     structure is defined in <sys/procfs.h>. This
                     is the only entry present for a zombie LWP.



     lwpstatus_t     n_type: NT_LWPSTATUS.  This  structure  con-
                     tains  things of interest to a debugger from
                     the operating system, such  as  the  general
                     registers,  the  floating  point  registers,
                     state, reason for stopping, LWP-ID,  and  so
                     forth.  The lwpstatus_t structure is defined
                     in <sys/procfs.h>>.



     gwindows_t      n_type: NT_GWINDOWS. This entry  is  present
                     only on a SPARC machine and only if the sys-
                     tem was unable to flush all of the  register
                     windows to the stack. It contains all of the
                     unspilled register windows.  The  gwindows_t
                     structure is defined in <sys/regset.h>.



     prxregset_t     n_type: NT_PRXREG.  This  entry  is  present
                     only if the machine has extra register state
                     associated with it. It  contains  the  extra
                     register state. The prxregset_t structure is
                     defined in <sys/procfs_isa.h>.



     asrset_t        n_type: NT_ASRS. This entry is present  only
                     on  a  SPARC V9 machine and only if the pro-
                     cess is a 64-bit process.  It  contains  the
                     ancillary  state registers for the LWP.  The
                     asrset_t    structure    is    defined    in
                     <sys/regset.h>.





SunOS 5.10           Last change: 9 Aug 2005                    7






File Formats                                              core(4)



     Depending on the coreadm(1M) settings, the section header of
     an  ELF core file can contain entries for CTF, symbol table,
     and string table sections. The sh_addr fields are set to the
     base  address  of  the first mapping of the load object that
     they came from to. This can be used to match those  sections
     with the corresponding load object.

     The size of the core file created by a process can  be  con-
     trolled by the user (see getrlimit(2)).

SEE ALSO
     gcore(1), mdb(1), proc(1), ps(1), coreadm(1M), getrlimit(2),
     setrlimit(2),      setuid(2),      sysinfo(2),     uname(2),
     getzonenamebyid(3C),        getzoneid(3C),        elf(3ELF),
     signal.h(3HEAD), a.out(4), proc(4), zones(5)

     ANSI C Programmer's Guide






































SunOS 5.10           Last change: 9 Aug 2005                    8





Man(1) output converted with man2html and wrapped by fishsponge

This page was generated on Wed Sep 12 11:27:20 GMT 2007

Your favourite pages:

No pages logged yet.
Trying to save cookie...

Top 10 most popular pages:

sqlite3 man page (5334 hits)
(openSUSE 10.2)

svn man page (5208 hits)
(FreeBSD 6.2)

adv_cap_autoneg man page (4870 hits)
(Solaris 10 11_06)

CPAN man page (4607 hits)
(Suse Linux 10.1)

ssh man page (4342 hits)
(Suse Linux 10.1)

ssh-socks5-proxy-connect man page (2876 hits)
(Solaris 10 11_06)

netcat man page (2717 hits)
(Suse Linux 10.1)

pprosetup man page (2487 hits)
(Solaris 10 11_06)

startproc man page (2471 hits)
(Suse Linux 10.1)

signal man page (2407 hits)
(Suse Linux 10.1)

Useful Links

Go Back

Visitor Statistics


Valid XHTML 1.0 Transitional     Valid CSS!

Partners: Cambridge Plus :: Pyrenees Ski Holidays :: PIC Application Design :: <Link Available>
Unix Man Pages / Linux Man Pages :: HiFi Forum :: SIP VoIP Phone & Provider Reviews :: UNIX/Linux Forum Archives

More info on advertising on Unix/Linux Forum