Debugger: Use ProcessResultData a bit more

Instead of its individual items.

Change-Id: Icd668a61de1c2de676e0a44769f1c1bb5375c523
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
hjk
2022-06-16 17:28:02 +02:00
parent aa117f9955
commit af4a6b1a74
5 changed files with 19 additions and 14 deletions

View File

@@ -65,6 +65,7 @@
#include <utils/fileutils.h> #include <utils/fileutils.h>
#include <utils/hostosinfo.h> #include <utils/hostosinfo.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <utils/processinterface.h>
#include <utils/qtcprocess.h> #include <utils/qtcprocess.h>
#include <utils/stringutils.h> #include <utils/stringutils.h>
#include <utils/winutils.h> #include <utils/winutils.h>
@@ -708,7 +709,7 @@ void CdbEngine::processFinished()
elapsedLogTime(), qPrintable(stateName(state())), elapsedLogTime(), qPrintable(stateName(state())),
m_process.exitStatus(), m_process.exitCode()); m_process.exitStatus(), m_process.exitCode());
notifyDebuggerProcessFinished(m_process.exitCode(), m_process.exitStatus(), "CDB"); notifyDebuggerProcessFinished(m_process.resultData(), "CDB");
} }
void CdbEngine::detachDebugger() void CdbEngine::detachDebugger()

View File

@@ -77,6 +77,7 @@
#include <utils/checkablemessagebox.h> #include <utils/checkablemessagebox.h>
#include <utils/macroexpander.h> #include <utils/macroexpander.h>
#include <utils/processhandle.h> #include <utils/processhandle.h>
#include <utils/processinterface.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <utils/qtcprocess.h> #include <utils/qtcprocess.h>
#include <utils/styledbar.h> #include <utils/styledbar.h>
@@ -1789,14 +1790,14 @@ void DebuggerEngine::showMessage(const QString &msg, int channel, int timeout) c
} }
} }
void DebuggerEngine::notifyDebuggerProcessFinished(int exitCode, void DebuggerEngine::notifyDebuggerProcessFinished(const ProcessResultData &result,
QProcess::ExitStatus exitStatus, const QString &backendName) const QString &backendName)
{ {
showMessage(QString("%1 PROCESS FINISHED, status %2, exit code %3 (0x%4)") showMessage(QString("%1 PROCESS FINISHED, status %2, exit code %3 (0x%4)")
.arg(backendName) .arg(backendName)
.arg(exitStatus) .arg(result.m_exitStatus)
.arg(exitCode) .arg(result.m_exitCode)
.arg(QString::number(exitCode, 16))); .arg(QString::number(result.m_exitCode, 16)));
switch (state()) { switch (state()) {
case DebuggerFinished: case DebuggerFinished:
@@ -1816,9 +1817,9 @@ void DebuggerEngine::notifyDebuggerProcessFinished(int exitCode,
default: { default: {
// Initiate shutdown sequence // Initiate shutdown sequence
notifyInferiorIll(); notifyInferiorIll();
const QString msg = exitStatus == QProcess::CrashExit ? const QString msg = result.m_exitStatus == QProcess::CrashExit ?
tr("The %1 process terminated.") : tr("The %1 process terminated.") :
tr("The %2 process terminated unexpectedly (exit code %1).").arg(exitCode); tr("The %2 process terminated unexpectedly (exit code %1).").arg(result.m_exitCode);
AsynchronousMessageBox::critical(tr("Unexpected %1 Exit").arg(backendName), AsynchronousMessageBox::critical(tr("Unexpected %1 Exit").arg(backendName),
msg.arg(backendName)); msg.arg(backendName));
break; break;

View File

@@ -27,18 +27,17 @@
#include "debugger_global.h" #include "debugger_global.h"
#include "debuggerconstants.h" #include "debuggerconstants.h"
#include "debuggeritem.h"
#include "debuggerprotocol.h" #include "debuggerprotocol.h"
#include "breakhandler.h" #include "breakhandler.h"
#include "projectexplorer/abi.h"
#include "threadshandler.h" #include "threadshandler.h"
#include <coreplugin/icontext.h> #include <coreplugin/icontext.h>
#include <projectexplorer/devicesupport/idevicefwd.h> #include <projectexplorer/devicesupport/idevicefwd.h>
#include <projectexplorer/runcontrol.h> #include <projectexplorer/runcontrol.h>
#include <texteditor/textmark.h> #include <texteditor/textmark.h>
#include <utils/fileutils.h>
#include <QProcess> #include <utils/filepath.h>
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
class QDebug; class QDebug;
@@ -50,6 +49,7 @@ namespace Core { class IOptionsPage; }
namespace Utils { namespace Utils {
class MacroExpander; class MacroExpander;
class Perspective; class Perspective;
class ProcessResultData;
} // Utils } // Utils
namespace Debugger { namespace Debugger {
@@ -509,7 +509,7 @@ public:
protected: protected:
void setDebuggerName(const QString &name); void setDebuggerName(const QString &name);
void notifyDebuggerProcessFinished(int exitCode, QProcess::ExitStatus exitStatus, void notifyDebuggerProcessFinished(const Utils::ProcessResultData &resultData,
const QString &backendName); const QString &backendName);
virtual void setState(DebuggerState state, bool forced = false); virtual void setState(DebuggerState state, bool forced = false);

View File

@@ -61,6 +61,7 @@
#include <app/app_version.h> #include <app/app_version.h>
#include <utils/algorithm.h> #include <utils/algorithm.h>
#include <utils/hostosinfo.h> #include <utils/hostosinfo.h>
#include <utils/processinterface.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <utils/qtcprocess.h> #include <utils/qtcprocess.h>
#include <utils/stringutils.h> #include <utils/stringutils.h>
@@ -4095,7 +4096,7 @@ void GdbEngine::handleGdbDone()
if (m_commandTimer.isActive()) if (m_commandTimer.isActive())
m_commandTimer.stop(); m_commandTimer.stop();
notifyDebuggerProcessFinished(m_gdbProc.exitCode(), m_gdbProc.exitStatus(), "GDB"); notifyDebuggerProcessFinished(m_gdbProc.resultData(), "GDB");
} }
void GdbEngine::abortDebuggerProcess() void GdbEngine::abortDebuggerProcess()

View File

@@ -35,6 +35,7 @@
#include <debugger/terminal.h> #include <debugger/terminal.h>
#include <debugger/breakhandler.h> #include <debugger/breakhandler.h>
#include <debugger/debuggeritem.h>
#include <debugger/debuggersourcepathmappingwidget.h> #include <debugger/debuggersourcepathmappingwidget.h>
#include <debugger/disassemblerlines.h> #include <debugger/disassemblerlines.h>
#include <debugger/moduleshandler.h> #include <debugger/moduleshandler.h>
@@ -49,6 +50,7 @@
#include <coreplugin/idocument.h> #include <coreplugin/idocument.h>
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <utils/processinterface.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <utils/qtcprocess.h> #include <utils/qtcprocess.h>
@@ -832,7 +834,7 @@ QString LldbEngine::errorMessage(QProcess::ProcessError error) const
void LldbEngine::handleLldbFinished() void LldbEngine::handleLldbFinished()
{ {
notifyDebuggerProcessFinished(m_lldbProc.exitCode(), m_lldbProc.exitStatus(), "LLDB"); notifyDebuggerProcessFinished(m_lldbProc.resultData(), "LLDB");
} }
void LldbEngine::readLldbStandardError() void LldbEngine::readLldbStandardError()