Adaptation/GUID-08E14B34-5144-5AA8-AA55-7AF03671676C.dita
changeset 15 307f4279f433
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Adaptation/GUID-08E14B34-5144-5AA8-AA55-7AF03671676C.dita	Fri Oct 15 14:32:18 2010 +0100
@@ -0,0 +1,459 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
+<!-- This component and the accompanying materials are made available under the terms of the License 
+"Eclipse Public License v1.0" which accompanies this distribution, 
+and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
+<!-- Initial Contributors:
+    Nokia Corporation - initial contribution.
+Contributors: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept id="GUID-08E14B34-5144-5AA8-AA55-7AF03671676C" xml:lang="en"><title>The
+Debug Monitor Command Syntax</title><shortdesc>The debug monitor is entered when the kernel crashes, if a system
+process panics, or an unhandled processor exception occurs.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
+<p>Under normal circumstances this ought not to happen, but when the kernel
+faults, the device enters the kernel debug monitor. </p>
+<p>There may be circumstances where you need to force a kernel crash, for
+example, if the system is locking up. Running the test program <filepath>crash.exe</filepath> forces
+a crash. This program takes a parameter that defines the number of seconds
+that must elapse before the kernel crash is forced. </p>
+<p>For example, when the system locks up under certain conditions, run "crash
+60", and then recreate the conditions that lead to the lockup. After 60 seconds,
+the kernel crash is forced and the debug monitor is entered. </p>
+<p>Notes: </p>
+<ul>
+<li id="GUID-E85767DA-5B42-5F9A-9B5D-4E0ED819FB4B"><p>the EKA2 debug monitor
+is very similar to the EKA1 version, although the details displayed may be
+different. </p> </li>
+<li id="GUID-9E27270F-21AE-582F-9520-8871B09159E6"><p>you will occasionally
+find references to the <i>crash debugger</i>; this is the same as the debug
+monitor. </p> </li>
+</ul>
+<section id="GUID-F7E31A93-BAE2-4D83-8AF6-66B9183EE5F0"><title>Getting the
+debug monitor going</title> <p>When the kernel faults, the device enters the
+debug monitor. </p> <p>To make use of the debug monitor, do the following: </p> <ul>
+<li id="GUID-289A65AF-17C1-5C71-8D7F-E9A687355318"><p>Plug the mains adaptor
+into the DC jack. </p> </li>
+<li id="GUID-19DF62B2-BFF4-592D-820D-5BF74814FF8A"><p>Connect the target device
+COM port to your PC, and set the PC serial port to 115200 baud, 8 bits, no
+parity, 1 stop bit, XON/XOFF flow control. </p> </li>
+<li id="GUID-8A852DA8-ADCD-5E17-963F-4304EF91538C"><p>Press the ON key on
+the target device. </p> </li>
+<li id="GUID-12889F87-DBD1-514D-A1D6-26D119CE0872"><p>Start a terminal program
+on the PC (e.g. HyperTerminal.) </p> </li>
+<li id="GUID-FBAEC406-3187-5AC9-850D-5B31521D0B5F"><p>Press <userinput>RETURN</userinput> on
+the PC. The target device should reply with the prompt: </p> <codeblock id="GUID-1F5189A4-560F-55ED-AC97-1651D1563E7C" xml:space="preserve">Password:</codeblock> </li>
+<li id="GUID-CE10F0C1-308E-5E67-93BF-4EFA81AADF59"><p>Enter the password "replacement"
+(all lower case, but without the quotes) on the PC. The target device should
+now reply: </p> <codeblock id="GUID-6A58CD1A-DA4E-50BF-A6CB-54B681BF5B35" xml:space="preserve">*** DEBUG MONITOR ***</codeblock> </li>
+</ul> <p>You can now enter debug monitor commands. </p> </section>
+<section id="GUID-A52544F3-7F66-4354-A29A-B05181A95F07"><title>Crash debugger
+commands</title> <p>Commands consist of a single letter describing the operation
+to be performed, followed by any arguments. Not all commands take arguments.
+Commands are case sensitive; the majority are lower case. Commands should
+be entered at the command prompt, on the PC. The set of supported commands
+is as follows: </p> <ul>
+<li id="GUID-DB12F01A-5AC0-5ABB-AB4E-A2F59969F5AD"><p> <userinput>f</userinput> - <xref href="GUID-08E14B34-5144-5AA8-AA55-7AF03671676C.dita#GUID-08E14B34-5144-5AA8-AA55-7AF03671676C/GUID-D5F2E0AF-EF03-5150-813B-DF989F12C47B">displays
+kernel fault information</xref>  </p> </li>
+<li id="GUID-946567F9-0B82-5056-84D3-9E25480DB3B1"><p> <userinput>m</userinput> - <xref href="GUID-08E14B34-5144-5AA8-AA55-7AF03671676C.dita#GUID-08E14B34-5144-5AA8-AA55-7AF03671676C/GUID-2A0D5950-F1A5-5EE1-87A3-840B1EAD6AAD">does
+a memory dump</xref>  </p> </li>
+<li id="GUID-3F2349E5-AE6C-550E-A743-D3B6AF34685F"><p> <userinput>z</userinput> - <xref href="GUID-08E14B34-5144-5AA8-AA55-7AF03671676C.dita#GUID-08E14B34-5144-5AA8-AA55-7AF03671676C/GUID-FDF734D6-9E05-573F-BF40-8DB4C7E0BAC5">does
+a memory dump, but skips over unmapped memory space</xref>  </p> </li>
+<li id="GUID-B11F3889-ABB2-5458-8648-CC08E268E7A2"><p> <userinput>i</userinput> - <xref href="GUID-08E14B34-5144-5AA8-AA55-7AF03671676C.dita#GUID-08E14B34-5144-5AA8-AA55-7AF03671676C/GUID-D0175D78-6F84-5F4F-BA90-2C591B473C69">displays
+information on the current thread and the current process</xref>  </p> </li>
+<li id="GUID-B558D40B-F34E-5D13-9170-B22B04EFED51"><p> <userinput>o</userinput> - <xref href="GUID-08E14B34-5144-5AA8-AA55-7AF03671676C.dita#GUID-08E14B34-5144-5AA8-AA55-7AF03671676C/GUID-3494E61C-7097-544C-AE7D-73750337744A">displays
+brief DObject information</xref>  </p> </li>
+<li id="GUID-B687B7A2-3177-5C14-9191-F9E5DB0F1799"><p> <userinput>O</userinput> - <xref href="GUID-08E14B34-5144-5AA8-AA55-7AF03671676C.dita#GUID-08E14B34-5144-5AA8-AA55-7AF03671676C/GUID-1DED2B2F-E780-50A0-8325-5DA22BC7D3E0">displays
+full DObject information</xref>  </p> </li>
+<li id="GUID-E6DE23AE-6599-5F97-BC90-14277409FF61"><p> <userinput>p</userinput> - <xref href="GUID-08E14B34-5144-5AA8-AA55-7AF03671676C.dita#GUID-08E14B34-5144-5AA8-AA55-7AF03671676C/GUID-AE1A903F-6351-523C-AD88-AD6CA4527C39">display
+short information about code segments</xref>  </p> </li>
+<li id="GUID-CEA42CE2-DBF9-514E-BAA2-6A580AA65DC0"><p> <userinput>P</userinput> - <xref href="GUID-08E14B34-5144-5AA8-AA55-7AF03671676C.dita#GUID-08E14B34-5144-5AA8-AA55-7AF03671676C/GUID-9450C209-3F28-581D-87B0-CEA96B94DB62">display
+full information about code segments</xref>  </p> </li>
+<li id="GUID-DBCA7F2B-F4A9-5A1D-9C14-01A03C912E20"><p> <userinput>c</userinput> - <xref href="GUID-08E14B34-5144-5AA8-AA55-7AF03671676C.dita#GUID-08E14B34-5144-5AA8-AA55-7AF03671676C/GUID-FB2E24A6-9744-5169-BA90-DDF84DF1D3E5">displays
+contents of object container; (nb lower case)</xref>  </p> </li>
+<li id="GUID-4777B729-FFFA-5882-A60B-1D1E981A0390"><p> <userinput>C</userinput> - <xref href="GUID-08E14B34-5144-5AA8-AA55-7AF03671676C.dita#GUID-08E14B34-5144-5AA8-AA55-7AF03671676C/GUID-55EF66A9-684F-50DA-8E2B-FA00B3D4FB6C">displays
+contents of object container; (nb upper case)</xref>  </p> </li>
+<li id="GUID-4DFB16FF-91D2-52FD-B2A9-C0D6AEBE682E"><p> <userinput>r</userinput> - <xref href="GUID-08E14B34-5144-5AA8-AA55-7AF03671676C.dita#GUID-08E14B34-5144-5AA8-AA55-7AF03671676C/GUID-0CDF0190-A445-526B-AC1F-D9D58095B18B">dumps
+register contents</xref>  </p> </li>
+<li id="GUID-D0E5A7FB-9722-5686-82CF-8BC4ECE7CE86"><p> <userinput>S</userinput> - <xref href="GUID-08E14B34-5144-5AA8-AA55-7AF03671676C.dita#GUID-08E14B34-5144-5AA8-AA55-7AF03671676C/GUID-5693700E-6401-56B1-9817-AE0C3A81B42D">dumps
+thread stack contents</xref>  </p> </li>
+<li id="GUID-B218BE95-7A94-58A1-911A-4CA79F3CE9B5"><p> <userinput>x</userinput> - <xref href="GUID-08E14B34-5144-5AA8-AA55-7AF03671676C.dita#GUID-08E14B34-5144-5AA8-AA55-7AF03671676C/GUID-8F9BAB99-8B88-5120-A95E-A22404110BAE">leaves
+the debugger, does a cold restart of the same ROM image; (nb lower case)</xref>  </p> </li>
+<li id="GUID-D2089650-2B94-51EB-A0E7-4E15E266DC67"><p> <userinput>X</userinput> - <xref href="GUID-08E14B34-5144-5AA8-AA55-7AF03671676C.dita#GUID-08E14B34-5144-5AA8-AA55-7AF03671676C/GUID-4E12A080-AC83-5872-A66D-4C14A65C5CFA">leaves
+the debugger, and returns to the bootloader to wait for a new ROM image to
+be downloaded; (nb upper case)</xref>  </p> </li>
+<li id="GUID-AE255B3D-C61A-58ED-AFB0-6E003BBE37F6"><p> <userinput>h</userinput> - <xref href="GUID-08E14B34-5144-5AA8-AA55-7AF03671676C.dita#GUID-08E14B34-5144-5AA8-AA55-7AF03671676C/GUID-190C956D-4F57-593B-B3B1-958B6CAE1267">help</xref>. </p> </li>
+</ul> </section>
+<section id="GUID-D5F2E0AF-EF03-5150-813B-DF989F12C47B"><title>f - display
+kernel fault information</title> <p>This command displays information about
+the the kernel fault that caused the debugger to be entered. The information
+has the following format. </p> <codeblock id="GUID-608A834D-00FA-56E6-AC8A-EA8C762F4315" xml:space="preserve">Fault Category: Exception  Fault Reason: 10000000
+ExcId 00000001 CodeAddr ffe0016c DataAddr 80000001 Extra 00000013
+Exc 1 Cpsr=68000010 FAR=80000001 FSR=00000013
+ R0=00000000  R1=00000000  R2=30000000  R3=80000001
+ R4=00000001  R5=00403d68  R6=00002000  R7=00000000
+ R8=00000000  R9=00000000 R10=00000000 R11=00403fa0
+R12=00403d34 R13=00403d48 R14=500d41e8 R15=ffe0016c
+R13Svc=81716000 R14Svc=500480b8 SpsrSvc=20000010</codeblock> <p>Notes: </p> <ul>
+<li id="GUID-7FC165D2-735D-50D7-86D0-5513C8D3770A"><p>R15 is the program counter </p> </li>
+<li id="GUID-9D653C6D-C085-5EF1-938E-28081214661E"><p>R14 is the link register, </p> </li>
+<li id="GUID-5596B888-26D6-57AB-9760-EBEDA927E693"><p>R13 is the stack pointer </p> </li>
+</ul> </section>
+<section id="GUID-2A0D5950-F1A5-5EE1-87A3-840B1EAD6AAD"><title>m - do a memory
+dump</title> <p>This command dumps memory in both hexadecimal and ASCII format.
+Use one of the following command formats: </p> <codeblock id="GUID-157ED0E9-4012-5514-B17F-D2CC01A84C31" xml:space="preserve">m start end</codeblock> <codeblock id="GUID-ED0AE1B8-8AF7-5D31-872B-42878C3C11B1" xml:space="preserve">m start+length</codeblock> <p> <codeph>start</codeph> specifies
+the start address in hexadecimal, and <codeph>end</codeph> specifies the end
+address in hexadecimal. If the second parameter starts with a + character,
+then the following hexadecimal characters are interpreted as a length. </p> <p>Address
+parameters are always virtual addresses (the MMU is still on). </p> <p>The
+resulting format is similar to the EKA1 format. </p> <p>For example: </p> <p><userinput>.m
+81c01c60+30</userinput> </p> <codeblock id="GUID-06B94331-E70F-5058-8EE1-BD4310102C11" xml:space="preserve">81C01C60: 00 00 00 00 15 00 00 10 E0 6A 13 50 01 00 00 80 .........j.P....
+81C01C70: 30 3B C0 81 34 D9 03 50 00 00 FF FF E8 1C C0 81 0;..4..P........
+81C01C80: 34 D9 03 50 30 3B C0 81 FC 4A 13 50 E8 1C C0 81 4..P0;...J.P.....
+</codeblock> <p>If an illegal memory access occurs, the debugger traps the
+exception and displays an error message. </p> </section>
+<section id="GUID-FDF734D6-9E05-573F-BF40-8DB4C7E0BAC5"><title>z - do a memory
+dump, skipping over unmapped memory</title> <p>This command dumps memory in
+both hexadecimal and ASCII format, but excludes any unmapped memory space.
+If an illegal memory access occurs, it does not stop, but skips to the next
+page instead. This is useful to inspect the content of discontiguous chunks. </p> <p>The
+syntax and the display format is the same as for the <xref href="GUID-08E14B34-5144-5AA8-AA55-7AF03671676C.dita#GUID-08E14B34-5144-5AA8-AA55-7AF03671676C/GUID-2A0D5950-F1A5-5EE1-87A3-840B1EAD6AAD">m</xref> command. </p> </section>
+<section id="GUID-D0175D78-6F84-5F4F-BA90-2C591B473C69"><title>i - display
+information for the current process and thread</title> <p>This command displays
+information for the current process and thread. </p> <codeblock id="GUID-6EFED69E-3792-5F19-ACE5-A63F922F35DA" xml:space="preserve">SCHEDULER @80000d98: CurrentThread 8070dd28
+RescheduleNeeded=00 DfcPending=00 KernCSLocked=00000001
+DFCS: next 80000ea8 prev 80000ea8
+ProcessHandler=5004b040, AddressSpace=8070d7c8
+SYSLOCK: HoldingThread 8070dd28 iWaiting 00000000
+Extras 0: 8070d7c8 1: 8070d7c8 2: 8070d7c8 3: 00000000
+Extras 4: 00000000 5: 00000000 6: 00000000 7: 00000000
+Extras 8: 00000000 9: 00000000 A: 00000000 B: 00000000
+Extras C: 00000000 D: 00000000 E: 00000000 F: 00000000
+</codeblock> <p>The format for the thread is: </p> <codeblock id="GUID-53C336CC-CA91-542A-8BB3-858DF9F32745" xml:space="preserve">TheCurrentThread=8070da6c
+THREAD at 8070da6c VPTR=50052b50 AccessCount=3 Owner=8070d7c8
+Full name crash::Main
+Thread MState READY
+Default priority 28 WaitLink Priority 28
+ExitInfo 3,0,
+Flags 80000004, Handles 8070a79c
+Superviso81715000 size 1000
+User stack base 00402000 size 2000
+Id=19, Heap=00600000, Created heap=00600000, Frame=00000000
+Trap handler=00000000, ActiveScheduler=00000000, Exception
+handler=00000000
+TempObj=00000000 TempAlloc=00000000
+NThread @ 8070dd28 Pri 28 NState READY
+Next=8070dd28 Prev=8070dd28 Att=03 ExcInUserMode=10
+HeldFM=80000eb8 WaitFM=00000000 AddrSp=8070d7c8
+Time=0 Timeslice=20 ReqCount=0
+SuspendCount=0 CsCount=0 CsFunction=00000000
+SavedSP=81715d6c
+CAR 00000001
+DACR 30315507
+R13_USR 00000000 R14_USR 81715dc4 SPSR_SVC 81715e10
+ R4 30303031  R5 30303030  R6 81715dc4  R7 81715e14
+ R8 81715dac  R9 81715da0 R10 50055c88 R11 50055c3c
+ PC 81715dc0</codeblock> <p>The format for the process is: </p> <codeblock id="GUID-1D3E3B5D-9E9C-5D2D-A720-004B2783087E" xml:space="preserve">TheCurrentProcess=8070d7c8
+PROCESS at 8070d7c8 VPTR=50052bc4 AccessCount=5 Owner=00000000
+Full name crash
+ExitInfo 3,0,
+Flags 00040000, Handles 80709c98, Attributes 60010000
+DataBssChunk 8070a514, CodeChunk 8070a9a8
+DllDataChunk 00000000, Process Lock 8070d90c
+NumChunks=2
+0: Chunk 8070a514, run 00400000, access count 1
+1: Chunk 8070a704, run 00600000, access count 1
+Domain -1, DACR 55555507
+TheCurrentAddressSpace=8070d7c8
+TheCurrentVMProcess=8070d7c8
+PROCESS at 8070d7c8 VPTR=50052bc4 AccessCount=5 Owner=00000000
+Full name crash
+ExitInfo 3,0,
+Flags 00040000, Handles 80709c98, Attributes 60010000
+DataBssChunk 8070a514, CodeChunk 8070a9a8
+DllDataChunk 00000000, Process Lock 8070d90c
+NumChunks=2
+0: Chunk 8070a514, run 00400000, access count 1
+1: Chunk 8070a704, run 00600000, access count 1
+Domain -1, DACR 55555507
+TheCurrentDataSectionProcess=8070d7c8
+TheCompleteDataSectionProcess=8070d7c8
+PROCESS at 8070d7c8 VPTR=50052bc4 AccessCount=5 Owner=00000000
+Full name crash
+ExitInfo 3,0,
+Flags 00040000, Handles 80709c98, Attributes 60010000
+DataBssChunk 8070a514, CodeChunk 8070a9a8
+DllDataChunk 00000000, Process Lock 8070d90c
+NumChunks=2
+0: Chunk 8070a514, run 00400000, access count 1
+1: Chunk 8070a704, run 00600000, access count 1
+Domain -1, DACR 55555507
+</codeblock> </section>
+<section id="GUID-3494E61C-7097-544C-AE7D-73750337744A"><title>o - display
+brief DObject information</title> <p>This command in <i>lower case</i> displays
+basic information about the <xref href="GUID-E48F1435-14B6-37F1-BE47-2EA803AFE497.dita"><apiname>DObject</apiname></xref>. The command has the
+following syntax: </p> <codeblock id="GUID-9F24821C-78C8-5CD0-8FF7-60F4A485C898" xml:space="preserve">o address</codeblock> <p>where <codeph>address</codeph> specifies
+the address of the <xref href="GUID-E48F1435-14B6-37F1-BE47-2EA803AFE497.dita"><apiname>DObject</apiname></xref>. </p> <p>For example: </p> <p><userinput>o
+6403c170</userinput> </p> <codeblock id="GUID-4BB938B5-EB18-54E7-93AF-C06B79FEAB6F" xml:space="preserve">THREAD at 6403c170 VPTR=f8046c18 AccessCount=3 Owner=6403bb4c
+Full name crash::Main
+</codeblock> </section>
+<section id="GUID-1DED2B2F-E780-50A0-8325-5DA22BC7D3E0"><title>O - display
+full DObject information</title> <p>This command in <i>upper case</i> displays
+full information about the <xref href="GUID-E48F1435-14B6-37F1-BE47-2EA803AFE497.dita"><apiname>DObject</apiname></xref>. The exact format displayed
+depends on the exact type of the <xref href="GUID-E48F1435-14B6-37F1-BE47-2EA803AFE497.dita"><apiname>DObject</apiname></xref> being referenced,
+for example, whether it is a thread, process, or a chunk. The command has
+the following syntax: </p> <codeblock id="GUID-C817409C-04A2-54BA-ABB6-185950CF4462" xml:space="preserve">O address</codeblock> <p>where <codeph>address</codeph> specifies
+the address of the <xref href="GUID-E48F1435-14B6-37F1-BE47-2EA803AFE497.dita"><apiname>DObject</apiname></xref>. </p> </section>
+<section id="GUID-AE1A903F-6351-523C-AD88-AD6CA4527C39"><title>p - display
+short information about code segments</title> <p>This command in <i>lower
+case</i> displays basic information about one or more code segments, as encapsulated
+by <codeph>DCodeSeg</codeph> objects. The command has the following syntax: </p> <codeblock id="GUID-EA2F3910-8E6B-58AA-B2DF-BED7E002C786" xml:space="preserve">p address | all</codeblock> <p>where: </p> <ul>
+<li id="GUID-AE4B3337-4438-5DC8-B84E-D5CABF708E5E"><p> <codeph>address</codeph> is
+the address of a specific code segment </p> </li>
+<li id="GUID-878886DD-9F7F-5B42-963F-37F7D5058F11"><p> <codeph>all</codeph> refers
+to all code segments. </p> </li>
+</ul> <p>For example: </p> <p><userinput>p 64053b70</userinput> </p> <codeblock id="GUID-9B44910A-3FB8-5283-AD41-29E5192A6393" xml:space="preserve">.p 64053b70
+CodeSeg at 64053b70:
+ FileName: Z:\sys\bin\crash.exe
+ RunAddress: f83e3498</codeblock> </section>
+<section id="GUID-9450C209-3F28-581D-87B0-CEA96B94DB62"><title>P - display
+full information about code segments</title> <p>This command in <i>upper case</i> displays
+the full information about one or more code segments, as encapsulated by <codeph>DCodeSeg</codeph> objects.
+The command has the following syntax: </p> <codeblock id="GUID-FBFC0802-A4CA-5050-8DC7-893144A24330" xml:space="preserve">P address | all</codeblock> <p>where: </p> <ul>
+<li id="GUID-DE005DAD-FBDB-5A07-8E6A-6D95A64E6BD5"><p> <codeph>address</codeph> is
+the address of a specific code segment </p> </li>
+<li id="GUID-339213D1-55B3-546B-B8CC-32785469CCC0"><p> <codeph>all</codeph> refers
+to all code segments. </p> </li>
+</ul> <p>For example: </p> <p><userinput>P 64053b70</userinput> </p> <codeblock id="GUID-B6B41D55-0093-5118-B5EB-C956AE8980EA" xml:space="preserve">.p 64053b70
+CodeSeg at 64053b70:
+ FileName: Z:\sys\bin\crash.exe
+ RunAddress: f83e3498
+
+ iLink:     Prev 64052f48 (64052f40) Next 640000e0 (640000d8)
+ iTempLink: Prev dfdfdfdf (dfdfdfcf) Next 00000000 (00000000)
+ iGbgLink:  Prev 00000000 (00000000) Next 00000000 (00000000)
+ iAccessCount: 1
+ iEntryPtVeneer: f83e3498
+ iFileEntryPoint: f83e3498
+ iExtOffset: 10
+ iUids: 1000007a 00000000 00000000
+ iDeps: 00000000 ( )
+ iDepCount: 0
+ iNextDep: 0
+ iMark: 31
+ iAttr: a
+ iExeCodeSeg: 64053b70
+ iAttachProcess: 00000000
+ iModuleVersion: a0000
+ iS:
+   SecureId: 00000000, VendorId: 70000001
+   Caps: 000fffff 00000000
+ iSize: 370
+
+ iXIP: 1
+ iInfo: f83e3420 (TRomImageHeader*)
+  iUid1: 1000007a, iUid2: 00000000, iUid3: 00000000
+  iUidChecksum: 045ac39e
+  iEntryPoint:  f83e3498
+  iCodeAddress: f83e3498, iCodeSize: 00000370
+  iDataAddress: 00000000, iDataSize: 00000000
+  iTextSize:    00000370, iBssSize:  00000000
+  iHeapSizeMin: 00001000, iHeapSizeMax: 00100000, iStackSize: 00002000
+  iDllRefTable: 00000000
+  iExportDirCount: 0, iExportDir: f83e33fc
+  iS:
+    SecureId: 00000000, VendorId: 70000001
+    Caps: 000fffff 00000000
+  iToolsVersion: Major 02 Minor 01 Build 0225
+  iFlags: 0000002a
+  iPriority: 352
+  iDataBssLinearBase: 00400000
+  iNextExtension: 00000000
+  iHardwareVariant: 01000000
+  iTotalDataSize: 00000000
+  iModuleVersion: 000a0000
+  iExceptionDescriptor: f83e34f4
+
+ iCodeAllocBase: 80000000
+ iDataAllocBase: 80000000
+ iKernelData: 00000000</codeblock> </section>
+<section id="GUID-FB2E24A6-9744-5169-BA90-DDF84DF1D3E5"><title>c - display
+contents of object container</title> <p>This command in <i>lower case</i> displays
+the contents of one of the kernel's object containers, a <codeph>DObjectCon</codeph> type.
+Note that information is dumped very quickly without page breaks, which is
+useful in situations where the kernel is likely to become very unstable very
+shortly after crashing. There is an upper case version of this command, <xref href="GUID-08E14B34-5144-5AA8-AA55-7AF03671676C.dita#GUID-08E14B34-5144-5AA8-AA55-7AF03671676C/GUID-55EF66A9-684F-50DA-8E2B-FA00B3D4FB6C">C</xref>,
+which generates output with a pause between pages. </p> <p>The command has
+the following syntax: </p> <codeblock id="GUID-71EF50B9-1612-57CA-840D-F142CF5EE88E" xml:space="preserve">c type</codeblock> <p>where <codeph>type</codeph> is
+a single hexadecimal digit between 0 and D inclusive that specifies which
+kernel container is to be dumped. The mapping between the hexadecimal digit
+and the kernel container is: </p> <table id="GUID-B1F908E6-0492-507E-BDAC-D010A1C4E231">
+<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
+<tbody>
+<row>
+<entry><p>0</p> </entry>
+<entry><p>Threads </p> </entry>
+</row>
+<row>
+<entry><p>1</p> </entry>
+<entry><p>Processes </p> </entry>
+</row>
+<row>
+<entry><p>2</p> </entry>
+<entry><p>Chunks </p> </entry>
+</row>
+<row>
+<entry><p>3</p> </entry>
+<entry><p>Libraries </p> </entry>
+</row>
+<row>
+<entry><p>4</p> </entry>
+<entry><p>Semaphores </p> </entry>
+</row>
+<row>
+<entry><p>5</p> </entry>
+<entry><p>Mutexes </p> </entry>
+</row>
+<row>
+<entry><p>6</p> </entry>
+<entry><p>Timers </p> </entry>
+</row>
+<row>
+<entry><p>7</p> </entry>
+<entry><p>Servers </p> </entry>
+</row>
+<row>
+<entry><p>8</p> </entry>
+<entry><p>Sessions </p> </entry>
+</row>
+<row>
+<entry><p>9</p> </entry>
+<entry><p>LogicalDevices </p> </entry>
+</row>
+<row>
+<entry><p>A</p> </entry>
+<entry><p>PhysicalDevices </p> </entry>
+</row>
+<row>
+<entry><p>B</p> </entry>
+<entry><p>Channels </p> </entry>
+</row>
+<row>
+<entry><p>C</p> </entry>
+<entry><p>ChangeNotifiers </p> </entry>
+</row>
+<row>
+<entry><p>D</p> </entry>
+<entry><p>Undertakers </p> </entry>
+</row>
+<row>
+<entry><p>E</p> </entry>
+<entry><p>Message queues </p> </entry>
+</row>
+<row>
+<entry><p>F</p> </entry>
+<entry><p>Property references </p> </entry>
+</row>
+</tbody>
+</tgroup>
+</table> <p>For example: </p> <p><userinput>c A</userinput> </p> <codeblock id="GUID-9153AF8D-8F14-5E1E-B6A5-F24502DF704D" xml:space="preserve">Container 10 at 640275c4 contains 3 PHYSICAL DEVICES:
+PHYSICAL DEVICE at 64032dac VPTR=f805d9fc AccessCount=2 Owner=00000000
+Full name Media.IRam
+PHYSICAL DEVICE at 640339e8 VPTR=f8067e44 AccessCount=2 Owner=00000000
+Full name Media.Flash
+PHYSICAL DEVICE at 64033a64 VPTR=f806b9f8 AccessCount=2 Owner=00000000
+Full name Media.Ata
+</codeblock> <p><userinput>c 0</userinput> </p> <codeblock id="GUID-D0EAECD6-B683-591A-964F-C8C893A074F0" xml:space="preserve">Container 0 at 807022b8 contains 12 THREADS:
+THREAD at 807011c0 VPTR=50052b04 AccessCount=1 Owner=8070107c
+Full name EKern::Null
+Thread MState READY
+Default priority 0 WaitLink Priority 0
+ExitInfo 3,0,
+Flags 0000000c, Handles 80701520
+Supervisor stack base 80700000 size 1000
+User stack base 00000000 size 0
+Id=0, Heap=00000000, Created heap=00000000, Frame=00000000
+Trap handler=00000000, ActiveScheduler=00000000, Exception
+handler=00000000
+TempObj=00000000 TempAlloc=00000000
+NThread @ 8070147c Pri 0 NState READY
+Next=8070147c Prev=8070147c Att=00 ExcInUserMode=00
+HeldFM=00000000 WaitFM=00000000 AddrSp=8070107c
+Time=-1 Timeslice=-1 ReqCount=0
+SuspendCount=0 CsCount=0 CsFunction=00000000
+SavedSP=80700f50
+CAR 00000001
+DACR 55555547
+R13_USR 00403ed4 R14_USR 500c88b4 SPSR_SVC 200000d3
+ R4 00000009  R5 5004b7ec  R6 50000000  R7 dc911000
+ R8 00000000  R9 807103c0 R10 50002140 R11 80700fb4
+ PC 500481b4
+</codeblock> <p>The information displayed for each object is the same as that
+shown after using the <xref href="GUID-08E14B34-5144-5AA8-AA55-7AF03671676C.dita#GUID-08E14B34-5144-5AA8-AA55-7AF03671676C/GUID-1DED2B2F-E780-50A0-8325-5DA22BC7D3E0">q</xref> command.
+After displaying the information for each object, the debugger pauses until
+you press a key. </p> <p>Notes </p> <ul>
+<li id="GUID-63AF0857-4C02-5F39-8CB2-E57E11727F92"><p>the <codeph>DObjectCon</codeph> class
+is internal to Symbian platform. </p> </li>
+<li id="GUID-827905CF-C25F-56D6-B40B-416C3DA1C5CB"><p>the type value passed
+as an argument to the command is one of the enum values of the <codeph>TObjectType</codeph> enum;
+this enum is internal to Symbian platform. </p> </li>
+</ul> </section>
+<section id="GUID-55EF66A9-684F-50DA-8E2B-FA00B3D4FB6C"><title>C - display
+contents of object container</title> <p>This command in <i>upper case</i> is
+exactly the same as the lower case <xref href="GUID-08E14B34-5144-5AA8-AA55-7AF03671676C.dita#GUID-08E14B34-5144-5AA8-AA55-7AF03671676C/GUID-FB2E24A6-9744-5169-BA90-DDF84DF1D3E5">c</xref> command
+except that the display of output pauses between pages. If you need to dump
+output as fast as possible without pauses, use the lower case version. </p> </section>
+<section id="GUID-0CDF0190-A445-526B-AC1F-D9D58095B18B"><title>r - dump register
+contents</title> <p>This command dumps the full ARM register set. </p> <p>On
+ARM this dumps the full set of user mode registers and all the alternate registers
+for other modes. </p> <p>For example: </p> <p><userinput>r</userinput> </p> <codeblock id="GUID-4569C1FE-78B0-518F-A2A0-642CECD9E1F3" xml:space="preserve">MODE_USR:
+ R0=6571de54  R1=0000002a  R2=00000002  R3=ffffffff
+ R4=0000002a  R5=f8170414  R6=6571df14  R7=6403cba8
+ R8=00000001  R9=6403c41c R10=640002f8 R11=6571de70
+R12=00000020 R13=00404e00 R14=f80818c0 R15=f800bfa8
+CPSR=60000013
+MODE_FIQ:
+ R8=00000000  R9=ffffffff R10=ffffffff R11=00000000
+R12=00000000 R13=64000d0c R14=c080079c SPSR=e00000dc
+MODE_IRQ:
+R13=6400110c R14=00000013 SPSR=20000013
+MODE_SVC:
+R13=6571de54 R14=f80328bc SPSR=60000010
+MODE_ABT:
+R13=6400090c R14=ffff0010 SPSR=400000d7
+MODE_UND:
+R13=6400090c R14=95221110 SPSR=f000009d
+</codeblock> </section>
+<section id="GUID-5693700E-6401-56B1-9817-AE0C3A81B42D"><title>S - Dumps thread
+stack contents</title> <p>This command, in upper case, dumps both the user
+and supervisor stacks used by each thread in the system. Some threads do not
+have a user thread, in which case this is indicated. Each set of stacks is
+displayed in turn, in the following format: </p> <codeblock id="GUID-F8622389-3BD3-5CC9-A6BC-4358BCE8F5F8" xml:space="preserve">THREAD at c8052fa0 VPTR=80082304 AccessCount=6 Owner=c8044608
+Full name efile.exe::LoaderThread
+User stack base at 00410000, size == 1000
+Stack pointer == 00413e30
+Stack mapped at 00410000
+00413e30: 10 01 70 01 99 93 1b 80 18 01 70 01 d0 56 1b 80 ..p.......p..V..
+00413e40: 00 00 00 00 00 00 00 00 84 00 70 01 84 00 70 01 ..........p...p.
+00413e50: 04 00 00 00 23 91 1b 80 38 01 70 01 10 01 70 01 ....#...8.p...p.
+00413e60: 80 3e 41 00 01 00 00 00 10 01 70 01 00 00 00 00 .&gt;A.......p.....
+00413e70: 84 00 70 01 cd 91 1b 80 30 02 70 01 00 00 00 00 ..p.....0.p.....
+
+Supervisor stack base at c9127000, size == 1000
+Stack pointer == c9127fbc
+c9127fb0: b0 d1 0a c8 0c 00 00 00 13 00 00 00 00 07 00 00 ................
+c9127fc0: 00 00 f0 00 45 55 55 55 30 3e 41 00 89 ff 1b 80 ....EUUU0&gt;A.....
+c9127fd0: 10 00 00 20 10 01 70 01 80 3e 41 00 98 c7 23 80 ... ..p..&gt;A...#.
+c9127fe0: 58 3e 41 00 04 00 00 00 40 00 00 00 98 4b 04 c8 X&gt;A.....@....K..
+c9127ff0: 60 04 00 c8 98 01 02 80 00 00 00 00 10 5a 1b 80 `............Z..</codeblock> <p><note> With
+a multiple memory model, this command is the only way to reliably dump a stack. </note></p> </section>
+<section id="GUID-8F9BAB99-8B88-5120-A95E-A22404110BAE"><title>x - leave debugger,
+cold restart of ROM image</title> <p>This command, in lower case, leaves the
+debugger and does a cold restart of the current ROM image. </p> </section>
+<section id="GUID-4E12A080-AC83-5872-A66D-4C14A65C5CFA"><title>X - leave debugger,
+return to bootloader</title> <p>This command, in upper case, leaves the debugger,
+and returns to the bootloader to wait for a new ROM image to be downloaded. </p> </section>
+<section id="GUID-190C956D-4F57-593B-B3B1-958B6CAE1267"><title>h - Help</title> <p>Displays
+a short summery of the crash debugger commands. </p> </section>
+</conbody></concept>
\ No newline at end of file