diff -r 578be2adaf3e -r 307f4279f433 Adaptation/GUID-772C2721-DD84-54A6-ACE0-ECACC6432B95.dita --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Adaptation/GUID-772C2721-DD84-54A6-ACE0-ECACC6432B95.dita Fri Oct 15 14:32:18 2010 +0100 @@ -0,0 +1,81 @@ + + + + + +Kernel +Objects and Containers Information CommandsDescribes how to use the c and o commands +to get information about kernel objects. +
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.

  • +
+
Kernel containers

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.

+
\ No newline at end of file