diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/GdbCoreDebuggerPage.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/GdbCoreDebuggerPage.java index 43230042c69..18e1b8e8a9f 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/GdbCoreDebuggerPage.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/GdbCoreDebuggerPage.java @@ -207,12 +207,21 @@ public class GdbCoreDebuggerPage extends AbstractCDebuggerPage implements Observ String gdbCommand = fGDBCommandText.getText().trim(); int lastSeparatorIndex = gdbCommand.lastIndexOf(File.separator); if (lastSeparatorIndex != -1) { - dialog.setFilterPath(gdbCommand.substring(0, lastSeparatorIndex)); + String cmd = gdbCommand.substring(0, lastSeparatorIndex); + // remove double quotes, since they interfere with + // "setFilterPath()" below + cmd = cmd.replaceAll("\\\"", ""); //$NON-NLS-1$//$NON-NLS-2$ + dialog.setFilterPath(cmd); } String res = dialog.open(); if (res == null) { return; } + // path contains space(s)? + if (res.contains(" ")) { //$NON-NLS-1$ + // surround it in double quotes + res = '"' + res + '"'; + } fGDBCommandText.setText(res); } }); diff --git a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/GdbDebuggerPage.java b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/GdbDebuggerPage.java index 8f96caeebb9..751aeca2747 100644 --- a/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/GdbDebuggerPage.java +++ b/dsf-gdb/org.eclipse.cdt.dsf.gdb.ui/src/org/eclipse/cdt/dsf/gdb/internal/ui/launching/GdbDebuggerPage.java @@ -365,12 +365,21 @@ public class GdbDebuggerPage extends AbstractCDebuggerPage implements Observer { String gdbCommand = fGDBCommandText.getText().trim(); int lastSeparatorIndex = gdbCommand.lastIndexOf(File.separator); if (lastSeparatorIndex != -1) { - dialog.setFilterPath(gdbCommand.substring(0, lastSeparatorIndex)); + String cmd = gdbCommand.substring(0, lastSeparatorIndex); + // remove double quotes, since they interfere with + // "setFilterPath()" below + cmd = cmd.replaceAll("\\\"", ""); //$NON-NLS-1$//$NON-NLS-2$ + dialog.setFilterPath(cmd); } String res = dialog.open(); if (res == null) { return; } + // path contains space(s)? + if (res.contains(" ")) { //$NON-NLS-1$ + // surround it in double quotes + res = '"' + res + '"'; + } fGDBCommandText.setText(res); } }); diff --git a/launch/org.eclipse.cdt.docker.launcher/src/org/eclipse/cdt/internal/docker/launcher/GdbDebuggerPage.java b/launch/org.eclipse.cdt.docker.launcher/src/org/eclipse/cdt/internal/docker/launcher/GdbDebuggerPage.java index 01ad626dfaa..073ba62effb 100644 --- a/launch/org.eclipse.cdt.docker.launcher/src/org/eclipse/cdt/internal/docker/launcher/GdbDebuggerPage.java +++ b/launch/org.eclipse.cdt.docker.launcher/src/org/eclipse/cdt/internal/docker/launcher/GdbDebuggerPage.java @@ -347,13 +347,21 @@ public class GdbDebuggerPage extends AbstractCDebuggerPage implements Observer { String gdbCommand = fGDBCommandText.getText().trim(); int lastSeparatorIndex = gdbCommand.lastIndexOf(File.separator); if (lastSeparatorIndex != -1) { - dialog.setFilterPath( - gdbCommand.substring(0, lastSeparatorIndex)); + String cmd = gdbCommand.substring(0, lastSeparatorIndex); + // remove double quotes, since they interfere with + // "setFilterPath()" below + cmd = cmd.replaceAll("\\\"", ""); //$NON-NLS-1$//$NON-NLS-2$ + dialog.setFilterPath(cmd); } String res = dialog.open(); if (res == null) { return; } + // path contains space(s)? + if (res.contains(" ")) { //$NON-NLS-1$ + // surround it in double quotes + res = '"' + res + '"'; + } fGDBCommandText.setText(res); } }); diff --git a/llvm/org.eclipse.cdt.llvm.dsf.lldb.ui/src/org/eclipse/cdt/llvm/dsf/lldb/ui/internal/LLDBCDebuggerPage.java b/llvm/org.eclipse.cdt.llvm.dsf.lldb.ui/src/org/eclipse/cdt/llvm/dsf/lldb/ui/internal/LLDBCDebuggerPage.java index 1d5eafa72e4..abba8a1a248 100644 --- a/llvm/org.eclipse.cdt.llvm.dsf.lldb.ui/src/org/eclipse/cdt/llvm/dsf/lldb/ui/internal/LLDBCDebuggerPage.java +++ b/llvm/org.eclipse.cdt.llvm.dsf.lldb.ui/src/org/eclipse/cdt/llvm/dsf/lldb/ui/internal/LLDBCDebuggerPage.java @@ -72,12 +72,21 @@ public class LLDBCDebuggerPage extends AbstractCDebuggerPage { String lldbCommand = fLLDBCommandText.getText().trim(); int lastSeparatorIndex = lldbCommand.lastIndexOf(File.separator); if (lastSeparatorIndex != -1) { - dialog.setFilterPath(lldbCommand.substring(0, lastSeparatorIndex)); + String cmd = lldbCommand.substring(0, lastSeparatorIndex); + // remove double quotes, since they interfere with + // "setFilterPath()" below + cmd = cmd.replaceAll("\\\"", ""); //$NON-NLS-1$//$NON-NLS-2$ + dialog.setFilterPath(cmd); } String res = dialog.open(); if (res == null) { return; } + // path contains space(s)? + if (res.contains(" ")) { //$NON-NLS-1$ + // surround it in double quotes + res = '"' + res + '"'; + } fLLDBCommandText.setText(res); } });