diff --git a/src/debugAdapter/goDebug.ts b/src/debugAdapter/goDebug.ts
index a9a309e..98bdbd0 100644
--- a/src/debugAdapter/goDebug.ts
+++ b/src/debugAdapter/goDebug.ts
@@ -435,6 +435,7 @@
 							runOptions.cwd = program;
 							runArgs.push('.');
 						} else {
+							runOptions.cwd = dirname;
 							runArgs.push(program);
 						}
 						if (launchArgs.args) {
diff --git a/src/goDebugConfiguration.ts b/src/goDebugConfiguration.ts
index e4cad2a..f9fe07c 100644
--- a/src/goDebugConfiguration.ts
+++ b/src/goDebugConfiguration.ts
@@ -47,13 +47,13 @@
 				return;
 			}
 
-			debugConfiguration = {
+			debugConfiguration = Object.assign(debugConfiguration || {}, {
 				name: 'Launch',
 				type: 'go',
 				request: 'launch',
 				mode: 'auto',
 				program: activeEditor.document.fileName
-			};
+			});
 		}
 
 		debugConfiguration['packagePathToGoModPathMap'] = packagePathToGoModPathMap;
@@ -110,25 +110,33 @@
 				activeEditor && activeEditor.document.fileName.endsWith('_test.go') ? 'test' : 'debug';
 		}
 
-		const neverAgain = { title: `Don't Show Again` };
-		const ignoreWarningKey = 'ignoreDebugLaunchRemoteWarning';
-		const ignoreWarning = getFromGlobalState(ignoreWarningKey);
-		if (
-			ignoreWarning !== true &&
-			debugConfiguration.request === 'launch' &&
-			debugConfiguration['mode'] === 'remote'
-		) {
-			vscode.window
-				.showWarningMessage(
-					`Request type of 'launch' with mode 'remote' is deprecated, please use request type 'attach' with mode 'remote' instead.`,
-					neverAgain
-				)
-				.then((result) => {
-					if (result === neverAgain) {
-						updateGlobalState(ignoreWarningKey, true);
-					}
-				});
+		if (debugConfiguration.request === 'launch' && debugConfiguration['mode'] === 'remote') {
+			this.showWarning(
+				'ignoreDebugLaunchRemoteWarning',
+				`Request type of 'launch' with mode 'remote' is deprecated, please use request type 'attach' with mode 'remote' instead.`);
+		}
+
+		if (debugConfiguration.request === 'attach'
+			&& debugConfiguration['mode'] === 'remote'
+			&& debugConfiguration['program']) {
+			this.showWarning(
+				'ignoreUsingRemotePathAndProgramWarning',
+				`Request type of 'attach' with mode 'remote' does not work with 'program' attribute, please use 'cwd' attribute instead.`);
 		}
 		return debugConfiguration;
 	}
+
+	private showWarning(ignoreWarningKey: string, warningMessage: string) {
+		const ignoreWarning = getFromGlobalState(ignoreWarningKey);
+		if (ignoreWarning) {
+			return;
+		}
+
+		const neverAgain = { title: 'Don\'t Show Again' };
+		vscode.window.showWarningMessage(warningMessage, neverAgain).then((result) => {
+			if (result === neverAgain) {
+				updateGlobalState(ignoreWarningKey, true);
+			}
+		});
+	}
 }
