Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608
<?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-BD9F3912-9C8B-5962-BEC7-D5F961335B49" xml:lang="en"><title>Kernel
Trace Tool Overview</title><shortdesc>Describes the Kernel Trace tool to obtain trace information. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
<section id="GUID-6DC0934A-BE24-4E13-8603-011BBBBFA8DE"><title>Purpose</title> <p>The
trace tool provides a means of extracting trace data from a memory buffer. </p> </section>
<section id="GUID-5933F3F4-AE73-4E6D-9E4D-0D5A854F39C3"><title>Required background</title> <p>The
kernel trace tool LDD is only a part of the actual kernel trace tool. </p> <p>The
actual kernel trace tool consists of the following: </p> <ul>
<li id="GUID-1D5857F0-418E-5ECE-BC9F-BF97DF06DAC3"><p><filepath>btracex.ldd</filepath> </p> <p>Used
to obtain kernel activity and place it in a buffer that can be seen by user-side
applications. </p> </li>
<li id="GUID-8C2EA2EA-2A04-51E3-98F3-CBDE01F62CE9"><p>trace filters defined
in EUser </p> <p>Used to filter out the trace information that is not required. </p> </li>
<li id="GUID-B370EE1C-8CB3-5A9A-AD70-DB591D77BDFC"><p><filepath>btracec.dll</filepath> and <filepath>btracec.lib</filepath> </p> <p>Used
to provide an interface for extracting trace data from a memory buffer. </p> </li>
</ul> </section>
<section id="GUID-A6FB8DB6-5623-401B-8112-1FD0789B1785"><title>Key concepts
and terms</title> <dl>
<dlentry>
<dt>user-side and kernel-side</dt>
<dd><p>When an application asks for service from an operating system it is
actually making a request for the operating system to carry this out (a state
of affairs known as user-side). The request can only be carried out by the
operating system (a state of affairs known as kernel-side). </p> <p>This method
is used to prevent one process (or thread) from interfering with the internal
operation of another. </p> </dd>
</dlentry>
</dl> </section>
<section id="GUID-86FFD675-07A0-4502-9BDE-58A8FCDB5A7F"><title>Architecture</title> <p>The
trace tool consists of two parts, a driver on the user-side that captures
the required kernel events and writes them to a buffer that be accessed by
user-side applications. Then a trace filter, <filepath>btracec.dll</filepath> and <filepath>btrace.lib</filepath> are
used as an interface to the trace buffer. </p> </section>
<section id="GUID-0932C259-5F05-4F95-B16C-C08D345EE3C2"><title>APIs</title> <table id="GUID-AE6F13C1-B835-5A4E-B834-9515146CAA3C">
<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
<thead>
<row>
<entry>API</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry><p> <xref href="GUID-9E859841-E8A3-37D5-9A19-BCAA3C700922.dita"><apiname>RBTrace</apiname></xref> </p> </entry>
<entry><p>Interface to the fast-trace memory buffer. </p> <p> <note> Use btracec.dll
and btracec.lib to access this buffer.</note> </p> </entry>
</row>
</tbody>
</tgroup>
</table> </section>
<section id="GUID-E461A3A5-99E9-49AC-ADF4-ADEEFE524A47"><title>Typical uses</title> <p>The
kernel trace tool is intended to be used by developers for obtaining trace
information. </p> </section>
</conbody><related-links>
<link href="GUID-BD9F3912-9C8B-5962-BEC7-D5F961335B49.dita"><linktext>Kernel Trace
Tool Overview</linktext></link>
</related-links></concept>