tree 6a4fec08398edb0942461d6c746425cccae1f2e2
parent 4d6aab597bd2b7b67abc12703f18f6c7a08db537
author Markus Metzger <markus.t.metzger@intel.com> 1435825148 +0200
committer Markus Metzger <markus.t.metzger@intel.com> 1435839858 +0200

version: bump minor version number

Changes:
  - support the new SDM version
    - cycle-accurate timing
    - trace stop
    - vmm tracing support
    - new IP compression variants
  - add workarounds for BDM70 and BDM64
  - improve backwards compatibility
    - pt_qry_event() now takes a size argument
    - pt_insn_next() now takes a size argument
    - pt_pkt_next() now takes a size argument
    - libipt now accepts older (i.e. smaller) configurations
  - allow sharing image sections between decoders
    - use pt_image_copy() to share the underlying sections
    - image sections are mapped lazily and unmapped automatically
      using a LRU cache
    - image sections are use-counted and automatically deleted
    - add a new cmake option FEATURE_THREADS
      When ON, section use counting and map/unmap are thread-safe
  - remove the FEATURE_MMAP cmake option
    - image sections are mmapped by default
    - image sections are now mmapped also on Windows
    - fall back to fread() if mmap fails
  - remove pt_configure()
    Use pt_config_init() to zero-initialize the configuration, fill in the
    required fields, and call pt_cpu_errata()
  - indicate the upcoming end of the trace
  - pt_insn_*() functions now return a status bit-vector similar to
    pt_qry_*() functions.
  - events now have timing information
  - return -pte_internal for NULL pointers in internal interfaces
  - fix overflow handling
  - replace check with ptunit
  - ignore whitespace when comparing pttc test outputs
  - instruction decode now fails reliably when the execution mode is not known
  - fix missing doxygen escapes in intel-pt.h
  - add new errors pte_bad_image and pte_not_supported
  - add pt_*_get_config() for querying the decoder's configuration
  - add pt_insn_get_sync_offset()
  - fix a bug where two back-to-back paging events were bound to the
    same instruction
  - ptdump and ptxed now print all integers as hex without 0x prefix
  - ptdump:
    - change the output format
    - add a new option --exec-mode to show the resulting execution mode
      for mode.exec packets
  - pttc:
    - fix a memory leak where an encoder was leaked for each directive
    - allow tools options to be specified in the test
    - fix a bug where --no-sync wouldn't correctly sync at the beginning
      of the trace file
  - ptxed:
    - libxed is now linked statically
    - continue decoding after a synchronization error
    - add a new option --offset to print the offset into the trace file
      at the beginning of each line

Change-Id: I8bb8cf3340ce431d2a82c4386612a138f3ab9934
Signed-off-by: Markus Metzger <markus.t.metzger@intel.com>
