aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/valgrind/memchecktool.cpp
diff options
context:
space:
mode:
authorHannes Domani <ssbssa@yahoo.de>2018-01-17 18:48:27 +0100
committerHannes Domani <ssbssa@yahoo.de>2018-01-23 11:03:49 +0000
commit408c3a153a5541f2a2530f40f51873bb36a01c2e (patch)
tree00e05bfc8be97cdced5e8c25dc032d11c29c476c /src/plugins/valgrind/memchecktool.cpp
parenta7515d25a971aeaf5c54cc9a52a325e05a7c6e98 (diff)
Valgrind: Inform about heob/dwarfstack requirements
Change-Id: I86b561b474f5676568b490bdfd829f17364ea3c3 Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins/valgrind/memchecktool.cpp')
-rw-r--r--src/plugins/valgrind/memchecktool.cpp22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/plugins/valgrind/memchecktool.cpp b/src/plugins/valgrind/memchecktool.cpp
index 00c49a16d6..d007f3580f 100644
--- a/src/plugins/valgrind/memchecktool.cpp
+++ b/src/plugins/valgrind/memchecktool.cpp
@@ -73,6 +73,7 @@
#include <ssh/sshconnection.h>
+#include <utils/checkablemessagebox.h>
#include <utils/fancymainwindow.h>
#include <utils/pathchooser.h>
#include <utils/qtcassert.h>
@@ -792,12 +793,27 @@ void MemcheckTool::heobAction()
const QString heob = QString("heob%1.exe").arg(abi.wordWidth());
const QString heobPath = dialog.path() + '/' + heob;
if (!QFile::exists(heobPath)) {
- const QString msg = tr("Heob: Can't find %1").arg(heob);
- TaskHub::addTask(Task::Error, msg, Debugger::Constants::ANALYZERTASK_ID);
- TaskHub::requestPopup();
+ QMessageBox::critical(Core::ICore::mainWindow(), tr("Heob"),
+ tr("The %1 executables must be in the appropriate location.")
+ .arg("<a href=\"https://github.com/ssbssa/heob/releases\">Heob</a>"));
return;
}
+ // dwarfstack
+ if (abi.osFlavor() == Abi::WindowsMSysFlavor) {
+ const QString dwarfstack = QString("dwarfstack%1.dll").arg(abi.wordWidth());
+ const QString dwarfstackPath = dialog.path() + '/' + dwarfstack;
+ if (!QFile::exists(dwarfstackPath)
+ && CheckableMessageBox::doNotShowAgainInformation(
+ Core::ICore::mainWindow(), tr("Heob"),
+ tr("Heob used with MinGW projects needs the %1 DLLs for proper stacktrace resolution.")
+ .arg("<a href=\"https://github.com/ssbssa/dwarfstack/releases\">Dwarfstack</a>"),
+ ICore::settings(), "HeobDwarfstackInfo",
+ QDialogButtonBox::Ok | QDialogButtonBox::Cancel,
+ QDialogButtonBox::Ok) != QDialogButtonBox::Ok)
+ return;
+ }
+
// output xml file
QDir wdDir(workingDirectory);
const QString xmlPath = wdDir.absoluteFilePath(dialog.xmlName());