Skip to content

Commit

Permalink
Merge pull request #209 from epasveer/199-add-a-way-to-set-working-di…
Browse files Browse the repository at this point in the history
…rectory-when-connecting-to-remote-gdb-is-used

199 add a way to set working directory when connecting to remote gdb is used
  • Loading branch information
epasveer authored Dec 26, 2023
2 parents 1f30513 + 17289cc commit c55fe5e
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 41 deletions.
4 changes: 4 additions & 0 deletions src/SeerDebugDialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -803,6 +803,8 @@ void SeerDebugDialog::handleRunModeChanged (int id) {
executableNameToolButton->setEnabled(true);
executableSymbolNameLineEdit->setEnabled(true);
executableSymbolNameToolButton->setEnabled(true);
executableWorkingDirectoryLineEdit->setEnabled(true);
executableWorkingDirectoryToolButton->setEnabled(true);
preCommandsPlainTextEdit->setPlaceholderText("gdb commands before \"attach\"");
postCommandsPlainTextEdit->setPlaceholderText("gdb commands after \"attach\"");
}
Expand All @@ -811,6 +813,8 @@ void SeerDebugDialog::handleRunModeChanged (int id) {
if (id == 2) {
executableSymbolNameLineEdit->setEnabled(true);
executableSymbolNameToolButton->setEnabled(true);
executableWorkingDirectoryLineEdit->setEnabled(true);
executableWorkingDirectoryToolButton->setEnabled(true);
preCommandsPlainTextEdit->setPlaceholderText("gdb commands before \"connect\"");
postCommandsPlainTextEdit->setPlaceholderText("gdb commands after \"connect\"");
}
Expand Down
60 changes: 19 additions & 41 deletions src/SeerDebugDialog.ui
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@
</sizepolicy>
</property>
<property name="currentIndex">
<number>0</number>
<number>1</number>
</property>
<widget class="QWidget" name="runTab">
<property name="sizePolicy">
Expand Down Expand Up @@ -492,7 +492,7 @@
<attribute name="title">
<string>Attach</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_8">
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_9">
<item>
Expand Down Expand Up @@ -532,28 +532,22 @@
</layout>
</item>
<item row="1" column="0">
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_12">
<item>
<widget class="QLabel" name="attachProgramPidLabel">
<property name="text">
<string>Process PID</string>
</property>
</widget>
</item>
<item row="0" column="1">
<item>
<widget class="QLineEdit" name="attachProgramPidLineEdit">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>100</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>200</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>The process pid.</string>
</property>
Expand All @@ -568,7 +562,7 @@
</property>
</widget>
</item>
<item row="0" column="2">
<item>
<widget class="QToolButton" name="attachProgramPidToolButton">
<property name="toolTip">
<string>Open a dialog to select a pid on the local system.</string>
Expand All @@ -578,37 +572,21 @@
</property>
</widget>
</item>
<item row="0" column="3">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>468</width>
<height>24</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="3">
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>418</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="2" column="0">
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>192</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="connectTab">
Expand Down
3 changes: 3 additions & 0 deletions src/SeerGdbWidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -987,6 +987,7 @@ void SeerGdbWidget::handleGdbRunExecutable (const QString& breakMode) {
setNewExecutableFlag(false);
}

// Set or reset some things.
handleGdbExecutableWorkingDirectory(); // Set the program's working directory before running.
handleGdbAssemblyDisassemblyFlavor(); // Set the disassembly flavor to use.
handleGdbAssemblySymbolDemangling(); // Set the symbol demangling.
Expand Down Expand Up @@ -1863,6 +1864,8 @@ void SeerGdbWidget::handleGdbExecutableWorkingDirectory () {
return;
}

qDebug() << executableWorkingDirectory();

if (executableWorkingDirectory() != "") {
handleGdbCommand(QString("-environment-cd \"") + executableWorkingDirectory() + "\"");
}
Expand Down
1 change: 1 addition & 0 deletions src/resources/help/seergdb.hlp
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ Arguments:

Misc Options:

--cwd, --working-dir <path> Set gdb's working directory path.
--sym, --symbol-file <symbolfilename> Load symbols from a separate file than the executable.
--bl, --break-load <filename> Load a previously saved breakpoints file. For 'run', 'start', or 'rr'.
--bf, --break-function <function> Set a breakpoint in a function/address. For 'run' or 'start'.
Expand Down
10 changes: 10 additions & 0 deletions src/seergdb.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,9 @@ int main (int argc, char* argv[]) {
QCommandLineOption configOption(QStringList() << "config");
parser.addOption(configOption);

QCommandLineOption workingdirOption(QStringList() << "cwd" << "working-dir", "", "workingdirectory");
parser.addOption(workingdirOption);

QCommandLineOption symbolfileOption(QStringList() << "sym" << "symbol-file", "", "symbolfile");
parser.addOption(symbolfileOption);

Expand Down Expand Up @@ -155,6 +158,7 @@ int main (int argc, char* argv[]) {
int executablePid = -1;
QString executableConnectHostPort;
QString executableRRTraceDirectory;
QString executableWorkingDirectory;
QString executableSymbolFilename;
QString executableBreakpointsFilename;
QString executableBreakpointFunctionName;
Expand All @@ -177,6 +181,10 @@ int main (int argc, char* argv[]) {
breakMode = "inmain";
}

if (parser.isSet(workingdirOption)) {
executableWorkingDirectory = parser.value(workingdirOption);
}

if (parser.isSet(symbolfileOption)) {
executableSymbolFilename = parser.value(symbolfileOption);
}
Expand Down Expand Up @@ -266,6 +274,7 @@ int main (int argc, char* argv[]) {

seer.setWindowIcon(QIcon(":/seer/resources/seergdb_64x64.png"));
seer.setExecutableName(executableName);
seer.setExecutableWorkingDirectory(executableWorkingDirectory);
seer.setExecutableSymbolName(executableSymbolFilename);
seer.setExecutableArguments(positionalArguments);

Expand Down Expand Up @@ -329,6 +338,7 @@ int main (int argc, char* argv[]) {
}

qDebug() << "EXECUTABLENAME" << executableName;
qDebug() << "WORKINGDIRECTORY" << executableWorkingDirectory;
qDebug() << "SYMBOLNAME" << executableSymbolFilename;
qDebug() << "PID" << executablePid;
qDebug() << "CONNECTHOST" << executableConnectHostPort;
Expand Down

0 comments on commit c55fe5e

Please sign in to comment.