debuggercdi/com.nokia.carbide.cpp.debug.crashdebugger/html/DebuggingInformation/CrashDebuggerUsingMAKSYM-Ref.guide.html
author timkelly
Tue, 04 May 2010 09:39:10 -0500
branchRCL_2_4
changeset 1325 98aebbb322f3
parent 990 5d016a880824
permissions -rw-r--r--
Fix bug 11210. NPEs when editing SBSv2 config tab data on old SBSv2 build configs. Now allows saving SBSv2 variant data for old SBSv2 configs (i.e. before we display the build alias in the config name)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
990
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
     1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
     2
	"http://www.w3.org/TR/html4/loose.dtd">
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
     3
	<html><head>
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
     4
	<title>Using the MAKSYM tool in Debugging information</title>
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
     5
	<link href="../../book.css" type="text/css" rel="stylesheet" >
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
     6
	<link href="sysdoc-eclipse.css" type="text/css" rel="stylesheet" media="screen">
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
     7
	<link href="sysdoc-eclipse.css" type="text/css" rel="stylesheet" media="print">
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
     8
<div class="Head1">
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
     9
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    10
<h2>Using the MAKSYM Tool</h2>
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    11
</div><div>
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    12
<p>MAKSYM is a command line tool that processes the log file generated
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    13
when building a ROM image, and creates a text file that lists the address of
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    14
every global and exported function in the ROM.</p>
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    15
<p>Reference: tools: MAKSYM outlines
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    16
the syntax of the command.</p>
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    17
<p>If you know the address of the instruction which caused an exception,
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    18
you can compare this address with the MAKSYM log to see which function this is
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    19
in. You can narrow this down to the exact code within the function by using
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    20
ABLD LISTING to get the assembler output from the compiler.</p>
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    21
<p>The following example MAKSYM log is taken from an EKA1 build;
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    22
however, the principle is the same for EKA2.</p>
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    23
<p class="listing">From    \Epoc32\Release\Misa\UREL\ekern.exe<br>
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    24
  <br>50003040    0094    _E32Startup<br>500030d4    002c    ImpDma::Init1(void)<br>50003100    0004    ImpDma::Init3(void)<br>50003104    0008    ImpDma::MaxBlockSize(void)</p>
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    25
<p>If, for example, the code address of the exception is at
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    26
0x500030dc, then you can see from the log that this is in the
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    27
ImpDma::Init1() function, at offset 8 from the start of the
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    28
function. This function is in the file
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    29
...\e32\ekern\epoc\arm\sa1100\ka_dma.cpp, so use ABLD LISTING to
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    30
obtain the assembler:</p>
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    31
<p class="listing">&gt; cd \e32</p>
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    32
<p class="listing">&gt; abld listing misa urel ekern ka_dma </p>
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    33
<p>Notice that you must specify the component that the file is part of,
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    34
in this case EKERN, and that you do not put the .cpp extension on
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    35
the source file name. If you do not specify a source file ABLD will create an
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    36
assembler listing for every file in component EKERN.</p>
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    37
<p>The listing file will be placed in the same directory as
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    38
ka_dma.cpp, and will be called ka_dma.lis. If you
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    39
look at this file you will see something like this:</p>
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    40
<p class="listing">7              &nbsp;Init1__6ImpDma:<br>&nbsp;&nbsp;&nbsp;8              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@ args = 0, pretend = 0, frame = 0<br>&nbsp;&nbsp;&nbsp;9              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@ frame_needed = 0, current_function_anonymous_args = 0<br>&nbsp;&nbsp;10              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@ I don't think this function clobbers lr<br>&nbsp;&nbsp;11 0000 18209FE5 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;&nbsp;&nbsp;&nbsp;r2, .L793<br>&nbsp;&nbsp;12 0004 0630A0E3 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;r3, #6<br>&nbsp;&nbsp;13 0008 003082E5 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;&nbsp;&nbsp;&nbsp;r3, [r2, #0]<br>&nbsp;&nbsp;14 000c 10309FE5 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;&nbsp;&nbsp;&nbsp;r3, .L793+4<br>&nbsp;&nbsp;15 0010 10009FE5 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;&nbsp;&nbsp;&nbsp;r0, .L793+8<br>&nbsp;&nbsp;16 0014 000083E5 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;&nbsp;&nbsp;&nbsp;r0, [r3, #0]<br>&nbsp;&nbsp;17 0018 1810A0E3 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mov&nbsp;&nbsp;&nbsp;&nbsp;r1, #24<br>&nbsp;&nbsp;18 001c FEFFFFEA &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;&nbsp;FillZ__3MemPvi</p>
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    41
<p>Offset 8 is the first STR instruction. Comparing this with the C++
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    42
source:</p>
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    43
<p class="listing">void ImpDma::Init1()<br>//<br>// Phase 1 initialisation of the Dma channels<br>//<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;PP::DmaMaxChannels=KNumberOfDmaChannels;<br>&nbsp;&nbsp;&nbsp;&nbsp;PP::DmaChannelTable=(TDma **)(&amp;DmaChannels[0]);<br>&nbsp;&nbsp;&nbsp;&nbsp;Mem::FillZ(PP::DmaChannelTable,sizeof(TDma *)*KNumberOfDmaChannels);<br>&nbsp;&nbsp;&nbsp;&nbsp;}</p>
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    44
<p>The first store is to PP::DmaMaxChannels, so clearly there is a
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    45
problem writing this memory. </p> 
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    46
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    47
	   </div>
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    48
<div id="footer">Copyright &copy; 2010 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. <br>License: <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a></div>
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    49
	   </body>
5d016a880824 revised some text and copyright date
fturovic <frank.turovich@nokia.com>
parents: 0
diff changeset
    50
	   </html>
0
fb279309251b DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff changeset
    51