Describes how to use the c and o commands to get information about kernel objects.
Kernel objects such as DProcess, DThread, DSemaphore, DChunk are all instances of classes derived from DObject.
To show basic information about a DObject, use the o command.
To show more detail, use the O command.
As an example, use these commands to show information about a DProcess object whose address is shown using the i command:
... TheCurrentDataSectionProcess=6403bb4c ...
o 6403bb4c
This gives:
.o 6403bb4c PROCESS at 6403bb4c VPTR=f8046c78 AccessCount=6 Owner=00000000 Full name crash
All objects derived from DBase have a virtual table pointer, access count, owner and name. Using the O command on this address would you give you the full process information.
You can use o to examine other types of objects, for example chunks. The thread information for the current data section process shows two chunks:
NumChunks=2 0: Chunk 6403c044, run 00400000, access count 1 1: Chunk 64039688, run 00600000, access count 1
Using the o command on the first of these chunk objects gives you the basic information:
.o 6403c044 CHUNK at 6403c044 VPTR=f8046b50 AccessCount=1 Owner=6403bb4c Full name crash::$DAT
Using the O command gives you more detailed information:
.q 6403c044 CHUNK at 6403c044 VPTR=f8046b50 AccessCount=1 Owner=6403bb4c Full name crash::$DAT Owning Process 6403bb4c Size 2000, MaxSize 200000, Base 00400000 Attrib 6, StartPos 0 Type 6, State 2, Home Base 68900000 Home Region Offset 00000000 Home Region Base 68900000 Home Region Size 00100000 PTE: 0000055e, PDE: 00000021 00000001 00000001 NumPdes=1, iPdes=61000010, iHomePdes=61001a24 PdeBitMap=00000001, PageBitMap=6403c0c8 Domain -1
The information displayed is memory model dependent. It is shown here for the moving memory model.
Notes:
Size 2000, MaxSize 200000, Base 00400000
The Size field shows the current size of the chunk, in bytes.
The MaxSize field shows the maximum size of the chunk, in bytes.
The Base field shows the base address in the run region.
Attrib 6, StartPos 0
The Attrib field shows the attributes of the chunk.
The StartPos field shows the offset, in bytes, between the base address and the start of the committed area. This is non-zero for double-ended chunks only.
Type 6, State 2, Home Base 68900000
The Type field shows the type of chunk. This corresponds to a TChunkType enum value.
The State field shows the current state of the chunk. This corresponds to a TChunkState enum value, which is itself defined within the scope of the Symbian platform internal class DMemModelChunk.
The Home Base field is the base address of the chunk in the home region.
Home Region Offset 00000000 Home Region Base 68900000 Home Region Size 00100000
These three lines show the offset, base address and size (the reserved size) of the chunk in the home region.
Internally, the kernel maintains lists of all current objects, organized by type. Each list is a container, a DObjectCon object, with one for each object type.
The c command will walk through all objects in a given list. The type of object is identified by appending a number after the command. For example, DProcess objects are identified by the number 1, so to walk through all current DProcess objects type:
c1
The command effectively executes a O command on each object in the "processes" container.
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.