Handle various CDB output windows.

Add modules, threads and register view. Refactor register format code.
This commit is contained in:
Friedemann Kleint
2009-04-09 16:51:13 +02:00
parent e6843ff5bc
commit 6d4d19dfa8
16 changed files with 572 additions and 141 deletions

View File

@@ -54,7 +54,7 @@ namespace Internal {
//////////////////////////////////////////////////////////////////////////
DebuggerSettings::DebuggerSettings(QObject *parent)
: QObject(parent)
: QObject(parent), m_registerFormatGroup(0)
{}
DebuggerSettings::~DebuggerSettings()
@@ -74,25 +74,25 @@ void DebuggerSettings::readSettings(QSettings *settings)
item->readSettings(settings);
}
void DebuggerSettings::writeSettings(QSettings *settings)
void DebuggerSettings::writeSettings(QSettings *settings) const
{
foreach (SavedAction *item, m_items)
item->writeSettings(settings);
}
SavedAction *DebuggerSettings::item(int code)
SavedAction *DebuggerSettings::item(int code) const
{
QTC_ASSERT(m_items.value(code, 0), return 0);
return m_items.value(code, 0);
}
QString DebuggerSettings::dump()
QString DebuggerSettings::dump() const
{
QString out;
QTextStream ts(&out);
ts << "Debugger settings: ";
foreach (SavedAction *item, m_items)
ts << "\n" << item->value().toString();
ts << '\n' << item->value().toString();
return out;
}
@@ -153,27 +153,27 @@ DebuggerSettings *DebuggerSettings::instance()
//
// DebuggingHelper
//
const QString debugModeGroup = QLatin1String("DebugMode");
item = new SavedAction(instance);
instance->insertItem(UseDebuggingHelpers, item);
item->setDefaultValue(true);
item->setSettingsKey("DebugMode", "UseDebuggingHelper");
item->setSettingsKey(debugModeGroup, QLatin1String("UseDebuggingHelper"));
item->setText(tr("Use Debugging Helper"));
item->setCheckable(true);
item->setDefaultValue(true);
item = new SavedAction(instance);
instance->insertItem(UseCustomDebuggingHelperLocation, item);
item->setSettingsKey("DebugMode", "CustomDebuggingHelperLocation");
item->setSettingsKey(debugModeGroup, QLatin1String("CustomDebuggingHelperLocation"));
item->setCheckable(true);
item = new SavedAction(instance);
instance->insertItem(CustomDebuggingHelperLocation, item);
item->setSettingsKey("DebugMode", "CustomDebuggingHelperLocation");
item->setSettingsKey(debugModeGroup, QLatin1String("CustomDebuggingHelperLocation"));
item = new SavedAction(instance);
instance->insertItem(DebugDebuggingHelpers, item);
item->setSettingsKey("DebugMode", "DebugDebuggingHelpers");
item->setSettingsKey(debugModeGroup, QLatin1String("DebugDebuggingHelpers"));
item->setText(tr("Debug debugging helper"));
item->setCheckable(true);
@@ -193,115 +193,120 @@ DebuggerSettings *DebuggerSettings::instance()
// Registers
//
QActionGroup *registerFormatGroup = new QActionGroup(instance);
registerFormatGroup->setExclusive(true);
instance->m_registerFormatGroup = new QActionGroup(instance);
instance->m_registerFormatGroup->setExclusive(true);
item = new SavedAction(instance);
item->setText(tr("Hexadecimal"));
item->setCheckable(true);
item->setSettingsKey("DebugMode", "FormatHexadecimal");
item->setSettingsKey(debugModeGroup, QLatin1String("FormatHexadecimal"));
item->setChecked(true);
item->setData(FormatHexadecimal);
instance->insertItem(FormatHexadecimal, item);
registerFormatGroup->addAction(item);
instance->m_registerFormatGroup->addAction(item);
item = new SavedAction(instance);
item->setText(tr("Decimal"));
item->setCheckable(true);
item->setSettingsKey("DebugMode", "FormatDecimal");
item->setSettingsKey(debugModeGroup, QLatin1String("FormatDecimal"));
item->setData(FormatDecimal);
instance->insertItem(FormatDecimal, item);
registerFormatGroup->addAction(item);
instance->m_registerFormatGroup->addAction(item);
item = new SavedAction(instance);
item->setText(tr("Octal"));
item->setCheckable(true);
item->setSettingsKey("DebugMode", "FormatOctal");
item->setSettingsKey(debugModeGroup, QLatin1String("FormatOctal"));
item->setData(FormatOctal);
instance->insertItem(FormatOctal, item);
registerFormatGroup->addAction(item);
instance->m_registerFormatGroup->addAction(item);
item = new SavedAction(instance);
item->setText(tr("Binary"));
item->setCheckable(true);
item->setSettingsKey("DebugMode", "FormatBinary");
item->setSettingsKey(debugModeGroup, QLatin1String("FormatBinary"));
item->setData(FormatBinary);
instance->insertItem(FormatBinary, item);
registerFormatGroup->addAction(item);
instance->m_registerFormatGroup->addAction(item);
item = new SavedAction(instance);
item->setText(tr("Raw"));
item->setCheckable(true);
item->setSettingsKey("DebugMode", "FormatRaw");
item->setSettingsKey(debugModeGroup, QLatin1String("FormatRaw"));
instance->insertItem(FormatRaw, item);
registerFormatGroup->addAction(item);
item->setData(FormatRaw);
instance->m_registerFormatGroup->addAction(item);
item = new SavedAction(instance);
item->setText(tr("Natural"));
item->setCheckable(true);
item->setSettingsKey("DebugMode", "FormatNatural");
item->setSettingsKey(debugModeGroup, QLatin1String("FormatNatural"));
item->setData(FormatNatural);
instance->insertItem(FormatNatural, item);
registerFormatGroup->addAction(item);
instance->m_registerFormatGroup->addAction(item);
//
// Settings
//
item = new SavedAction(instance);
item->setSettingsKey("DebugMode", "Location");
item->setSettingsKey(debugModeGroup, QLatin1String("Location"));
instance->insertItem(GdbLocation, item);
item = new SavedAction(instance);
item->setSettingsKey("DebugMode", "Environment");
item->setSettingsKey(debugModeGroup, QLatin1String("Environment"));
instance->insertItem(GdbEnvironment, item);
item = new SavedAction(instance);
item->setSettingsKey("DebugMode", "ScriptFile");
item->setSettingsKey(debugModeGroup, QLatin1String("ScriptFile"));
instance->insertItem(GdbScriptFile, item);
item = new SavedAction(instance);
item->setSettingsKey("DebugMode", "AutoQuit");
item->setSettingsKey(debugModeGroup, QLatin1String("AutoQuit"));
item->setText(tr("Automatically quit debugger"));
item->setCheckable(true);
instance->insertItem(AutoQuit, item);
item = new SavedAction(instance);
item->setSettingsKey("DebugMode", "UseToolTips");
item->setSettingsKey(debugModeGroup, QLatin1String("UseToolTips"));
item->setText(tr("Use tooltips when debugging"));
item->setCheckable(true);
instance->insertItem(UseToolTips, item);
item = new SavedAction(instance);
item->setDefaultValue("xterm");
item->setSettingsKey("DebugMode", "Terminal");
item->setDefaultValue(QLatin1String("xterm"));
item->setSettingsKey(debugModeGroup, QLatin1String("Terminal"));
instance->insertItem(TerminalApplication, item);
item = new SavedAction(instance);
item->setSettingsKey("DebugMode", "ListSourceFiles");
item->setSettingsKey(debugModeGroup, QLatin1String("ListSourceFiles"));
item->setText(tr("List source files"));
item->setCheckable(true);
instance->insertItem(ListSourceFiles, item);
item = new SavedAction(instance);
item->setSettingsKey("DebugMode", "SkipKnownFrames");
item->setSettingsKey(debugModeGroup, QLatin1String("SkipKnownFrames"));
item->setText(tr("Skip known frames"));
item->setCheckable(true);
instance->insertItem(SkipKnownFrames, item);
item = new SavedAction(instance);
item->setSettingsKey("DebugMode", "AllPluginBreakpoints");
item->setSettingsKey(debugModeGroup, QLatin1String("AllPluginBreakpoints"));
instance->insertItem(AllPluginBreakpoints, item);
item = new SavedAction(instance);
item->setSettingsKey("DebugMode", "SelectedPluginBreakpoints");
item->setSettingsKey(debugModeGroup, QLatin1String("SelectedPluginBreakpoints"));
instance->insertItem(SelectedPluginBreakpoints, item);
item = new SavedAction(instance);
item->setSettingsKey("DebugMode", "NoPluginBreakpoints");
item->setSettingsKey(debugModeGroup, QLatin1String("NoPluginBreakpoints"));
instance->insertItem(NoPluginBreakpoints, item);
item = new SavedAction(instance);
item->setSettingsKey("DebugMode", "SelectedPluginBreakpointsPattern");
item->setSettingsKey(debugModeGroup, QLatin1String("SelectedPluginBreakpointsPattern"));
instance->insertItem(SelectedPluginBreakpointsPattern, item);
item = new SavedAction(instance);
item->setSettingsKey("DebugMode", "MaximalStackDepth");
item->setSettingsKey(debugModeGroup, QLatin1String("MaximalStackDepth"));
item->setDefaultValue(20);
instance->insertItem(MaximalStackDepth, item);
@@ -316,6 +321,11 @@ DebuggerSettings *DebuggerSettings::instance()
return instance;
}
int DebuggerSettings::checkedRegisterFormatAction() const
{
return m_registerFormatGroup->checkedAction()->data().toInt();
}
//////////////////////////////////////////////////////////////////////////
//
// DebuggerActions
@@ -327,6 +337,11 @@ SavedAction *theDebuggerAction(int code)
return DebuggerSettings::instance()->item(code);
}
int checkedRegisterFormatAction()
{
return DebuggerSettings::instance()->checkedRegisterFormatAction();
}
bool theDebuggerBoolSetting(int code)
{
return DebuggerSettings::instance()->item(code)->value().toBool();