diff options
author | Hannes Domani <ssbssa@yahoo.de> | 2018-01-17 18:48:27 +0100 |
---|---|---|
committer | Hannes Domani <ssbssa@yahoo.de> | 2018-01-23 11:03:49 +0000 |
commit | 408c3a153a5541f2a2530f40f51873bb36a01c2e (patch) | |
tree | 00e05bfc8be97cdced5e8c25dc032d11c29c476c /src/plugins/valgrind/memchecktool.cpp | |
parent | a7515d25a971aeaf5c54cc9a52a325e05a7c6e98 (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.cpp | 22 |
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()); |