diff options
Diffstat (limited to 'src/plugins/debugger/gdb/gdboptionspage.cpp')
-rw-r--r-- | src/plugins/debugger/gdb/gdboptionspage.cpp | 55 |
1 files changed, 50 insertions, 5 deletions
diff --git a/src/plugins/debugger/gdb/gdboptionspage.cpp b/src/plugins/debugger/gdb/gdboptionspage.cpp index 0d023f1c09..014db0cf01 100644 --- a/src/plugins/debugger/gdb/gdboptionspage.cpp +++ b/src/plugins/debugger/gdb/gdboptionspage.cpp @@ -76,9 +76,13 @@ public: QCheckBox *checkBoxBreakOnAbort; QCheckBox *checkBoxEnableReverseDebugging; QCheckBox *checkBoxAttemptQuickStart; + QCheckBox *checkBoxMultiInferior; + QCheckBox *checkBoxIntelFlavor; QGroupBox *groupBoxStartupCommands; QTextEdit *textEditStartupCommands; + QGroupBox *groupBoxPostAttachCommands; + QTextEdit *textEditPostAttachCommands; //QGroupBox *groupBoxPluginDebugging; //QRadioButton *radioButtonAllPluginBreakpoints; @@ -183,6 +187,7 @@ GdbOptionsPageWidget::GdbOptionsPageWidget(QWidget *parent) "of debug information such as <i>/usr/src/debug</i> " "when starting GDB.</body></html>")); + // #fixme: 2.7 Move to common settings page. checkBoxBreakOnWarning = new QCheckBox(groupBoxGeneral); checkBoxBreakOnWarning->setText(CommonOptionsPage::msgSetBreakpointAtFunction("qWarning")); checkBoxBreakOnWarning->setToolTip(CommonOptionsPage::msgSetBreakpointAtFunctionToolTip("qWarning")); @@ -210,13 +215,30 @@ GdbOptionsPageWidget::GdbOptionsPageWidget(QWidget *parent) "This can result in faster startup times at the price of not being able to " "set breakpoints by file and number.</body></html>")); + checkBoxMultiInferior = new QCheckBox(groupBoxGeneral); + checkBoxMultiInferior->setText(GdbOptionsPage::tr("Debug all children")); + checkBoxMultiInferior->setToolTip(GdbOptionsPage::tr( + "<html><head/><body>Keep debugging all children after a fork." + "</body></html>")); + + checkBoxIntelFlavor = new QCheckBox(groupBoxGeneral); + checkBoxIntelFlavor->setText(GdbOptionsPage::tr("Use Intel style disassembly")); + checkBoxIntelFlavor->setToolTip(GdbOptionsPage::tr( + "<html><head/><body>GDB shows by default AT&&T style disassembly." + "</body></html>")); + groupBoxStartupCommands = new QGroupBox(this); groupBoxStartupCommands->setTitle(GdbOptionsPage::tr("Additional Startup Commands")); groupBoxStartupCommands->setToolTip(GdbOptionsPage::tr( "<html><head/><body><p>GDB commands entered here will be executed after " "GDB has been started and the debugging helpers have been initialized.</p>" "<p>You can add commands to load further debugging helpers here, or " - "modify existing ones.</p><p>To execute arbitrary Python scripts, " + "modify existing ones.</p>" + "<p>To execute simple Python commands, prefix them with \"python\".</p>" + "<p>To execute sequences of Python commands spanning multiple lines " + "prepend the block with \"python\" on a separate line, and append " + "\"end\" on a separate line.</p>" + "<p>To execute arbitrary Python scripts, " "use <i>python execfile('/path/to/script.py')</i>.</p>" "</body></html>")); @@ -224,6 +246,19 @@ GdbOptionsPageWidget::GdbOptionsPageWidget(QWidget *parent) textEditStartupCommands->setAcceptRichText(false); textEditStartupCommands->setToolTip(groupBoxStartupCommands->toolTip()); + groupBoxPostAttachCommands = new QGroupBox(this); + groupBoxPostAttachCommands->setTitle(GdbOptionsPage::tr("Additional Attach Commands")); + groupBoxPostAttachCommands->setToolTip(GdbOptionsPage::tr( + "<html><head/><body><p>GDB commands entered here will be executed after " + "GDB has successfully attached to remote targets.</p>" + "<p>You can add commands to further set up the target here, " + "such as \"monitor reset\" or \"load\"." + "</body></html>")); + + textEditPostAttachCommands = new QTextEdit(groupBoxPostAttachCommands); + textEditPostAttachCommands->setAcceptRichText(false); + textEditPostAttachCommands->setToolTip(groupBoxPostAttachCommands->toolTip()); + /* groupBoxPluginDebugging = new QGroupBox(q); groupBoxPluginDebugging->setTitle(GdbOptionsPage::tr( @@ -258,6 +293,7 @@ GdbOptionsPageWidget::GdbOptionsPageWidget(QWidget *parent) formLayout->addRow(checkBoxUseDynamicType); formLayout->addRow(checkBoxLoadGdbInit); formLayout->addRow(checkBoxWarnOnReleaseBuilds); + formLayout->addRow(checkBoxIntelFlavor); formLayout->addRow(labelDangerous); formLayout->addRow(checkBoxTargetAsync); formLayout->addRow(checkBoxAutoEnrichParameters); @@ -266,18 +302,23 @@ GdbOptionsPageWidget::GdbOptionsPageWidget(QWidget *parent) formLayout->addRow(checkBoxBreakOnAbort); formLayout->addRow(checkBoxEnableReverseDebugging); formLayout->addRow(checkBoxAttemptQuickStart); + formLayout->addRow(checkBoxMultiInferior); QGridLayout *startLayout = new QGridLayout(groupBoxStartupCommands); startLayout->addWidget(textEditStartupCommands, 0, 0, 1, 1); + QGridLayout *postAttachLayout = new QGridLayout(groupBoxPostAttachCommands); + postAttachLayout->addWidget(textEditPostAttachCommands, 0, 0, 1, 1); + //QHBoxLayout *horizontalLayout = new QHBoxLayout(); //horizontalLayout->addItem(new QSpacerItem(10, 10, QSizePolicy::Preferred, QSizePolicy::Minimum)); //horizontalLayout->addWidget(labelSelectedPluginBreakpoints); //horizontalLayout->addWidget(lineEditSelectedPluginBreakpointsPattern); QGridLayout *gridLayout = new QGridLayout(this); - gridLayout->addWidget(groupBoxGeneral, 0, 0); - gridLayout->addWidget(groupBoxStartupCommands, 0, 1); + gridLayout->addWidget(groupBoxGeneral, 0, 0, 2, 1); + gridLayout->addWidget(groupBoxStartupCommands, 0, 1, 1, 1); + gridLayout->addWidget(groupBoxPostAttachCommands, 1, 1, 1, 1); //gridLayout->addWidget(groupBoxStartupCommands, 0, 1, 1, 1); //gridLayout->addWidget(radioButtonAllPluginBreakpoints, 0, 0, 1, 1); @@ -289,6 +330,7 @@ GdbOptionsPageWidget::GdbOptionsPageWidget(QWidget *parent) DebuggerCore *dc = debuggerCore(); group.insert(dc->action(GdbStartupCommands), textEditStartupCommands); + group.insert(dc->action(GdbPostAttachCommands), textEditPostAttachCommands); group.insert(dc->action(LoadGdbInit), checkBoxLoadGdbInit); group.insert(dc->action(AutoEnrichParameters), checkBoxAutoEnrichParameters); group.insert(dc->action(UseDynamicType), checkBoxUseDynamicType); @@ -300,6 +342,8 @@ GdbOptionsPageWidget::GdbOptionsPageWidget(QWidget *parent) group.insert(dc->action(BreakOnAbort), checkBoxBreakOnAbort); group.insert(dc->action(GdbWatchdogTimeout), spinBoxGdbWatchdogTimeout); group.insert(dc->action(AttemptQuickStart), checkBoxAttemptQuickStart); + group.insert(dc->action(MultiInferior), checkBoxMultiInferior); + group.insert(dc->action(IntelFlavor), checkBoxIntelFlavor); group.insert(dc->action(UseMessageBoxForSignals), checkBoxUseMessageBoxForSignals); group.insert(dc->action(SkipKnownFrames), checkBoxSkipKnownFrames); @@ -324,6 +368,7 @@ GdbOptionsPageWidget::GdbOptionsPageWidget(QWidget *parent) << sep << checkBoxUseMessageBoxForSignals->text() << sep << checkBoxAdjustBreakpointLocations->text() << sep << checkBoxAttemptQuickStart->text() + << sep << checkBoxMultiInferior->text() // << sep << groupBoxPluginDebugging->title() // << sep << radioButtonAllPluginBreakpoints->text() // << sep << radioButtonSelectedPluginBreakpoints->text() @@ -335,9 +380,9 @@ GdbOptionsPageWidget::GdbOptionsPageWidget(QWidget *parent) GdbOptionsPage::GdbOptionsPage() { - setId(QLatin1String("M.Gdb")); + setId("M.Gdb"); setDisplayName(tr("GDB")); - setCategory(QLatin1String(Constants::DEBUGGER_SETTINGS_CATEGORY)); + setCategory(Constants::DEBUGGER_SETTINGS_CATEGORY); setDisplayCategory(QCoreApplication::translate("Debugger", Constants::DEBUGGER_SETTINGS_TR_CATEGORY)); setCategoryIcon(QLatin1String(Constants::DEBUGGER_COMMON_SETTINGS_CATEGORY_ICON)); } |