105 lines
4.4 KiB
XML
105 lines
4.4 KiB
XML
|
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
|
||
|
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
|
||
|
[<!ENTITY % poky SYSTEM "../poky.ent"> %poky; ] >
|
||
|
|
||
|
<chapter id='profile-manual-intro'>
|
||
|
|
||
|
<title>Yocto Project Profiling and Tracing Manual</title>
|
||
|
<section id='profile-intro'>
|
||
|
<title>Introduction</title>
|
||
|
|
||
|
<para>
|
||
|
Yocto bundles a number of tracing and profiling tools - this 'HOWTO'
|
||
|
describes their basic usage and shows by example how to make use
|
||
|
of them to examine application and system behavior.
|
||
|
</para>
|
||
|
|
||
|
<para>
|
||
|
The tools presented are for the most part completely open-ended and
|
||
|
have quite good and/or extensive documentation of their own which
|
||
|
can be used to solve just about any problem you might come across
|
||
|
in Linux.
|
||
|
Each section that describes a particular tool has links to that
|
||
|
tool's documentation and website.
|
||
|
</para>
|
||
|
|
||
|
<para>
|
||
|
The purpose of this 'HOWTO' is to present a set of common and
|
||
|
generally useful tracing and profiling idioms along with their
|
||
|
application (as appropriate) to each tool, in the context of a
|
||
|
general-purpose 'drill-down' methodology that can be applied
|
||
|
to solving a large number (90%?) of problems.
|
||
|
For help with more advanced usages and problems, please see
|
||
|
the documentation and/or websites listed for each tool.
|
||
|
</para>
|
||
|
|
||
|
<para>
|
||
|
The final section of this 'HOWTO' is a collection of real-world
|
||
|
examples which we'll be continually adding to as we solve more
|
||
|
problems using the tools - feel free to add your own examples
|
||
|
to the list!
|
||
|
</para>
|
||
|
</section>
|
||
|
|
||
|
<section id='profile-manual-general-setup'>
|
||
|
<title>General Setup</title>
|
||
|
|
||
|
<para>
|
||
|
Most of the tools are available only in 'sdk' images or in images
|
||
|
built after adding 'tools-profile' to your local.conf.
|
||
|
So, in order to be able to access all of the tools described here,
|
||
|
please first build and boot an 'sdk' image e.g.
|
||
|
<literallayout class='monospaced'>
|
||
|
$ bitbake core-image-sato-sdk
|
||
|
</literallayout>
|
||
|
or alternatively by adding 'tools-profile' to the
|
||
|
EXTRA_IMAGE_FEATURES line in your local.conf:
|
||
|
<literallayout class='monospaced'>
|
||
|
EXTRA_IMAGE_FEATURES = "debug-tweaks tools-profile"
|
||
|
</literallayout>
|
||
|
If you use the 'tools-profile' method, you don't need to build an
|
||
|
sdk image - the tracing and profiling tools will be included in
|
||
|
non-sdk images as well e.g.:
|
||
|
<literallayout class='monospaced'>
|
||
|
$ bitbake core-image-sato
|
||
|
</literallayout>
|
||
|
<note><para>
|
||
|
By default, the Yocto build system strips symbols from the
|
||
|
binaries it packages, which makes it difficult to use some
|
||
|
of the tools.
|
||
|
</para><para>You can prevent that by setting the
|
||
|
<ulink url='&YOCTO_DOCS_REF_URL;#var-INHIBIT_PACKAGE_STRIP'><filename>INHIBIT_PACKAGE_STRIP</filename></ulink>
|
||
|
variable to "1" in your
|
||
|
<filename>local.conf</filename> when you build the image:
|
||
|
</para>
|
||
|
</note>
|
||
|
<literallayout class='monospaced'>
|
||
|
INHIBIT_PACKAGE_STRIP = "1"
|
||
|
</literallayout>
|
||
|
The above setting will noticeably increase the size of your image.
|
||
|
</para>
|
||
|
|
||
|
<para>
|
||
|
If you've already built a stripped image, you can generate
|
||
|
debug packages (xxx-dbg) which you can manually install as
|
||
|
needed.
|
||
|
</para>
|
||
|
|
||
|
<para>
|
||
|
To generate debug info for packages, you can add dbg-pkgs to
|
||
|
EXTRA_IMAGE_FEATURES in local.conf. For example:
|
||
|
<literallayout class='monospaced'>
|
||
|
EXTRA_IMAGE_FEATURES = "debug-tweaks tools-profile dbg-pkgs"
|
||
|
</literallayout>
|
||
|
Additionally, in order to generate the right type of
|
||
|
debuginfo, we also need to add the following to local.conf:
|
||
|
<literallayout class='monospaced'>
|
||
|
PACKAGE_DEBUG_SPLIT_STYLE = 'debug-file-directory'
|
||
|
</literallayout>
|
||
|
</para>
|
||
|
</section>
|
||
|
</chapter>
|
||
|
<!--
|
||
|
vim: expandtab tw=80 ts=4
|
||
|
-->
|