debugger: make "Use Dumpers" a pool action

This commit is contained in:
hjk
2009-03-17 17:00:06 +01:00
parent 04a15daab7
commit cc89dcc75b
11 changed files with 34 additions and 28 deletions

View File

@@ -992,11 +992,6 @@ void CdbDebugEngine::setDebugDumpers(bool on)
Q_UNUSED(on) Q_UNUSED(on)
} }
void CdbDebugEngine::setUseCustomDumpers(bool on)
{
Q_UNUSED(on)
}
void CdbDebugEngine::recheckCustomDumperAvailability() void CdbDebugEngine::recheckCustomDumperAvailability()
{ {
} }

View File

@@ -91,7 +91,6 @@ public:
virtual void reloadRegisters(); virtual void reloadRegisters();
virtual void setDebugDumpers(bool on); virtual void setDebugDumpers(bool on);
virtual void setUseCustomDumpers(bool on);
virtual void recheckCustomDumperAvailability(); virtual void recheckCustomDumperAvailability();
virtual void reloadSourceFiles(); virtual void reloadSourceFiles();

View File

@@ -17,6 +17,7 @@ QT += gui network script
HEADERS += \ HEADERS += \
breakhandler.h \ breakhandler.h \
breakwindow.h \ breakwindow.h \
debuggeractions.h \
debuggerconstants.h \ debuggerconstants.h \
debuggerdialogs.h \ debuggerdialogs.h \
debuggermanager.h \ debuggermanager.h \
@@ -47,6 +48,7 @@ SOURCES += \
breakhandler.cpp \ breakhandler.cpp \
breakwindow.cpp \ breakwindow.cpp \
breakwindow.h \ breakwindow.h \
debuggeractions.cpp \
debuggerdialogs.cpp \ debuggerdialogs.cpp \
debuggermanager.cpp \ debuggermanager.cpp \
debuggeroutputwindow.cpp \ debuggeroutputwindow.cpp \

View File

@@ -29,6 +29,7 @@
#include "debuggermanager.h" #include "debuggermanager.h"
#include "debuggeractions.h"
#include "debuggerconstants.h" #include "debuggerconstants.h"
#include "idebuggerengine.h" #include "idebuggerengine.h"
@@ -94,7 +95,7 @@ DebuggerSettings::DebuggerSettings()
m_skipKnownFrames = false; m_skipKnownFrames = false;
m_debugDumpers = false; m_debugDumpers = false;
m_useToolTips = false; m_useToolTips = false;
m_useCustomDumpers = true; m_useDumpers = true;
m_listSourceFiles = false; m_listSourceFiles = false;
} }
@@ -108,7 +109,7 @@ QString DebuggerSettings::dump()
<< " gdbEnv: " << m_gdbEnv << " gdbEnv: " << m_gdbEnv
<< " autoRun: " << m_autoRun << " autoRun: " << m_autoRun
<< " autoQuit: " << m_autoQuit << " autoQuit: " << m_autoQuit
<< " useCustomDumpers: " << m_useCustomDumpers << " useCustomDumpers: " << m_useDumpers
<< " skipKnownFrames: " << m_skipKnownFrames << " skipKnownFrames: " << m_skipKnownFrames
<< " debugDumpers: " << m_debugDumpers << " debugDumpers: " << m_debugDumpers
<< " useToolTips: " << m_useToolTips << " useToolTips: " << m_useToolTips
@@ -476,6 +477,9 @@ void DebuggerManager::init()
setDebuggerType(GdbDebugger); setDebuggerType(GdbDebugger);
if (Debugger::Constants::Internal::debug) if (Debugger::Constants::Internal::debug)
qDebug() << Q_FUNC_INFO << gdbEngine << winEngine << scriptEngine; qDebug() << Q_FUNC_INFO << gdbEngine << winEngine << scriptEngine;
connect(action(UseDumpers), SIGNAL(triggered(bool)),
this, SLOT(setUseDumpers(bool)));
} }
void DebuggerManager::setDebuggerType(DebuggerType type) void DebuggerManager::setDebuggerType(DebuggerType type)
@@ -1292,16 +1296,15 @@ bool DebuggerManager::debugDumpers() const
return m_settings.m_debugDumpers; return m_settings.m_debugDumpers;
} }
bool DebuggerManager::useCustomDumpers() const bool DebuggerManager::useDumpers() const
{ {
return m_settings.m_useCustomDumpers; return m_settings.m_useDumpers;
} }
void DebuggerManager::setUseCustomDumpers(bool on) void DebuggerManager::setUseDumpers(bool on)
{ {
QTC_ASSERT(m_engine, return); QTC_ASSERT(m_engine, return);
m_settings.m_useCustomDumpers = on; m_settings.m_useDumpers = on;
m_engine->setUseCustomDumpers(on);
} }
void DebuggerManager::setDebugDumpers(bool on) void DebuggerManager::setDebugDumpers(bool on)

View File

@@ -162,7 +162,7 @@ private:
virtual void showApplicationOutput(const QString &data) = 0; virtual void showApplicationOutput(const QString &data) = 0;
virtual bool skipKnownFrames() const = 0; virtual bool skipKnownFrames() const = 0;
virtual bool debugDumpers() const = 0; virtual bool debugDumpers() const = 0;
virtual bool useCustomDumpers() const = 0; virtual bool useDumpers() const = 0;
virtual bool wantsSourceFileList() const = 0; virtual bool wantsSourceFileList() const = 0;
virtual bool wantsAllPluginBreakpoints() const = 0; virtual bool wantsAllPluginBreakpoints() const = 0;
@@ -193,7 +193,7 @@ public:
bool m_autoRun; bool m_autoRun;
bool m_autoQuit; bool m_autoQuit;
bool m_useCustomDumpers; bool m_useDumpers;
bool m_skipKnownFrames; bool m_skipKnownFrames;
bool m_debugDumpers; bool m_debugDumpers;
bool m_useToolTips; bool m_useToolTips;
@@ -284,11 +284,11 @@ public slots:
void showStatusMessage(const QString &msg, int timeout = -1); // -1 forever void showStatusMessage(const QString &msg, int timeout = -1); // -1 forever
void setUseCustomDumpers(bool on);
void setDebugDumpers(bool on); void setDebugDumpers(bool on);
void setSkipKnownFrames(bool on); void setSkipKnownFrames(bool on);
private slots: private slots:
void setUseDumpers(bool on);
void showDebuggerOutput(const QString &prefix, const QString &msg); void showDebuggerOutput(const QString &prefix, const QString &msg);
void showDebuggerInput(const QString &prefix, const QString &msg); void showDebuggerInput(const QString &prefix, const QString &msg);
void showApplicationOutput(const QString &data); void showApplicationOutput(const QString &data);
@@ -326,7 +326,7 @@ private:
bool skipKnownFrames() const; bool skipKnownFrames() const;
bool debugDumpers() const; bool debugDumpers() const;
bool useCustomDumpers() const; bool useDumpers() const;
bool wantsSourceFileList() const bool wantsSourceFileList() const
{ return m_settings.m_listSourceFiles; } { return m_settings.m_listSourceFiles; }
bool wantsAllPluginBreakpoints() const bool wantsAllPluginBreakpoints() const

View File

@@ -29,6 +29,7 @@
#include "debuggerplugin.h" #include "debuggerplugin.h"
#include "debuggeractions.h"
#include "debuggerconstants.h" #include "debuggerconstants.h"
#include "debuggermanager.h" #include "debuggermanager.h"
#include "debuggerrunner.h" #include "debuggerrunner.h"
@@ -286,7 +287,7 @@ QWidget *GdbOptionPage::createPage(QWidget *parent)
m_ui.checkBoxListSourceFiles->setChecked(m_settings.m_listSourceFiles); m_ui.checkBoxListSourceFiles->setChecked(m_settings.m_listSourceFiles);
m_ui.checkBoxSkipKnownFrames->setChecked(m_settings.m_skipKnownFrames); m_ui.checkBoxSkipKnownFrames->setChecked(m_settings.m_skipKnownFrames);
m_ui.checkBoxDebugDumpers->setChecked(m_settings.m_debugDumpers); m_ui.checkBoxDebugDumpers->setChecked(m_settings.m_debugDumpers);
m_ui.checkBoxUseCustomDumpers->setChecked(m_settings.m_useCustomDumpers); m_ui.checkBoxUseCustomDumpers->setChecked(m_settings.m_useDumpers);
m_ui.checkBoxUseToolTips->setChecked(m_settings.m_useToolTips); m_ui.checkBoxUseToolTips->setChecked(m_settings.m_useToolTips);
connect(m_ui.radioButtonSelectedPluginBreakpoints, SIGNAL(toggled(bool)), connect(m_ui.radioButtonSelectedPluginBreakpoints, SIGNAL(toggled(bool)),
@@ -310,7 +311,7 @@ QWidget *GdbOptionPage::createPage(QWidget *parent)
//m_dumpLogAction->setText(tr("Dump Log File for Debugging Purposes")); //m_dumpLogAction->setText(tr("Dump Log File for Debugging Purposes"));
// //
connect(m_ui.checkBoxUseCustomDumpers, SIGNAL(clicked(bool)), connect(m_ui.checkBoxUseCustomDumpers, SIGNAL(clicked(bool)),
m_plugin->m_manager, SLOT(setUseCustomDumpers(bool))); action(UseDumpers), SLOT(trigger(bool)));
return w; return w;
} }
@@ -324,7 +325,7 @@ void GdbOptionPage::apply()
m_settings.m_skipKnownFrames = m_ui.checkBoxSkipKnownFrames->isChecked(); m_settings.m_skipKnownFrames = m_ui.checkBoxSkipKnownFrames->isChecked();
m_settings.m_listSourceFiles = m_ui.checkBoxListSourceFiles->isChecked(); m_settings.m_listSourceFiles = m_ui.checkBoxListSourceFiles->isChecked();
m_settings.m_debugDumpers = m_ui.checkBoxDebugDumpers->isChecked(); m_settings.m_debugDumpers = m_ui.checkBoxDebugDumpers->isChecked();
m_settings.m_useCustomDumpers = m_ui.checkBoxUseCustomDumpers->isChecked(); m_settings.m_useDumpers = m_ui.checkBoxUseCustomDumpers->isChecked();
m_settings.m_useToolTips = m_ui.checkBoxUseToolTips->isChecked(); m_settings.m_useToolTips = m_ui.checkBoxUseToolTips->isChecked();
m_settings.m_pluginAllBreakpoints = m_settings.m_pluginAllBreakpoints =
@@ -908,7 +909,7 @@ void DebuggerPlugin::writeSettings() const
s->setValue("AutoQuit", m->m_autoQuit); s->setValue("AutoQuit", m->m_autoQuit);
s->setValue("UseToolTips", m->m_useToolTips); s->setValue("UseToolTips", m->m_useToolTips);
s->setValue("UseCustomDumpers", m->m_useCustomDumpers); s->setValue("UseCustomDumpers", m->m_useDumpers);
s->setValue("ListSourceFiles", m->m_listSourceFiles); s->setValue("ListSourceFiles", m->m_listSourceFiles);
s->setValue("SkipKnowFrames", m->m_skipKnownFrames); s->setValue("SkipKnowFrames", m->m_skipKnownFrames);
s->setValue("DebugDumpers", m->m_debugDumpers); s->setValue("DebugDumpers", m->m_debugDumpers);
@@ -946,7 +947,7 @@ void DebuggerPlugin::readSettings()
m->m_skipKnownFrames = s->value("SkipKnownFrames", false).toBool(); m->m_skipKnownFrames = s->value("SkipKnownFrames", false).toBool();
m->m_debugDumpers = s->value("DebugDumpers", false).toBool(); m->m_debugDumpers = s->value("DebugDumpers", false).toBool();
m->m_useCustomDumpers = s->value("UseCustomDumpers", true).toBool(); m->m_useDumpers = s->value("UseCustomDumpers", true).toBool();
m->m_useToolTips = s->value("UseToolTips", false).toBool(); m->m_useToolTips = s->value("UseToolTips", false).toBool();
m->m_listSourceFiles = s->value("ListSourceFiles", false).toBool(); m->m_listSourceFiles = s->value("ListSourceFiles", false).toBool();

View File

@@ -29,6 +29,7 @@
#include "gdbengine.h" #include "gdbengine.h"
#include "debuggeractions.h"
#include "debuggerconstants.h" #include "debuggerconstants.h"
#include "debuggermanager.h" #include "debuggermanager.h"
#include "gdbmi.h" #include "gdbmi.h"
@@ -283,6 +284,9 @@ void GdbEngine::initializeConnections()
connect(this, SIGNAL(applicationOutputAvailable(QString)), connect(this, SIGNAL(applicationOutputAvailable(QString)),
q, SLOT(showApplicationOutput(QString)), q, SLOT(showApplicationOutput(QString)),
Qt::QueuedConnection); Qt::QueuedConnection);
connect(action(UseDumpers), SIGNAL(triggered(bool)),
this, SLOT(setUseDumpers(bool)));
} }
void GdbEngine::initializeVariables() void GdbEngine::initializeVariables()
@@ -3073,9 +3077,9 @@ static QString sizeofTypeExpression(const QString &type)
return "sizeof(" + gdbQuoteTypes(type) + ")"; return "sizeof(" + gdbQuoteTypes(type) + ")";
} }
void GdbEngine::setUseCustomDumpers(bool on) void GdbEngine::setUseDumpers(bool on)
{ {
//qDebug() << "SWITCHING ON/OFF DUMPER DEBUGGING:" << on; qDebug() << "SWITCHING ON/OFF DUMPER DEBUGGING:" << on;
Q_UNUSED(on); Q_UNUSED(on);
// FIXME: a bit too harsh, but otherwise the treeview sometimes look funny // FIXME: a bit too harsh, but otherwise the treeview sometimes look funny
//m_expandedINames.clear(); //m_expandedINames.clear();
@@ -3086,7 +3090,7 @@ void GdbEngine::setUseCustomDumpers(bool on)
bool GdbEngine::isCustomValueDumperAvailable(const QString &type) const bool GdbEngine::isCustomValueDumperAvailable(const QString &type) const
{ {
DebuggerSettings *s = q->settings(); DebuggerSettings *s = q->settings();
if (!s->m_useCustomDumpers) if (!s->m_useDumpers)
return false; return false;
if (q->startMode() == AttachCore) { if (q->startMode() == AttachCore) {

View File

@@ -131,7 +131,7 @@ private:
void loadAllSymbols(); void loadAllSymbols();
void setDebugDumpers(bool on); void setDebugDumpers(bool on);
void setUseCustomDumpers(bool on); Q_SLOT void setUseDumpers(bool on);
// //
// Own stuff // Own stuff

View File

@@ -82,7 +82,6 @@ public:
virtual void reloadRegisters() = 0; virtual void reloadRegisters() = 0;
virtual void setDebugDumpers(bool on) = 0; virtual void setDebugDumpers(bool on) = 0;
virtual void setUseCustomDumpers(bool on) = 0;
virtual void recheckCustomDumperAvailability() = 0; virtual void recheckCustomDumperAvailability() = 0;
virtual void reloadSourceFiles() = 0; virtual void reloadSourceFiles() = 0;

View File

@@ -98,7 +98,6 @@ private:
void saveSessionData() {} void saveSessionData() {}
void setDebugDumpers(bool) {} void setDebugDumpers(bool) {}
void setUseCustomDumpers(bool) {}
void recheckCustomDumperAvailability() {} void recheckCustomDumperAvailability() {}
void assignValueInDebugger(const QString &expr, const QString &value); void assignValueInDebugger(const QString &expr, const QString &value);

View File

@@ -29,6 +29,8 @@
#include "watchwindow.h" #include "watchwindow.h"
#include "debuggeractions.h"
#include <QtCore/QDebug> #include <QtCore/QDebug>
#include <QtCore/QTimer> #include <QtCore/QTimer>
@@ -106,6 +108,7 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev)
QAction *act4 = 0; QAction *act4 = 0;
QAction *act5 = new QAction("Debugger properties...", &menu); QAction *act5 = new QAction("Debugger properties...", &menu);
QAction *act6 = new QAction("Re-check availability of custom dumpers", &menu); QAction *act6 = new QAction("Re-check availability of custom dumpers", &menu);
QAction *act7 = action(UseDumpers);
menu.addAction(act1); menu.addAction(act1);
menu.addAction(act2); menu.addAction(act2);
@@ -132,6 +135,7 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev)
} }
menu.addSeparator(); menu.addSeparator();
menu.addAction(act6); menu.addAction(act6);
menu.addAction(act7);
menu.addAction(act5); menu.addAction(act5);
QAction *act = menu.exec(ev->globalPos()); QAction *act = menu.exec(ev->globalPos());