## Current Process State

The current process is the process in whose address space the current thread was executing when the fault occurred. The 15 lines starting at line 33 of the output gives information relating to the current process. This has some similarities with the current thread information:

TheCurrentProcess=64038d5c
PROCESS at 64038d5c VPTR=f80342a4 AccessCount=6 Owner=00000000
Full name test2.exe
ExitInfo 3,0,
Flags a0000000, Handles 6403860c, Attributes 60010000
DataBssChunk 64039234, CodeSeg 6403919c
DllLock 64039044, Process Lock 64038eec SID 00000000
TempCodeSeg 00000000 CodeSeg 6403919c Capability 00000000 0003ffff
CodeSegs: Count=0
NumChunks=2
0: Chunk 64039234, run 00400000, access count 1
1: Chunk 6403613c, run 00600000, access count 1
Process shared IO buffers cookie 0000031d
Process has no shared IO buffers
Domain -1, DACR 55555507

The information includes:

- Process object and access count

- The process name

- Exit information

- Process flags

- Handles

- Attributes

- Information about memory

- Secure id

- Capability

- Code segments

- Chunks owned by the process

- Shared IO buffer information

- Domain information

### Process object and access count

PROCESS at 64038d5c VPTR=f80342a4 AccessCount=6 Owner=00000000

The Process at field contains a pointer to the DProcess object representing the process.

The AccessCount field contains the reference count on the process object.

The owner field contains a pointer to the object that owns this DProcess object.

### The process name

Full name test2.exe

The Full name field gives the name of the process. In this example, the name of the process is test2.exe.

See the thread name.

### Exit information

ExitInfo 3,0,

The ExitInfo field contains the information that characterises the process exit. In this example, the value is 3, meaning that this process has not exited. See also TExitType.

### Process flags

Flags a0000000, Handles 6403860c, Attributes 60010000

The Flags field contains information about the state of the process. The possible values in this field are defined by the KProcess... constants in u32std.h. While the symbols are internal to Symbian OS, the following table summarises the values and their meaning.

Symbol | Value | Meaning
KProcessFlagSystemCritical | 0x00000004 | A process panic causes the entire system to reboot.
KProcessFlagSystemPermanent | 0x00000008 | If the process exits for any reason, then this causes the entire system to reboot.
KProcessFlagPriorityControl | 0x40000000 | If set, then other threads are allowed to change this thread’s priority.
KProcessFlagJustInTime | 0x80000000 | If set, then just-in-time debug is enabled for this thread.

### Handles

Flags a0000000, Handles 6403860c, Attributes 60010000

The Handles field contains the address of a DObjectIx object that contains the handles owned by the process.

### Attributes

Flags a0000000, Handles 6403860c, Attributes 60010000

The Attributes field contains the attributes of the process. Some are generic, as defined by DProcess::TProcessAttributes, but others depend on the memory model.

### Information about memory

DataBssChunk 64039234, CodeSeg 6403919c

The DataBssChunk field contains a pointer to the DChunk object representing the chunk that contains the process data and .bss memory. Be aware that this is not the same as the heap - heaps are allocated to threads, and chunk information is found in the DThread object.

The CodeSeg field contains a pointer to the DCodeSeg object that represents the code segment.

### Secure id

DllLock 64039044, Process Lock 64038eec SID 00000000

The SID field contains the secure id of the process.

### Capability

TempCodeSeg 00000000 CodeSeg 6403919c Capability 00000000 0003ffff

The second four bytes of the Capability field contains the set of bits that define the capability for this process. This defines what the process can and cannot do.

### Code segments

CodeSegs: Count=0

The CodeSegs: Count field contains the number of code segments that have been dynamically loaded into the process. This will be zero if the process is XIP.

### Chunks owned by the process

NumChunks=2
0: Chunk 64039234, run 00400000, access count 1
1: Chunk 6403613c, run 00600000, access count 1

The NumChunks field contains the number of chunks owned by the process.

Successive lines contain information about each chunk:

- the Chunk field contains the address of a kernel DChunk object.

- the run field contains the virtual address at which the chunk resides when this is the current process.

- the access count field contains the reference count of the object.

### Shared IO buffer information

Process shared IO buffers cookie 0000031d
Process has no shared IO buffers

This is information about shared IO buffers. The cookie is only really of interest to base engineers.

### Domain information

Domain -1, DACR 55555507

This is ARM MMU-specific protection information. Processes have domain -1 and DACR 0xFFFFFFFF.

##### Related tasks

- Extracting Kernel Information
- Scheduler State
- Current Thread State
- Current Data Section Process