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>
This commit is contained in:
Hannes Domani
2018-01-17 18:48:27 +01:00
parent a7515d25a9
commit 408c3a153a

View File

@@ -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,9 +793,24 @@ 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;
}