[ Previous | Next | Table of Contents | Index | Library Home | Legal | Search ]

Files Reference


core File Format for POWER-based platform (AIX 5.1)

Purpose

Contains an image of a 32-bit or 64-bit process at the time of an error. This core file format applies to only AIX 5.1 of the operating system on the POWER-based platform.

Description

A core file is created in the current directory when various errors occur. Errors such as memory-address violations, illegal instructions, bus errors, and user-generated quit signals commonly cause this core dump. The core file that is created contains a memory image of the terminated process. A process with a saved user ID that differs from the real user ID does not produce a memory image. The contents of a core dump are organized sequentially in the core file as follows:

Core header Defines basic information about the core dump, and contains offsets that locate the remainder of the core dump information.
ldinfo structures Defines loader information.
thrdctx structures Defines kernel thread state information for 32-bit processes. Since the faulting thread thrdctx structure is directly saved in the core header, additional structures are saved here only for multi-threaded programs.
thrdctx64 structures Serves the same purpose as the thrdctx structure but only for 64-bit processes.
segregion structures Contains the address, size, and type for shared memory segments of the faulting process.
Default user stack Contains a copy of the user stack at the time of the core dump.
Default data area (Optional) Contains the user data section.
vm_infox structures (Optional) Contains offset and size information for memory mapped regions.
Memory mapped regions (Optional) Contains the memory mapped regions.

By default, the user data, anonymously mapped regions, and vm_infox structures are not included in a core dump. This partial core dump includes the current thread stack, the thread thrdctx and thrdctx64 structures, the user structure, and the state of the registers at the time of the fault. A partial core dump contains sufficient information for a stack traceback. The size of a core dump can also be limited by the setrlimit or setrlimit64 subroutine.

To enable a full core dump, set the SA_FULLDUMP flag in the sigaction subroutine for the signal that is to generate a full core dump. If this flag is set when the core is dumped, the user data section, vm_infox, and anonymously mapped region structures are included in the core dump.

The core_dumpx Structure (32-bit Process)

The core_dumpx structure, defined by the core.h file, occurs at the beginning of a core file. This structure is found only in a core file of a 32-bit process. The core_dumpx structure includes the following fields:

Field Type Field Name Description
char c_signo The number of the signal that caused the error
char c_flag A bit field that describes the core dump type. The meanings of the bits are as follows:




FULL_CORE core contains the data sections (0x01)




CORE_VERSION_1 core was generated by AIX Version 4 or higher (0x02)




MSTS_VALID core contains mstsave structures (0x04)




CORE_BIGDATA core contains big data (0x08)




UBLOCK_VALID core contains the u_block structure (0x10)




USTACK_VALID core contains the user stack (0x20)




LE_VALID core contains at least one module (0x40)




CORE_TRUNC core was truncated (0x80)
ushort c_entries The number of core dump modules
int c_version Core file format version
unsigned long long c_fdsinfox Offset to fd region in file
unsigned long long c_loader Offset to loader region in file
unsigned long long c_lsize Size of the loader region
uint c_n_thr Number of elements in thread table
unsigned long long c_thr Offset to thread context table
unsigned long long c_segs Number of elements in segregion
unsigned long long c_segregion Offset to start of segregion table
unsigned long long c_stack Offset of user stack in file
unsigned long long c_stackorg Base address of user stack region
unsigned long long c_size Size of user stack region
unsigned long long c_data Offset to user data region
unsigned long long c_dataorg Base address of user data region
unsigned long long c_datasize Size of user data region
unsigned long long c_sdorg Base address of privately loaded region
unsigned long long c_sdsize Size of user privately loaded region
unsigned long long c_vmregions Number of anonymously mapped areas
unsigned long long c_vmm Offset of start of vm_infox table
struct thrdctx c_flt Faulting thread's context and thread data
struct userx c_u Representation of the user struct and process data

The c_flt field in the core dump contains the thrdctx structure of the faulting thread. The thrdctx structure includes the thread data and registers as they existed at the time of the fault. The format of the thread context structure is defined by thrdctx structure (in the core.h header file) as follows:

thrdctx thrdsinfo64
__context64
mstsave
thread data (in procinfo.h header file)
state of registers if 64-bit process, or
state of registers if 32-bit process


The c_u field follows this information in the core dump. The c_u field contains the userx structure including the user structure fields, and the process data as they existed at the time of the fault. The format of the process information structure is defined by the userx structure (in the core.h header file) as follows:

userx procsinfo64 Process data (in procinfo.h header file)


In addition, the procsinfo64 structure determines if the core file is of a 32-bit process or a 64-bit process.

After the core_dumpx structure, the ld_info structure and then the thrdctx structures of the other threads (if the process is multi-threaded) follow in the core dump.

The segregion structure and then the user-mode stack follow in the core dump.

The segregion structure contains the information about a shared memory region of the faulting process.

segregion addr
size
segflags
segment start address
size of the segment
type of the document


The core_dumpxx Structure (64-bit Process)

The core_dumpxx structure, defined by the core.h file, occurs at the beginning of a core file. This structure is found only in a core file of a 64-bit process. The core_dumpxx structure includes the following fields:

Field Type Field Name Description
char c_signo The number of the signal that caused the error
char c_flag A bit field that describes the core dump type. The meanings of the bits are as follows:




FULL_CORE core contains the data sections (0x01)




CORE_VERSION_1 core was generated by AIX Version 4 or higher (0x02)




MSTS_VALID core contains mstsave structures (0x04)




CORE_BIGDATA core contains big data (0x08)




UBLOCK_VALID core contains the u_block structure (0x10)




USTACK_VALID core contains the user stack (0x20)




LE_VALID core contains at least one module (0x40)




CORE_TRUNC core was truncated (0x80)
ushort c_entries The number of core dump modules
int c_version Core file format version
unsigned long long c_fdsinfox Offset to fd region in file
unsigned long long c_loader Offset to loader region in file
unsigned long long c_lsize Size of the loader region
uint c_reserved c_n_thr Number of elements in thread table
unsigned long long c_thr Offset to thread context table
unsigned long long c_segs Number of elements in segregion
unsigned long long c_segregion Offset to start of segregion table
unsigned long long c_stack Offset of user stack in file
unsigned long long c_stackorg Base address of user stack region
unsigned long long c_size Size of user stack region
unsigned long long c_data Offset to user data region
unsigned long long c_dataorg Base address of user data region
unsigned long long c_datasize Size of user data region
unsigned long long c_sdorg Base address of privately loaded region
unsigned long long c_sdsize Size of user privately loaded region
unsigned long long c_vmregions Number of anonymously mapped areas
unsigned long long c_vmm Offset of start of vm_infox table
struct thrctx64 c_flt Faulting thread's context and thread data
struct userx64 c_u Representation of the user struct and process data

The c_flt field in the core dump contains the thrdctx64 structure of the faulting thread. The thrdctx64 structure includes the thread data and registers as they existed at the time of the fault. The format of the thread context structure is defined by thrdctx64 structure (in the core.h header file) as follows:

thrctx64 thrdentry64
__context64
mstsave
thread data (in procinfo.h header file)
state of registers if 64-bit process, or
state of registers if 32-bit process


The c_u field follows this information in the core dump. The c_u field contains the userx64 structure including the user structure fields, and the process data as they existed at the time of the fault. The format of the process information structure is defined by the userx64 structure (in the core.h header file) as follows:

userx64 procentry64 Process data (in procinfo.h header file)


In addition, the procentry64 structure determines if the core file is of a 32-bit process or a 64-bit process.

After the core_dumpxx structure, the ld_info structure and then the thrdctx64 structures of the other threads (if the process is multi-threaded) follow in the core dump.

The segregion structure and then the user-mode stack follow in the core dump.

The segregion structure contains the information about a shared memory region of the faulting process.

segregion addr
size
segflags
segment start address
size of the segment
type of the document


Related Information

The param.h file.

The adb command, dbx command.

The raise subroutine, setrlimit and setrlimit64 subroutines, setuid subroutine, sigaction subroutine.

Header Files Overview


[ Previous | Next | Table of Contents | Index | Library Home | Legal | Search ]