*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> core (4)              



NAME    [Toc]    [Back]

       core - Format of memory image file

SYNOPSIS    [Toc]    [Back]

       #include <sys/core.h>

DESCRIPTION    [Toc]    [Back]

       The  system writes out a memory image of a terminated process
 when any of various errors  occur.  See  sigaction(2)
       for the list of reasons; the most common are memory violations,
 illegal instructions, bus errors,  and  user-generated
  quit signals. The memory image is called core and is
       written in the process's working directory (provided  that
       it can be; normal access controls apply).

       The  maximum size of a core file is limited.  If a process
       exceeds this limit, any remaining data to  be  written  to
       the core file is lost.

       Default  behavior is for the system to create a file named
       core, overwriting any other file with  that  name  in  the
       working directory.

       You can enable enhanced core file naming, which causes the
       system to create unique names for core files.  Core  files
       are  not  overwritten, thereby preventing loss of valuable
       debugging information when the same program fails  mulitiple
 times (and perhaps for mulitple reasons).

       When enhanced core file naming is enabled, the system produces
 core files with names in the following format:

       core.program_name.host_name.numeric_tag The literal string
       core.   Up  to  sixteen  characters taken from the program
       name as shown by the ps command.  The first portion of the
       system's  network host name, or up to 16 characters of the
       host name, taken from the part of the host name that  precedes
  the  first  dot.   This tag is assigned to the core
       file to make it unique among all of the core files  generated
  by  a  program on a host. The maximum value for this
       tag, and thus the maximum number of core  files  for  this
       program and host, is set by a system configuration parameter.

              Note the tag is not a literal version  number.  The
              system  selects  the first available unique tag for
              the core file. For example,  if  a  program's  core
              files have tags .0, .1, and .3, the system uses tag
              .2 for the next core file it creates for that  program.
  If the system-configured limit for core file
              instances is reached, the system  will  not  create
              any  more core files for that program/host combination.
 By default, the system can create  up  to  16
              versions of a core file.

              For example, the fourth core file generated on host
              buggy.net.ooze.com by the program dropsy would  be:

       Enhanced  core  file  naming  can be enabled at the system
       level or the program level: At the system level,  you  can
       enable  enhanced core file naming by setting the enhancedcore-name
 system configuration variable to 1 in  the  proc
       subsystem: proc:
               enhanced-core-name  =  1 At the program level, you
       can enable  enhanced  core  file  naming  by  calling  the
       uswitch  system  call with the USW_CORE flag set.  See the
       EXAMPLE section.

       The system manager can limit the  number  of  unique  core
       file versions that a program can create on a specific host
       system  by  setting  the  system  configuration   variable
       enhanced-core-max-versions to the desired value: proc:
               enhanced-core-name = 1
               enhanced-core-max-versions  =  8 The miminum value
       is 1, the maximum is 99,999, and the default is 16.

EXAMPLE    [Toc]    [Back]

       The following example shows a code fragment that calls the
       uswitch  system  call with the USW_CORE flag set: #include
       <signal.h> #include <sys/uswitch.h>

        * Request enhanced core file naming for
        * this process then create a core file.
        */ main() {
               long uval = uswitch(USC_GET, 0);
               uval = uswitch(USC_SET, uval | USW_CORE);
               if (uval < 0) {
               raise(SIGQUIT); }

       In general, the debugger dbx(1) is sufficient to deal with
       core images.


       sigaction(2), uswitch(2), sysconfigdb(8), dbx(1) delim off

[ Back ]
 Similar pages
Name OS Title
core OpenBSD memory image file format
core FreeBSD memory image file format
iflXBM IRIX XBM format image file
iflSGI IRIX SGI format image file
iflRaw IRIX raw image file format
iflXPM IRIX XPM format image file
iflYUV IRIX YUV format image file
iflGIF IRIX GIF format image file
iflFormat IRIX abstraction of an image file format
iflSOFTIMAGE IRIX SOFTIMAGE format image file
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service