llvm-project/lldb
Walter Erquinigo d52ba48821 [trace] Introduce Hierarchical Trace Representation (HTR) and add command for Intel PT trace visualization
This diff introduces Hierarchical Trace Representation (HTR) and creates the `thread trace export ctf  -f <filename> -t <thread_id>` command to export an Intel PT trace's HTR to Chrome Trace Format (CTF) for visualization.

See `lldb/docs/htr.rst` for context/documentation on HTR.

**Overview of Changes**
    - Add HTR documentation (see `lldb/docs/htr.rst`)
    - Add HTR structures (layer, block, block metadata)
    - Implement "Basic Super Block" HTR pass
    - Add 'thread trace export ctf' command to export the HTR of an Intel PT
      trace to Chrome Trace Format (CTF)

As this diff is the first iteration of HTR and trace visualization, future diffs will build on this work by generalizing the internal design of HTR and implementing new HTR passes that provide better trace summarization/visualization.

See attached video for an example of Intel PT trace visualization:
{F17851042}

Original Author: jj10306

Submitted by: wallace

Reviewed By: wallace, clayborg

Differential Revision: https://reviews.llvm.org/D105741
2021-07-28 13:56:45 -07:00
..
bindings [lldb] Add AllocateMemory/DeallocateMemory to the SBProcess API 2021-07-16 00:45:22 +02:00
cmake
docs [trace] Introduce Hierarchical Trace Representation (HTR) and add command for Intel PT trace visualization 2021-07-28 13:56:45 -07:00
examples [lldb/Plugins] Add ScriptedProcess Process Plugin 2021-07-22 14:47:33 +02:00
include/lldb Create synthetic symbol names on demand to improve memory consumption and startup times. 2021-07-27 16:51:12 -07:00
packages/Python [lldb][NFC] Delete unused and commented out DWARF constants 2021-07-26 12:26:35 -07:00
resources
scripts
source [trace] Introduce Hierarchical Trace Representation (HTR) and add command for Intel PT trace visualization 2021-07-28 13:56:45 -07:00
test [trace] Introduce Hierarchical Trace Representation (HTR) and add command for Intel PT trace visualization 2021-07-28 13:56:45 -07:00
third_party/Python/module Revert "[lldb] Temporarily bump the max length of the pexpect error message to diagnose an lldb-aarch64 test failure" 2021-07-28 18:11:52 +02:00
tools Remove the DarwinLog functionality from debguserver 2021-07-20 00:36:56 -07:00
unittests [lldb][AArch64] Add memory tag writing to lldb 2021-07-27 15:18:42 +01:00
utils
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt
CODE_OWNERS.txt
LICENSE.TXT
use_lldb_suite_root.py