mirror of
https://github.com/epasveer/seer.git
synced 2026-08-29 08:34:42 +08:00
Working on custom gdb commands for "connect" mode.
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
|
||||
A good example for writing/reading a JSON file. For example, Seer's 'pre' and 'post' CONNECT mode.
|
||||
|
||||
https://stackoverflow.com/questions/61075951/minimal-example-on-how-to-read-write-and-print-qjson-code-with-qjsondocument
|
||||
|
||||
|
||||
+12
-2
@@ -330,10 +330,14 @@ void SeerDebugDialog::handleRunModeChanged (int id) {
|
||||
// Disable all imprortant widgets.
|
||||
//
|
||||
|
||||
// ID == 0 RUN/START
|
||||
executableNameLineEdit->setEnabled(false);
|
||||
executableNameToolButton->setEnabled(false);
|
||||
executableSymbolNameLineEdit->setEnabled(false);
|
||||
executableSymbolNameToolButton->setEnabled(false);
|
||||
executableWorkingDirectoryLineEdit->setEnabled(false);
|
||||
executableWorkingDirectoryToolButton->setEnabled(false);
|
||||
|
||||
// ID == 0 RUN/START
|
||||
runProgramArgumentsLabel->setEnabled(false);
|
||||
runProgramArgumentsLineEdit->setEnabled(false);
|
||||
loadBreakpointsFilenameLabel->setEnabled(false);
|
||||
@@ -368,8 +372,11 @@ void SeerDebugDialog::handleRunModeChanged (int id) {
|
||||
// ID == 0 RUN/START
|
||||
if (id == 0) {
|
||||
executableNameLineEdit->setEnabled(true);
|
||||
executableNameToolButton->setEnabled(true);
|
||||
executableSymbolNameLineEdit->setEnabled(true);
|
||||
executableSymbolNameToolButton->setEnabled(true);
|
||||
executableWorkingDirectoryLineEdit->setEnabled(true);
|
||||
executableWorkingDirectoryToolButton->setEnabled(true);
|
||||
runProgramArgumentsLabel->setEnabled(true);
|
||||
runProgramArgumentsLineEdit->setEnabled(true);
|
||||
loadBreakpointsFilenameLabel->setEnabled(true);
|
||||
@@ -387,7 +394,9 @@ void SeerDebugDialog::handleRunModeChanged (int id) {
|
||||
// ID == 1 ATTACH
|
||||
if (id == 1) {
|
||||
executableNameLineEdit->setEnabled(true);
|
||||
executableNameToolButton->setEnabled(true);
|
||||
executableSymbolNameLineEdit->setEnabled(true);
|
||||
executableSymbolNameToolButton->setEnabled(true);
|
||||
attachProgramPidLabel->setEnabled(true);
|
||||
attachProgramPidLineEdit->setEnabled(true);
|
||||
attachProgramPidToolButton->setEnabled(true);
|
||||
@@ -396,6 +405,7 @@ void SeerDebugDialog::handleRunModeChanged (int id) {
|
||||
// ID == 2 CONNECT
|
||||
if (id == 2) {
|
||||
executableSymbolNameLineEdit->setEnabled(true);
|
||||
executableSymbolNameToolButton->setEnabled(true);
|
||||
connectProgramHostPortLabel->setEnabled(true);
|
||||
connectProgramHostPortLineEdit->setEnabled(true);
|
||||
}
|
||||
@@ -403,7 +413,7 @@ void SeerDebugDialog::handleRunModeChanged (int id) {
|
||||
// ID == 3 CORE
|
||||
if (id == 3) {
|
||||
executableSymbolNameLineEdit->setEnabled(true);
|
||||
connectProgramHostPortLabel->setEnabled(true);
|
||||
executableSymbolNameToolButton->setEnabled(true);
|
||||
loadCoreFilenameLabel->setEnabled(true);
|
||||
loadCoreFilenameLineEdit->setEnabled(true);
|
||||
loadCoreFilenameToolButton->setEnabled(true);
|
||||
|
||||
+128
-55
@@ -13,8 +13,8 @@
|
||||
<property name="windowTitle">
|
||||
<string>Select Executable to Debug</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_9">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout_4">
|
||||
<item row="0" column="0">
|
||||
<widget class="QGroupBox" name="executableNameGroupBox">
|
||||
<property name="title">
|
||||
<string>Executable Name</string>
|
||||
@@ -72,7 +72,7 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QGroupBox" name="executableSymbolNameGroupBox">
|
||||
<property name="title">
|
||||
<string>Symbol File Name</string>
|
||||
@@ -130,7 +130,7 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QGroupBox" name="executableWorkingDirectoryGroupBox">
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
@@ -176,7 +176,7 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QGroupBox" name="launchMethodGroupBox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
@@ -187,8 +187,8 @@
|
||||
<property name="title">
|
||||
<string>Launch Method</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout_5">
|
||||
<item row="0" column="0">
|
||||
<widget class="QTabWidget" name="runModeTabWidget">
|
||||
<property name="currentIndex">
|
||||
<number>2</number>
|
||||
@@ -203,8 +203,7 @@
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Run and debug an executable.
|
||||
</string>
|
||||
<string>Run and debug an executable.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -401,8 +400,7 @@
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>Attach and debug a running process on the local machine.
|
||||
</string>
|
||||
<string>Attach and debug a running process on the local machine.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -486,63 +484,139 @@
|
||||
<attribute name="title">
|
||||
<string>Connect</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_6">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Connect to a gdbserver (or similar) session.
|
||||
</string>
|
||||
<string>Connect to a gdbserver (or similar) session.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="1" colspan="2">
|
||||
<widget class="QLineEdit" name="connectProgramHostPortLineEdit">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>100</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>How to access the remote gdbserver.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>host:port or /dev/serialport</string>
|
||||
</property>
|
||||
<property name="clearButtonEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="connectProgramHostPortLabel">
|
||||
<property name="text">
|
||||
<string>Gdbserver</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer_2">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>378</height>
|
||||
<width>248</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="helpConnectToolButton">
|
||||
<property name="toolTip">
|
||||
<string>Help for Connect launch method.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/seer/resources/RelaxLightIcons/help-about.svg</normaloff>:/seer/resources/RelaxLightIcons/help-about.svg</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QLabel" name="connectProgramHostPortLabel">
|
||||
<property name="text">
|
||||
<string>Gdbserver</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="connectProgramHostPortLineEdit">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>100</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>How to access the remote gdbserver.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>host:port or /dev/serialport</string>
|
||||
</property>
|
||||
<property name="clearButtonEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QPlainTextEdit" name="preCommandsPlainTextEdit">
|
||||
<property name="placeholderText">
|
||||
<string>gdb commands before "connect"</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" rowspan="2">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QToolButton" name="loadCommandsToolButton">
|
||||
<property name="toolTip">
|
||||
<string>Load "pre" and "post" commands from a file.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/seer/resources/RelaxLightIcons/document-open.svg</normaloff>:/seer/resources/RelaxLightIcons/document-open.svg</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="saveCommandsToolButton">
|
||||
<property name="toolTip">
|
||||
<string>Save "pre" and "post" commands to a file.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="resource.qrc">
|
||||
<normaloff>:/seer/resources/RelaxLightIcons/document-save-as.svg</normaloff>:/seer/resources/RelaxLightIcons/document-save-as.svg</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>348</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QPlainTextEdit" name="postCommandsPlainTextEdit">
|
||||
<property name="placeholderText">
|
||||
<string>gdb commands after "connect"</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
@@ -557,8 +631,7 @@
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Analyze a corefile.
|
||||
</string>
|
||||
<string>Analyze a corefile.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@@ -625,7 +698,7 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
|
||||
@@ -48,7 +48,7 @@ SeerMainWindow::SeerMainWindow(QWidget* parent) : QMainWindow(parent) {
|
||||
// Add help button.
|
||||
QToolButton* helpToolButton = new QToolButton(this);
|
||||
helpToolButton->setIcon(QIcon(":/seer/resources/RelaxLightIcons/help-about.svg"));
|
||||
helpToolButton->setToolTip("Help on source/symbol/library information.");
|
||||
helpToolButton->setToolTip("Help on Seer main window.");
|
||||
|
||||
toolBar->addWidget(helpToolButton);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user