1**************************************************************************** 2* README * 3* * 4* This file provides all the information regarding new CLI commands that * 5* enable using various hardware features of Intel(R) architecture based * 6* processors from LLDB's CLI. * 7**************************************************************************** 8 9 10============ 11Introduction 12============ 13A shared library has been developed to use various hardware features of 14Intel(R) architecture based processors through LLDB's command line. The library 15currently comprises of hardware features namely Intel(R) Processor Trace and 16Intel(R) Memory Protection Extensions. 17 18 19============ 20Details 21============ 22A C++ based cli wrapper (cli-wrapper.cpp) has been developed here that 23agglomerates all cli commands for various hardware features. This wrapper is 24build to generate a shared library (lldbIntelFeatures) to provide all these 25commands. 26 27For each hardware feature, separate cli commands have been developed that are 28provided by wrappers (e.g. cli-wrapper-mpxtable.cpp) residing 29in feature specific folders. 30 31For details regarding cli commands of each feature, please refer to these 32feature specific wrappers. 33 34 35 36============ 37How to Build 38============ 39The shared library (lldbIntelFeatures) has a cmake based build and can be built 40while building LLDB with cmake. "cli-wrapper.cpp" file is compiled along with all 41the feature specific source files (residing in feature specific folders). 42 43Furthermore, flexibility is provided to the user to include/exclude a particular 44feature while building lldbIntelFeatures library. This is done by flags described 45below: 46 47 - LLDB_BUILD_INTEL_MPX - Enables building Intel(R) Memory Protection Extensions 48 feature (inside intel-mpx folder). This flag defaults to "ON" meaning 49 the feature is excluded while building lldbIntelFeatures library. 50 51Please refer to README files in feature specific folders to know about additional 52flags that need to be set in order to build that feature successfully. 53 54 55============ 56How to Use 57============ 58All CLI commands provided by this shared library can be used through the LLDB's 59CLI by executing "plugin load <shared_lib_name>" on LLDB CLI. shared_lib_name here 60is lldbIntelFeatures 61 62 63 64============ 65Description 66============ 67Please refer to README_CLI file of each feature to know about details of CLI 68commands. 69