Intel(R) Processor Trace Decoder Library
========================================

The Intel Processor Trace (Intel PT) Decoder Library is Intel's reference
implementation for decoding Intel PT.  It can be used as a standalone library or
it can be partially or fully integrated into your tool.

Go to https://software.intel.com/en-us/intel-platform-analysis-library for sample
code that uses the library.


Contents
--------

  README        this file

  libipt        A packet encoder/decoder library

  ptunit        A simple unit test system

  doc           A document describing the build
                A document describing the usage of the decoder library

  doc/man       Man pages for the encoder/decoder library


Dependencies
------------

We use cmake for building.

  cmake         The cross-platform open-source build system.
                http://www.cmake.org


Other packages you need for some of the above optional components.

  pandoc        A universal document converter
                http://pandoc.org

                This is needed for man pages.
