This directory contains the new Qt-based version of the KernelShark GUI. Third Party Software: ------------------------------------------------------------ KernelShark has the following external dependencies: Cmake, Json-C, OpenGL/Glut, Qt5Base. 1. In order to install the packages on Ubuntu do the following: sudo apt-get install build-essential git cmake libjson-c-dev -y sudo apt-get install freeglut3-dev libxmu-dev libxi-dev -y sudo apt-get install qtbase5-dev -y 1.1 I you want to be able to generate Doxygen documentation: sudo apt-get install graphviz doxygen-gui -y 2. In order to install the packages on Fedora, as root do the following: dnf install gcc gcc-c++ git cmake json-c-devel -y dnf install freeglut-devel redhat-rpm-config -y dnf install qt5-qtbase-devel -y 2.1 I you want to be able to generate Doxygen documentation: dnf install graphviz doxygen -y Building: ------------------------------------------------------------ 1. Follow the instructions given in trace-cmd/README and build the original trace-cmd end traceevent libraries. 2. Building KernelShark: 2.1 There is a simple and expert way to build KernelShark 2.1.1 Option 1 (simple) : build KernelShark as part of trace-cmd (from the toplevel git tree) make gui This will build the necessary parts of trace-cmd needed by KernelShark. 2.1.1.1 By default, the installation prefix is "/usr/local". It can be changed by passing in "prefix" to the build. make prefix=/usr gui 2.1.1.2 Use "make clean" if you want to delete all already compiled objects. This will also clean up all the files created by cmake. 2.1.1.3 KernelShark has multiple build types (See section 2.1.2.3 for more details. By default, the build type is RelWithDebInfo, which will build a release candidate with debug information. To change the type, pass in the option BUILD_TYPE= to the make process. make BUILD_TYPE=Debug gui - for "-g" option make BUILD_TYPE=Release gui - for "-O3" option make BUILD_TYPE=RelWithDebInfo gui - for "-g -O2" option (default) make BUILD_TYPE=MinSizeRel gui - for "-Os" option 2.1.2 Option 2 (expert) : standalone build of KernelShark (for hackers only) (note, you may need to do a normal make from the toplevel git tree before performing the following) make cd kernel-shark/build cmake ../ make This gives you a bit more control as you may easily pass in your own cmake options. 2.1.2.1 In order to create a Doxygen documentation add -D_DOXYGEN_DOC=1 as a CMake Command-Line option. 2.1.2.2 By default, installation prefix is "/usr/local". It can be changed using -D_INSTALL_PREFIX= as a CMake Command-Line option. 2.1.2.3 In addition to the standard CMake build types (Debug, Release, RelWithDebInfo, MinSizeRel) KernelShark supports a "Package" build type. By default this build type adds the "-O2" compiler flag. Package maintainers can chose their own compiler flags by providing the corresponding CMAKE_XXXX_FLAGS_PACKAGE Command-Line options (see the example below). -- Note that when built as a "Package" the RPATH-s of the executables are set directly to _INSTALL_PREFIX/lib/kernelshark/ -- Note that when built as a "Debug" the "Record" dialog will try to use the version of the trace-cmd executable from the build location. In all other cases the dialog will derive the absolut path to the trace-cmd executable from "_INSTALL_PREFIX", hence the dialog will use the installed version. If no build types is specified, the type will be "RelWithDebInfo". Examples: cmake -D_DOXYGEN_DOC=1 -D_INSTALL_PREFIX=/usr ../ cmake -DCMAKE_BUILD_TYPE=Package -DCMAKE_C_FLAGS_PACKAGE="-O3 -pedantic" ../ 2.1.2.4 Use the script "cmake_clean.sh" if you want to delete all already compiled objects and all files generated by CMake. cd kernel-shark/build ./cmake-clean.sh 3. After building the code "kernel-shark/lib" will contain all libraries and "kernel-shark/bin" will contain all executables.