diff options
author | Yordan Karadzhov <ykaradzhov@vmware.com> | 2019-05-02 15:40:07 +0300 |
---|---|---|
committer | Steven Rostedt (VMware) <rostedt@goodmis.org> | 2019-05-05 17:03:06 -0400 |
commit | c8d9e1a82e75ae0d35d8ca2800ef6c65be3ac4e5 (patch) | |
tree | e682a61efc0d4f273466efc13a319340ee390b87 | |
parent | 2ddc077a4f996b49b55d4173a138850c10ff412f (diff) | |
download | trace-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.cpp | 7 | ||||
-rw-r--r-- | kernel-shark/src/KsUtils.cpp | 4 | ||||
-rw-r--r-- | kernel-shark/src/KsUtils.hpp | 2 |
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, |