aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYordan Karadzhov <ykaradzhov@vmware.com>2019-05-02 15:40:07 +0300
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2019-05-05 17:03:06 -0400
commitc8d9e1a82e75ae0d35d8ca2800ef6c65be3ac4e5 (patch)
treee682a61efc0d4f273466efc13a319340ee390b87
parent2ddc077a4f996b49b55d4173a138850c10ff412f (diff)
downloadtrace-cmd-c8d9e1a82e75ae0d35d8ca2800ef6c65be3ac4e5.tar.gz
kernel-shark: Add logic for selecting the trace-cmd executable used
If kshark-record has been started from its installation location it will use the installed version of trace-cmd. Otherwise the trace-cmd executable found by Cmake when building KernelShark (see FindTraceCmd.cmake) will be used. Link: http://lore.kernel.org/linux-trace-devel/20190502124009.32208-7-ykaradzhov@vmware.com Suggested-by: Troy Engel <troyengel@gmail.com> Signed-off-by: Yordan Karadzhov <ykaradzhov@vmware.com> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-rw-r--r--kernel-shark/src/KsCaptureDialog.cpp7
-rw-r--r--kernel-shark/src/KsUtils.cpp4
-rw-r--r--kernel-shark/src/KsUtils.hpp2
3 files changed, 10 insertions, 3 deletions
diff --git a/kernel-shark/src/KsCaptureDialog.cpp b/kernel-shark/src/KsCaptureDialog.cpp
index 2976a3bc..b1075952 100644
--- a/kernel-shark/src/KsCaptureDialog.cpp
+++ b/kernel-shark/src/KsCaptureDialog.cpp
@@ -473,7 +473,7 @@ KsCaptureDialog::KsCaptureDialog(QWidget *parent)
_captureMon(this),
_captureProc(this)
{
- QString captureExe(TRACECMD_BIN_DIR);
+ QString captureExe;
this->setWindowTitle("Capture");
_layout.addWidget(&_captureCtrl);
@@ -489,6 +489,11 @@ KsCaptureDialog::KsCaptureDialog(QWidget *parent)
connect(&_captureCtrl._closeButton, &QPushButton::pressed,
this, &KsCaptureDialog::close);
+ if (KsUtils::isInstalled())
+ captureExe = QString(_INSTALL_PREFIX) + QString("/bin");
+ else
+ captureExe = TRACECMD_BIN_DIR;
+
captureExe += "/trace-cmd";
_captureProc.setProgram(captureExe);
diff --git a/kernel-shark/src/KsUtils.cpp b/kernel-shark/src/KsUtils.cpp
index 3e88d962..0020bff0 100644
--- a/kernel-shark/src/KsUtils.cpp
+++ b/kernel-shark/src/KsUtils.cpp
@@ -142,10 +142,10 @@ bool matchCPUVisible(struct kshark_context *kshark_ctx,
*/
bool isInstalled()
{
- QString appPath = QCoreApplication::applicationFilePath();
+ QString appPath = QCoreApplication::applicationDirPath();
QString installPath(_INSTALL_PREFIX);
- installPath += "/bin/kernelshark";
+ installPath += "/bin";
installPath = QDir::cleanPath(installPath);
return appPath == installPath;
diff --git a/kernel-shark/src/KsUtils.hpp b/kernel-shark/src/KsUtils.hpp
index 1c872711..b4663da1 100644
--- a/kernel-shark/src/KsUtils.hpp
+++ b/kernel-shark/src/KsUtils.hpp
@@ -112,6 +112,8 @@ inline QString Ts2String(int64_t ts, int prec)
bool matchCPUVisible(struct kshark_context *kshark_ctx,
struct kshark_entry *e, int cpu);
+bool isInstalled();
+
QString getFile(QWidget *parent,
const QString &windowName,
const QString &filter,