intro.rst 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. .. SPDX-License-Identifier: CC-BY-SA-2.0-UK
  2. ******************************************
  3. Yocto Project Profiling and Tracing Manual
  4. ******************************************
  5. Introduction
  6. ============
  7. Yocto Project bundles a number of tracing and profiling tools --- this manual
  8. describes their basic usage and shows by example how to make use of them
  9. to analyze application and system behavior.
  10. The tools presented are, for the most part, completely open-ended and have
  11. quite good and/or extensive documentation of their own which can be used
  12. to solve just about any problem you might come across in Linux. Each
  13. section that describes a particular tool has links to that tool's
  14. documentation and website.
  15. The purpose of this manual is to present a set of common and generally
  16. useful tracing and profiling idioms along with their application (as
  17. appropriate) to each tool, in the context of a general-purpose
  18. 'drill-down' methodology that can be applied to solving a large number
  19. of problems. For help with more advanced usages and problems,
  20. refer to the documentation and/or websites provided for each tool.
  21. The final section of this manual is a collection of real-world examples
  22. which we'll be continually updating as we solve more problems using the
  23. tools --- feel free to suggest additions to what you read here.
  24. General Setup
  25. =============
  26. Most of the tools are available only in ``sdk`` images or in images built
  27. after adding ``tools-profile`` to your ``local.conf`` file. So, in order to be able
  28. to access all of the tools described here, you can build and boot
  29. an ``sdk`` image, perhaps one of::
  30. $ bitbake core-image-sato-sdk
  31. $ bitbake core-image-weston-sdk
  32. $ bitbake core-image-rt-sdk
  33. Alternatively, you can add ``tools-profile`` to the :term:`EXTRA_IMAGE_FEATURES` line in
  34. your ``local.conf`` file::
  35. EXTRA_IMAGE_FEATURES:append = " tools-profile"
  36. If you use the ``tools-profile`` method, you don't need to build an sdk image ---
  37. the tracing and profiling tools will be included in non-sdk images as well e.g.::
  38. $ bitbake core-image-sato
  39. .. note::
  40. By default, the Yocto build system strips symbols from the binaries
  41. it packages, which makes it difficult to use some of the tools.
  42. You can prevent that by setting the
  43. :term:`INHIBIT_PACKAGE_STRIP`
  44. variable to "1" in your ``local.conf`` when you build the image::
  45. INHIBIT_PACKAGE_STRIP = "1"
  46. The above setting will noticeably increase the size of your image.
  47. If you've already built a stripped image, you can generate debug
  48. packages (xxx-dbg) which you can manually install as needed.
  49. To generate debug info for packages, you can add ``dbg-pkgs`` to
  50. :term:`EXTRA_IMAGE_FEATURES` in ``local.conf``. For example::
  51. EXTRA_IMAGE_FEATURES:append = " dbg-pkgs"
  52. Additionally, in order to generate the right type of debug info, we also need to
  53. set :term:`PACKAGE_DEBUG_SPLIT_STYLE` in the ``local.conf`` file::
  54. PACKAGE_DEBUG_SPLIT_STYLE = 'debug-file-directory'