Adaptation/GUID-08E14B34-5144-5AA8-AA55-7AF03671676C.dita
changeset 15 307f4279f433
equal deleted inserted replaced
14:578be2adaf3e 15:307f4279f433
       
     1 <?xml version="1.0" encoding="utf-8"?>
       
     2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
       
     3 <!-- This component and the accompanying materials are made available under the terms of the License 
       
     4 "Eclipse Public License v1.0" which accompanies this distribution, 
       
     5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
       
     6 <!-- Initial Contributors:
       
     7     Nokia Corporation - initial contribution.
       
     8 Contributors: 
       
     9 -->
       
    10 <!DOCTYPE concept
       
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
       
    12 <concept id="GUID-08E14B34-5144-5AA8-AA55-7AF03671676C" xml:lang="en"><title>The
       
    13 Debug Monitor Command Syntax</title><shortdesc>The debug monitor is entered when the kernel crashes, if a system
       
    14 process panics, or an unhandled processor exception occurs.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    15 <p>Under normal circumstances this ought not to happen, but when the kernel
       
    16 faults, the device enters the kernel debug monitor. </p>
       
    17 <p>There may be circumstances where you need to force a kernel crash, for
       
    18 example, if the system is locking up. Running the test program <filepath>crash.exe</filepath> forces
       
    19 a crash. This program takes a parameter that defines the number of seconds
       
    20 that must elapse before the kernel crash is forced. </p>
       
    21 <p>For example, when the system locks up under certain conditions, run "crash
       
    22 60", and then recreate the conditions that lead to the lockup. After 60 seconds,
       
    23 the kernel crash is forced and the debug monitor is entered. </p>
       
    24 <p>Notes: </p>
       
    25 <ul>
       
    26 <li id="GUID-E85767DA-5B42-5F9A-9B5D-4E0ED819FB4B"><p>the EKA2 debug monitor
       
    27 is very similar to the EKA1 version, although the details displayed may be
       
    28 different. </p> </li>
       
    29 <li id="GUID-9E27270F-21AE-582F-9520-8871B09159E6"><p>you will occasionally
       
    30 find references to the <i>crash debugger</i>; this is the same as the debug
       
    31 monitor. </p> </li>
       
    32 </ul>
       
    33 <section id="GUID-F7E31A93-BAE2-4D83-8AF6-66B9183EE5F0"><title>Getting the
       
    34 debug monitor going</title> <p>When the kernel faults, the device enters the
       
    35 debug monitor. </p> <p>To make use of the debug monitor, do the following: </p> <ul>
       
    36 <li id="GUID-289A65AF-17C1-5C71-8D7F-E9A687355318"><p>Plug the mains adaptor
       
    37 into the DC jack. </p> </li>
       
    38 <li id="GUID-19DF62B2-BFF4-592D-820D-5BF74814FF8A"><p>Connect the target device
       
    39 COM port to your PC, and set the PC serial port to 115200 baud, 8 bits, no
       
    40 parity, 1 stop bit, XON/XOFF flow control. </p> </li>
       
    41 <li id="GUID-8A852DA8-ADCD-5E17-963F-4304EF91538C"><p>Press the ON key on
       
    42 the target device. </p> </li>
       
    43 <li id="GUID-12889F87-DBD1-514D-A1D6-26D119CE0872"><p>Start a terminal program
       
    44 on the PC (e.g. HyperTerminal.) </p> </li>
       
    45 <li id="GUID-FBAEC406-3187-5AC9-850D-5B31521D0B5F"><p>Press <userinput>RETURN</userinput> on
       
    46 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>
       
    47 <li id="GUID-CE10F0C1-308E-5E67-93BF-4EFA81AADF59"><p>Enter the password "replacement"
       
    48 (all lower case, but without the quotes) on the PC. The target device should
       
    49 now reply: </p> <codeblock id="GUID-6A58CD1A-DA4E-50BF-A6CB-54B681BF5B35" xml:space="preserve">*** DEBUG MONITOR ***</codeblock> </li>
       
    50 </ul> <p>You can now enter debug monitor commands. </p> </section>
       
    51 <section id="GUID-A52544F3-7F66-4354-A29A-B05181A95F07"><title>Crash debugger
       
    52 commands</title> <p>Commands consist of a single letter describing the operation
       
    53 to be performed, followed by any arguments. Not all commands take arguments.
       
    54 Commands are case sensitive; the majority are lower case. Commands should
       
    55 be entered at the command prompt, on the PC. The set of supported commands
       
    56 is as follows: </p> <ul>
       
    57 <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
       
    58 kernel fault information</xref>  </p> </li>
       
    59 <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
       
    60 a memory dump</xref>  </p> </li>
       
    61 <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
       
    62 a memory dump, but skips over unmapped memory space</xref>  </p> </li>
       
    63 <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
       
    64 information on the current thread and the current process</xref>  </p> </li>
       
    65 <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
       
    66 brief DObject information</xref>  </p> </li>
       
    67 <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
       
    68 full DObject information</xref>  </p> </li>
       
    69 <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
       
    70 short information about code segments</xref>  </p> </li>
       
    71 <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
       
    72 full information about code segments</xref>  </p> </li>
       
    73 <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
       
    74 contents of object container; (nb lower case)</xref>  </p> </li>
       
    75 <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
       
    76 contents of object container; (nb upper case)</xref>  </p> </li>
       
    77 <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
       
    78 register contents</xref>  </p> </li>
       
    79 <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
       
    80 thread stack contents</xref>  </p> </li>
       
    81 <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
       
    82 the debugger, does a cold restart of the same ROM image; (nb lower case)</xref>  </p> </li>
       
    83 <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
       
    84 the debugger, and returns to the bootloader to wait for a new ROM image to
       
    85 be downloaded; (nb upper case)</xref>  </p> </li>
       
    86 <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>
       
    87 </ul> </section>
       
    88 <section id="GUID-D5F2E0AF-EF03-5150-813B-DF989F12C47B"><title>f - display
       
    89 kernel fault information</title> <p>This command displays information about
       
    90 the the kernel fault that caused the debugger to be entered. The information
       
    91 has the following format. </p> <codeblock id="GUID-608A834D-00FA-56E6-AC8A-EA8C762F4315" xml:space="preserve">Fault Category: Exception  Fault Reason: 10000000
       
    92 ExcId 00000001 CodeAddr ffe0016c DataAddr 80000001 Extra 00000013
       
    93 Exc 1 Cpsr=68000010 FAR=80000001 FSR=00000013
       
    94  R0=00000000  R1=00000000  R2=30000000  R3=80000001
       
    95  R4=00000001  R5=00403d68  R6=00002000  R7=00000000
       
    96  R8=00000000  R9=00000000 R10=00000000 R11=00403fa0
       
    97 R12=00403d34 R13=00403d48 R14=500d41e8 R15=ffe0016c
       
    98 R13Svc=81716000 R14Svc=500480b8 SpsrSvc=20000010</codeblock> <p>Notes: </p> <ul>
       
    99 <li id="GUID-7FC165D2-735D-50D7-86D0-5513C8D3770A"><p>R15 is the program counter </p> </li>
       
   100 <li id="GUID-9D653C6D-C085-5EF1-938E-28081214661E"><p>R14 is the link register, </p> </li>
       
   101 <li id="GUID-5596B888-26D6-57AB-9760-EBEDA927E693"><p>R13 is the stack pointer </p> </li>
       
   102 </ul> </section>
       
   103 <section id="GUID-2A0D5950-F1A5-5EE1-87A3-840B1EAD6AAD"><title>m - do a memory
       
   104 dump</title> <p>This command dumps memory in both hexadecimal and ASCII format.
       
   105 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
       
   106 the start address in hexadecimal, and <codeph>end</codeph> specifies the end
       
   107 address in hexadecimal. If the second parameter starts with a + character,
       
   108 then the following hexadecimal characters are interpreted as a length. </p> <p>Address
       
   109 parameters are always virtual addresses (the MMU is still on). </p> <p>The
       
   110 resulting format is similar to the EKA1 format. </p> <p>For example: </p> <p><userinput>.m
       
   111 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....
       
   112 81C01C70: 30 3B C0 81 34 D9 03 50 00 00 FF FF E8 1C C0 81 0;..4..P........
       
   113 81C01C80: 34 D9 03 50 30 3B C0 81 FC 4A 13 50 E8 1C C0 81 4..P0;...J.P.....
       
   114 </codeblock> <p>If an illegal memory access occurs, the debugger traps the
       
   115 exception and displays an error message. </p> </section>
       
   116 <section id="GUID-FDF734D6-9E05-573F-BF40-8DB4C7E0BAC5"><title>z - do a memory
       
   117 dump, skipping over unmapped memory</title> <p>This command dumps memory in
       
   118 both hexadecimal and ASCII format, but excludes any unmapped memory space.
       
   119 If an illegal memory access occurs, it does not stop, but skips to the next
       
   120 page instead. This is useful to inspect the content of discontiguous chunks. </p> <p>The
       
   121 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>
       
   122 <section id="GUID-D0175D78-6F84-5F4F-BA90-2C591B473C69"><title>i - display
       
   123 information for the current process and thread</title> <p>This command displays
       
   124 information for the current process and thread. </p> <codeblock id="GUID-6EFED69E-3792-5F19-ACE5-A63F922F35DA" xml:space="preserve">SCHEDULER @80000d98: CurrentThread 8070dd28
       
   125 RescheduleNeeded=00 DfcPending=00 KernCSLocked=00000001
       
   126 DFCS: next 80000ea8 prev 80000ea8
       
   127 ProcessHandler=5004b040, AddressSpace=8070d7c8
       
   128 SYSLOCK: HoldingThread 8070dd28 iWaiting 00000000
       
   129 Extras 0: 8070d7c8 1: 8070d7c8 2: 8070d7c8 3: 00000000
       
   130 Extras 4: 00000000 5: 00000000 6: 00000000 7: 00000000
       
   131 Extras 8: 00000000 9: 00000000 A: 00000000 B: 00000000
       
   132 Extras C: 00000000 D: 00000000 E: 00000000 F: 00000000
       
   133 </codeblock> <p>The format for the thread is: </p> <codeblock id="GUID-53C336CC-CA91-542A-8BB3-858DF9F32745" xml:space="preserve">TheCurrentThread=8070da6c
       
   134 THREAD at 8070da6c VPTR=50052b50 AccessCount=3 Owner=8070d7c8
       
   135 Full name crash::Main
       
   136 Thread MState READY
       
   137 Default priority 28 WaitLink Priority 28
       
   138 ExitInfo 3,0,
       
   139 Flags 80000004, Handles 8070a79c
       
   140 Superviso81715000 size 1000
       
   141 User stack base 00402000 size 2000
       
   142 Id=19, Heap=00600000, Created heap=00600000, Frame=00000000
       
   143 Trap handler=00000000, ActiveScheduler=00000000, Exception
       
   144 handler=00000000
       
   145 TempObj=00000000 TempAlloc=00000000
       
   146 NThread @ 8070dd28 Pri 28 NState READY
       
   147 Next=8070dd28 Prev=8070dd28 Att=03 ExcInUserMode=10
       
   148 HeldFM=80000eb8 WaitFM=00000000 AddrSp=8070d7c8
       
   149 Time=0 Timeslice=20 ReqCount=0
       
   150 SuspendCount=0 CsCount=0 CsFunction=00000000
       
   151 SavedSP=81715d6c
       
   152 CAR 00000001
       
   153 DACR 30315507
       
   154 R13_USR 00000000 R14_USR 81715dc4 SPSR_SVC 81715e10
       
   155  R4 30303031  R5 30303030  R6 81715dc4  R7 81715e14
       
   156  R8 81715dac  R9 81715da0 R10 50055c88 R11 50055c3c
       
   157  PC 81715dc0</codeblock> <p>The format for the process is: </p> <codeblock id="GUID-1D3E3B5D-9E9C-5D2D-A720-004B2783087E" xml:space="preserve">TheCurrentProcess=8070d7c8
       
   158 PROCESS at 8070d7c8 VPTR=50052bc4 AccessCount=5 Owner=00000000
       
   159 Full name crash
       
   160 ExitInfo 3,0,
       
   161 Flags 00040000, Handles 80709c98, Attributes 60010000
       
   162 DataBssChunk 8070a514, CodeChunk 8070a9a8
       
   163 DllDataChunk 00000000, Process Lock 8070d90c
       
   164 NumChunks=2
       
   165 0: Chunk 8070a514, run 00400000, access count 1
       
   166 1: Chunk 8070a704, run 00600000, access count 1
       
   167 Domain -1, DACR 55555507
       
   168 TheCurrentAddressSpace=8070d7c8
       
   169 TheCurrentVMProcess=8070d7c8
       
   170 PROCESS at 8070d7c8 VPTR=50052bc4 AccessCount=5 Owner=00000000
       
   171 Full name crash
       
   172 ExitInfo 3,0,
       
   173 Flags 00040000, Handles 80709c98, Attributes 60010000
       
   174 DataBssChunk 8070a514, CodeChunk 8070a9a8
       
   175 DllDataChunk 00000000, Process Lock 8070d90c
       
   176 NumChunks=2
       
   177 0: Chunk 8070a514, run 00400000, access count 1
       
   178 1: Chunk 8070a704, run 00600000, access count 1
       
   179 Domain -1, DACR 55555507
       
   180 TheCurrentDataSectionProcess=8070d7c8
       
   181 TheCompleteDataSectionProcess=8070d7c8
       
   182 PROCESS at 8070d7c8 VPTR=50052bc4 AccessCount=5 Owner=00000000
       
   183 Full name crash
       
   184 ExitInfo 3,0,
       
   185 Flags 00040000, Handles 80709c98, Attributes 60010000
       
   186 DataBssChunk 8070a514, CodeChunk 8070a9a8
       
   187 DllDataChunk 00000000, Process Lock 8070d90c
       
   188 NumChunks=2
       
   189 0: Chunk 8070a514, run 00400000, access count 1
       
   190 1: Chunk 8070a704, run 00600000, access count 1
       
   191 Domain -1, DACR 55555507
       
   192 </codeblock> </section>
       
   193 <section id="GUID-3494E61C-7097-544C-AE7D-73750337744A"><title>o - display
       
   194 brief DObject information</title> <p>This command in <i>lower case</i> displays
       
   195 basic information about the <xref href="GUID-E48F1435-14B6-37F1-BE47-2EA803AFE497.dita"><apiname>DObject</apiname></xref>. The command has the
       
   196 following syntax: </p> <codeblock id="GUID-9F24821C-78C8-5CD0-8FF7-60F4A485C898" xml:space="preserve">o address</codeblock> <p>where <codeph>address</codeph> specifies
       
   197 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
       
   198 6403c170</userinput> </p> <codeblock id="GUID-4BB938B5-EB18-54E7-93AF-C06B79FEAB6F" xml:space="preserve">THREAD at 6403c170 VPTR=f8046c18 AccessCount=3 Owner=6403bb4c
       
   199 Full name crash::Main
       
   200 </codeblock> </section>
       
   201 <section id="GUID-1DED2B2F-E780-50A0-8325-5DA22BC7D3E0"><title>O - display
       
   202 full DObject information</title> <p>This command in <i>upper case</i> displays
       
   203 full information about the <xref href="GUID-E48F1435-14B6-37F1-BE47-2EA803AFE497.dita"><apiname>DObject</apiname></xref>. The exact format displayed
       
   204 depends on the exact type of the <xref href="GUID-E48F1435-14B6-37F1-BE47-2EA803AFE497.dita"><apiname>DObject</apiname></xref> being referenced,
       
   205 for example, whether it is a thread, process, or a chunk. The command has
       
   206 the following syntax: </p> <codeblock id="GUID-C817409C-04A2-54BA-ABB6-185950CF4462" xml:space="preserve">O address</codeblock> <p>where <codeph>address</codeph> specifies
       
   207 the address of the <xref href="GUID-E48F1435-14B6-37F1-BE47-2EA803AFE497.dita"><apiname>DObject</apiname></xref>. </p> </section>
       
   208 <section id="GUID-AE1A903F-6351-523C-AD88-AD6CA4527C39"><title>p - display
       
   209 short information about code segments</title> <p>This command in <i>lower
       
   210 case</i> displays basic information about one or more code segments, as encapsulated
       
   211 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>
       
   212 <li id="GUID-AE4B3337-4438-5DC8-B84E-D5CABF708E5E"><p> <codeph>address</codeph> is
       
   213 the address of a specific code segment </p> </li>
       
   214 <li id="GUID-878886DD-9F7F-5B42-963F-37F7D5058F11"><p> <codeph>all</codeph> refers
       
   215 to all code segments. </p> </li>
       
   216 </ul> <p>For example: </p> <p><userinput>p 64053b70</userinput> </p> <codeblock id="GUID-9B44910A-3FB8-5283-AD41-29E5192A6393" xml:space="preserve">.p 64053b70
       
   217 CodeSeg at 64053b70:
       
   218  FileName: Z:\sys\bin\crash.exe
       
   219  RunAddress: f83e3498</codeblock> </section>
       
   220 <section id="GUID-9450C209-3F28-581D-87B0-CEA96B94DB62"><title>P - display
       
   221 full information about code segments</title> <p>This command in <i>upper case</i> displays
       
   222 the full information about one or more code segments, as encapsulated by <codeph>DCodeSeg</codeph> objects.
       
   223 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>
       
   224 <li id="GUID-DE005DAD-FBDB-5A07-8E6A-6D95A64E6BD5"><p> <codeph>address</codeph> is
       
   225 the address of a specific code segment </p> </li>
       
   226 <li id="GUID-339213D1-55B3-546B-B8CC-32785469CCC0"><p> <codeph>all</codeph> refers
       
   227 to all code segments. </p> </li>
       
   228 </ul> <p>For example: </p> <p><userinput>P 64053b70</userinput> </p> <codeblock id="GUID-B6B41D55-0093-5118-B5EB-C956AE8980EA" xml:space="preserve">.p 64053b70
       
   229 CodeSeg at 64053b70:
       
   230  FileName: Z:\sys\bin\crash.exe
       
   231  RunAddress: f83e3498
       
   232 
       
   233  iLink:     Prev 64052f48 (64052f40) Next 640000e0 (640000d8)
       
   234  iTempLink: Prev dfdfdfdf (dfdfdfcf) Next 00000000 (00000000)
       
   235  iGbgLink:  Prev 00000000 (00000000) Next 00000000 (00000000)
       
   236  iAccessCount: 1
       
   237  iEntryPtVeneer: f83e3498
       
   238  iFileEntryPoint: f83e3498
       
   239  iExtOffset: 10
       
   240  iUids: 1000007a 00000000 00000000
       
   241  iDeps: 00000000 ( )
       
   242  iDepCount: 0
       
   243  iNextDep: 0
       
   244  iMark: 31
       
   245  iAttr: a
       
   246  iExeCodeSeg: 64053b70
       
   247  iAttachProcess: 00000000
       
   248  iModuleVersion: a0000
       
   249  iS:
       
   250    SecureId: 00000000, VendorId: 70000001
       
   251    Caps: 000fffff 00000000
       
   252  iSize: 370
       
   253 
       
   254  iXIP: 1
       
   255  iInfo: f83e3420 (TRomImageHeader*)
       
   256   iUid1: 1000007a, iUid2: 00000000, iUid3: 00000000
       
   257   iUidChecksum: 045ac39e
       
   258   iEntryPoint:  f83e3498
       
   259   iCodeAddress: f83e3498, iCodeSize: 00000370
       
   260   iDataAddress: 00000000, iDataSize: 00000000
       
   261   iTextSize:    00000370, iBssSize:  00000000
       
   262   iHeapSizeMin: 00001000, iHeapSizeMax: 00100000, iStackSize: 00002000
       
   263   iDllRefTable: 00000000
       
   264   iExportDirCount: 0, iExportDir: f83e33fc
       
   265   iS:
       
   266     SecureId: 00000000, VendorId: 70000001
       
   267     Caps: 000fffff 00000000
       
   268   iToolsVersion: Major 02 Minor 01 Build 0225
       
   269   iFlags: 0000002a
       
   270   iPriority: 352
       
   271   iDataBssLinearBase: 00400000
       
   272   iNextExtension: 00000000
       
   273   iHardwareVariant: 01000000
       
   274   iTotalDataSize: 00000000
       
   275   iModuleVersion: 000a0000
       
   276   iExceptionDescriptor: f83e34f4
       
   277 
       
   278  iCodeAllocBase: 80000000
       
   279  iDataAllocBase: 80000000
       
   280  iKernelData: 00000000</codeblock> </section>
       
   281 <section id="GUID-FB2E24A6-9744-5169-BA90-DDF84DF1D3E5"><title>c - display
       
   282 contents of object container</title> <p>This command in <i>lower case</i> displays
       
   283 the contents of one of the kernel's object containers, a <codeph>DObjectCon</codeph> type.
       
   284 Note that information is dumped very quickly without page breaks, which is
       
   285 useful in situations where the kernel is likely to become very unstable very
       
   286 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>,
       
   287 which generates output with a pause between pages. </p> <p>The command has
       
   288 the following syntax: </p> <codeblock id="GUID-71EF50B9-1612-57CA-840D-F142CF5EE88E" xml:space="preserve">c type</codeblock> <p>where <codeph>type</codeph> is
       
   289 a single hexadecimal digit between 0 and D inclusive that specifies which
       
   290 kernel container is to be dumped. The mapping between the hexadecimal digit
       
   291 and the kernel container is: </p> <table id="GUID-B1F908E6-0492-507E-BDAC-D010A1C4E231">
       
   292 <tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
       
   293 <tbody>
       
   294 <row>
       
   295 <entry><p>0</p> </entry>
       
   296 <entry><p>Threads </p> </entry>
       
   297 </row>
       
   298 <row>
       
   299 <entry><p>1</p> </entry>
       
   300 <entry><p>Processes </p> </entry>
       
   301 </row>
       
   302 <row>
       
   303 <entry><p>2</p> </entry>
       
   304 <entry><p>Chunks </p> </entry>
       
   305 </row>
       
   306 <row>
       
   307 <entry><p>3</p> </entry>
       
   308 <entry><p>Libraries </p> </entry>
       
   309 </row>
       
   310 <row>
       
   311 <entry><p>4</p> </entry>
       
   312 <entry><p>Semaphores </p> </entry>
       
   313 </row>
       
   314 <row>
       
   315 <entry><p>5</p> </entry>
       
   316 <entry><p>Mutexes </p> </entry>
       
   317 </row>
       
   318 <row>
       
   319 <entry><p>6</p> </entry>
       
   320 <entry><p>Timers </p> </entry>
       
   321 </row>
       
   322 <row>
       
   323 <entry><p>7</p> </entry>
       
   324 <entry><p>Servers </p> </entry>
       
   325 </row>
       
   326 <row>
       
   327 <entry><p>8</p> </entry>
       
   328 <entry><p>Sessions </p> </entry>
       
   329 </row>
       
   330 <row>
       
   331 <entry><p>9</p> </entry>
       
   332 <entry><p>LogicalDevices </p> </entry>
       
   333 </row>
       
   334 <row>
       
   335 <entry><p>A</p> </entry>
       
   336 <entry><p>PhysicalDevices </p> </entry>
       
   337 </row>
       
   338 <row>
       
   339 <entry><p>B</p> </entry>
       
   340 <entry><p>Channels </p> </entry>
       
   341 </row>
       
   342 <row>
       
   343 <entry><p>C</p> </entry>
       
   344 <entry><p>ChangeNotifiers </p> </entry>
       
   345 </row>
       
   346 <row>
       
   347 <entry><p>D</p> </entry>
       
   348 <entry><p>Undertakers </p> </entry>
       
   349 </row>
       
   350 <row>
       
   351 <entry><p>E</p> </entry>
       
   352 <entry><p>Message queues </p> </entry>
       
   353 </row>
       
   354 <row>
       
   355 <entry><p>F</p> </entry>
       
   356 <entry><p>Property references </p> </entry>
       
   357 </row>
       
   358 </tbody>
       
   359 </tgroup>
       
   360 </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:
       
   361 PHYSICAL DEVICE at 64032dac VPTR=f805d9fc AccessCount=2 Owner=00000000
       
   362 Full name Media.IRam
       
   363 PHYSICAL DEVICE at 640339e8 VPTR=f8067e44 AccessCount=2 Owner=00000000
       
   364 Full name Media.Flash
       
   365 PHYSICAL DEVICE at 64033a64 VPTR=f806b9f8 AccessCount=2 Owner=00000000
       
   366 Full name Media.Ata
       
   367 </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:
       
   368 THREAD at 807011c0 VPTR=50052b04 AccessCount=1 Owner=8070107c
       
   369 Full name EKern::Null
       
   370 Thread MState READY
       
   371 Default priority 0 WaitLink Priority 0
       
   372 ExitInfo 3,0,
       
   373 Flags 0000000c, Handles 80701520
       
   374 Supervisor stack base 80700000 size 1000
       
   375 User stack base 00000000 size 0
       
   376 Id=0, Heap=00000000, Created heap=00000000, Frame=00000000
       
   377 Trap handler=00000000, ActiveScheduler=00000000, Exception
       
   378 handler=00000000
       
   379 TempObj=00000000 TempAlloc=00000000
       
   380 NThread @ 8070147c Pri 0 NState READY
       
   381 Next=8070147c Prev=8070147c Att=00 ExcInUserMode=00
       
   382 HeldFM=00000000 WaitFM=00000000 AddrSp=8070107c
       
   383 Time=-1 Timeslice=-1 ReqCount=0
       
   384 SuspendCount=0 CsCount=0 CsFunction=00000000
       
   385 SavedSP=80700f50
       
   386 CAR 00000001
       
   387 DACR 55555547
       
   388 R13_USR 00403ed4 R14_USR 500c88b4 SPSR_SVC 200000d3
       
   389  R4 00000009  R5 5004b7ec  R6 50000000  R7 dc911000
       
   390  R8 00000000  R9 807103c0 R10 50002140 R11 80700fb4
       
   391  PC 500481b4
       
   392 </codeblock> <p>The information displayed for each object is the same as that
       
   393 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.
       
   394 After displaying the information for each object, the debugger pauses until
       
   395 you press a key. </p> <p>Notes </p> <ul>
       
   396 <li id="GUID-63AF0857-4C02-5F39-8CB2-E57E11727F92"><p>the <codeph>DObjectCon</codeph> class
       
   397 is internal to Symbian platform. </p> </li>
       
   398 <li id="GUID-827905CF-C25F-56D6-B40B-416C3DA1C5CB"><p>the type value passed
       
   399 as an argument to the command is one of the enum values of the <codeph>TObjectType</codeph> enum;
       
   400 this enum is internal to Symbian platform. </p> </li>
       
   401 </ul> </section>
       
   402 <section id="GUID-55EF66A9-684F-50DA-8E2B-FA00B3D4FB6C"><title>C - display
       
   403 contents of object container</title> <p>This command in <i>upper case</i> is
       
   404 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
       
   405 except that the display of output pauses between pages. If you need to dump
       
   406 output as fast as possible without pauses, use the lower case version. </p> </section>
       
   407 <section id="GUID-0CDF0190-A445-526B-AC1F-D9D58095B18B"><title>r - dump register
       
   408 contents</title> <p>This command dumps the full ARM register set. </p> <p>On
       
   409 ARM this dumps the full set of user mode registers and all the alternate registers
       
   410 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:
       
   411  R0=6571de54  R1=0000002a  R2=00000002  R3=ffffffff
       
   412  R4=0000002a  R5=f8170414  R6=6571df14  R7=6403cba8
       
   413  R8=00000001  R9=6403c41c R10=640002f8 R11=6571de70
       
   414 R12=00000020 R13=00404e00 R14=f80818c0 R15=f800bfa8
       
   415 CPSR=60000013
       
   416 MODE_FIQ:
       
   417  R8=00000000  R9=ffffffff R10=ffffffff R11=00000000
       
   418 R12=00000000 R13=64000d0c R14=c080079c SPSR=e00000dc
       
   419 MODE_IRQ:
       
   420 R13=6400110c R14=00000013 SPSR=20000013
       
   421 MODE_SVC:
       
   422 R13=6571de54 R14=f80328bc SPSR=60000010
       
   423 MODE_ABT:
       
   424 R13=6400090c R14=ffff0010 SPSR=400000d7
       
   425 MODE_UND:
       
   426 R13=6400090c R14=95221110 SPSR=f000009d
       
   427 </codeblock> </section>
       
   428 <section id="GUID-5693700E-6401-56B1-9817-AE0C3A81B42D"><title>S - Dumps thread
       
   429 stack contents</title> <p>This command, in upper case, dumps both the user
       
   430 and supervisor stacks used by each thread in the system. Some threads do not
       
   431 have a user thread, in which case this is indicated. Each set of stacks is
       
   432 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
       
   433 Full name efile.exe::LoaderThread
       
   434 User stack base at 00410000, size == 1000
       
   435 Stack pointer == 00413e30
       
   436 Stack mapped at 00410000
       
   437 00413e30: 10 01 70 01 99 93 1b 80 18 01 70 01 d0 56 1b 80 ..p.......p..V..
       
   438 00413e40: 00 00 00 00 00 00 00 00 84 00 70 01 84 00 70 01 ..........p...p.
       
   439 00413e50: 04 00 00 00 23 91 1b 80 38 01 70 01 10 01 70 01 ....#...8.p...p.
       
   440 00413e60: 80 3e 41 00 01 00 00 00 10 01 70 01 00 00 00 00 .&gt;A.......p.....
       
   441 00413e70: 84 00 70 01 cd 91 1b 80 30 02 70 01 00 00 00 00 ..p.....0.p.....
       
   442 
       
   443 Supervisor stack base at c9127000, size == 1000
       
   444 Stack pointer == c9127fbc
       
   445 c9127fb0: b0 d1 0a c8 0c 00 00 00 13 00 00 00 00 07 00 00 ................
       
   446 c9127fc0: 00 00 f0 00 45 55 55 55 30 3e 41 00 89 ff 1b 80 ....EUUU0&gt;A.....
       
   447 c9127fd0: 10 00 00 20 10 01 70 01 80 3e 41 00 98 c7 23 80 ... ..p..&gt;A...#.
       
   448 c9127fe0: 58 3e 41 00 04 00 00 00 40 00 00 00 98 4b 04 c8 X&gt;A.....@....K..
       
   449 c9127ff0: 60 04 00 c8 98 01 02 80 00 00 00 00 10 5a 1b 80 `............Z..</codeblock> <p><note> With
       
   450 a multiple memory model, this command is the only way to reliably dump a stack. </note></p> </section>
       
   451 <section id="GUID-8F9BAB99-8B88-5120-A95E-A22404110BAE"><title>x - leave debugger,
       
   452 cold restart of ROM image</title> <p>This command, in lower case, leaves the
       
   453 debugger and does a cold restart of the current ROM image. </p> </section>
       
   454 <section id="GUID-4E12A080-AC83-5872-A66D-4C14A65C5CFA"><title>X - leave debugger,
       
   455 return to bootloader</title> <p>This command, in upper case, leaves the debugger,
       
   456 and returns to the bootloader to wait for a new ROM image to be downloaded. </p> </section>
       
   457 <section id="GUID-190C956D-4F57-593B-B3B1-958B6CAE1267"><title>h - Help</title> <p>Displays
       
   458 a short summery of the crash debugger commands. </p> </section>
       
   459 </conbody></concept>