Bug 550963: Provide 'reset and halt' commands

Change-Id: I4008d11f8a5f80bc70976ef7e4ddfcabbac13514
Signed-off-by: John Dallaway <john@dallaway.org.uk>
diff --git a/jtag/org.eclipse.cdt.debug.gdbjtag.core/META-INF/MANIFEST.MF b/jtag/org.eclipse.cdt.debug.gdbjtag.core/META-INF/MANIFEST.MF
index 4bacd77..2017101 100644
--- a/jtag/org.eclipse.cdt.debug.gdbjtag.core/META-INF/MANIFEST.MF
+++ b/jtag/org.eclipse.cdt.debug.gdbjtag.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.cdt.debug.gdbjtag.core;singleton:=true
-Bundle-Version: 9.3.0.qualifier
+Bundle-Version: 9.3.100.qualifier
 Bundle-Activator: org.eclipse.cdt.debug.gdbjtag.core.Activator
 Bundle-Localization: plugin
 Require-Bundle: org.eclipse.core.runtime,
diff --git a/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/AbatronBDI2000.java b/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/AbatronBDI2000.java
index 76b2a4e..9e9685f 100644
--- a/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/AbatronBDI2000.java
+++ b/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/AbatronBDI2000.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2012 QNX Software Systems and others.
+ * Copyright (c) 2008, 2019 QNX Software Systems and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -11,25 +11,27 @@
  * Contributors:
  *     QNX Software Systems - Initial API and implementation
  *     Andy Jin - Hardware debugging UI improvements, bug 229946
+ *     John Dallaway - Provide 'reset and halt' command, bug 550963
  *******************************************************************************/
 package org.eclipse.cdt.debug.gdbjtag.core.jtagdevice;
 
+import java.util.Collection;
+
 public class AbatronBDI2000 extends DefaultGDBJtagDeviceImpl {
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.DefaultGDBJtagDeviceImpl#getDefaultIpAddress()
-	 */
 	@Override
 	public String getDefaultIpAddress() {
-		return "bdi2000";
+		return "bdi2000"; //$NON-NLS-1$
 	}
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.DefaultGDBJtagDeviceImpl#getDefaultPortNumber()
-	 */
 	@Override
 	public String getDefaultPortNumber() {
-		return "2001";
+		return "2001"; //$NON-NLS-1$
+	}
+
+	@Override
+	public void doResetAndHalt(Collection<String> commands) {
+		addCmd(commands, "monitor reset halt"); //$NON-NLS-1$
 	}
 
 }
diff --git a/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/MacraigorUsb2Demon.java b/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/MacraigorUsb2Demon.java
index 0d471cb..e36ea08 100644
--- a/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/MacraigorUsb2Demon.java
+++ b/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/MacraigorUsb2Demon.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2012 QNX Software Systems and others.
+ * Copyright (c) 2008, 2019 QNX Software Systems and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -11,6 +11,7 @@
  * Contributors:
  *     QNX Software Systems - Initial API and implementation
  *     Andy Jin - Hardware debugging UI improvements, bug 229946
+ *     John Dallaway - Provide 'reset and halt' command, bug 550963
  *******************************************************************************/
 package org.eclipse.cdt.debug.gdbjtag.core.jtagdevice;
 
@@ -22,28 +23,24 @@
  */
 public class MacraigorUsb2Demon extends DefaultGDBJtagDeviceImpl {
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.DefaultGDBJtagDeviceImpl#getDefaultPortNumber()
-	 */
 	@Override
 	public String getDefaultPortNumber() {
-		return "8888";
+		return "8888"; //$NON-NLS-1$
 	}
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.DefaultGDBJtagDeviceImpl#doDelay(int, java.util.Collection)
-	 */
 	@Override
 	public void doDelay(int delay, Collection<String> commands) {
-		super.addCmd(commands, "monitor sleep " + String.valueOf(delay));
+		addCmd(commands, "monitor sleep " + String.valueOf(delay)); //$NON-NLS-1$
 	}
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.DefaultGDBJtagDeviceImpl#doReset(java.util.Collection)
-	 */
 	@Override
 	public void doReset(Collection<String> commands) {
-		super.addCmd(commands, "monitor resetrun");
+		addCmd(commands, "monitor resetrun"); //$NON-NLS-1$
+	}
+
+	@Override
+	public void doResetAndHalt(Collection<String> commands) {
+		addCmd(commands, "monitor reset"); //$NON-NLS-1$
 	}
 
 }
diff --git a/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/OpenOCDPipe.java b/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/OpenOCDPipe.java
index a13c3a7..46abc6d 100644
--- a/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/OpenOCDPipe.java
+++ b/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/OpenOCDPipe.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2018 QNX Software Systems and others.
+ * Copyright (c) 2008, 2019 QNX Software Systems and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -12,6 +12,7 @@
  *     QNX Software Systems - Initial API and implementation
  *     Andy Jin - Hardware debugging UI improvements, bug 229946
  *     John Dallaway - OpenOCD extensions, bug 494059
+ *     John Dallaway - Provide 'reset and halt' command, bug 550963
  *******************************************************************************/
 package org.eclipse.cdt.debug.gdbjtag.core.jtagdevice;
 
@@ -22,12 +23,14 @@
  */
 public class OpenOCDPipe extends DefaultGDBJtagConnectionImpl {
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.DefaultGDBJtagConnectionImpl#doDelay(int, java.util.Collection)
-	 */
 	@Override
 	public void doDelay(int delay, Collection<String> commands) {
 		addCmd(commands, "monitor sleep " + String.valueOf(delay * 1000)); //$NON-NLS-1$
 	}
 
+	@Override
+	public void doResetAndHalt(Collection<String> commands) {
+		addCmd(commands, "monitor reset halt"); //$NON-NLS-1$
+	}
+
 }
diff --git a/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/OpenOCDSocket.java b/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/OpenOCDSocket.java
index b3d2c62..5eaf676 100644
--- a/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/OpenOCDSocket.java
+++ b/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/OpenOCDSocket.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2008, 2018 QNX Software Systems and others.
+ * Copyright (c) 2008, 2019 QNX Software Systems and others.
  *
  * This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License 2.0
@@ -12,6 +12,7 @@
  *     QNX Software Systems - Initial API and implementation
  *     Andy Jin - Hardware debugging UI improvements, bug 229946
  *     John Dallaway - OpenOCD extensions, bug 494059
+ *     John Dallaway - Provide 'reset and halt' command, bug 550963
  *******************************************************************************/
 package org.eclipse.cdt.debug.gdbjtag.core.jtagdevice;
 
@@ -22,20 +23,19 @@
  */
 public class OpenOCDSocket extends DefaultGDBJtagDeviceImpl {
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.DefaultGDBJtagDeviceImpl#getDefaultPortNumber()
-	 */
 	@Override
 	public String getDefaultPortNumber() {
 		return "3333"; //$NON-NLS-1$
 	}
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.DefaultGDBJtagDeviceImpl#doDelay(int, java.util.Collection)
-	 */
 	@Override
 	public void doDelay(int delay, Collection<String> commands) {
 		addCmd(commands, "monitor sleep " + String.valueOf(delay * 1000)); //$NON-NLS-1$
 	}
 
+	@Override
+	public void doResetAndHalt(Collection<String> commands) {
+		addCmd(commands, "monitor reset halt"); //$NON-NLS-1$
+	}
+
 }
diff --git a/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/SeggerJLink.java b/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/SeggerJLink.java
index 1441305..b86e072 100644
--- a/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/SeggerJLink.java
+++ b/jtag/org.eclipse.cdt.debug.gdbjtag.core/src/org/eclipse/cdt/debug/gdbjtag/core/jtagdevice/SeggerJLink.java
@@ -12,6 +12,7 @@
  *     QNX Software Systems - Initial API and implementation
  *     Andy Jin - Hardware debugging UI improvements, bug 229946
  *     John Dallaway - SEGGER J-Link extension, bug 548281
+ *     John Dallaway - Provide 'reset and halt' command, bug 550963
  *******************************************************************************/
 package org.eclipse.cdt.debug.gdbjtag.core.jtagdevice;
 
@@ -22,29 +23,25 @@
  */
 public class SeggerJLink extends DefaultGDBJtagDeviceImpl {
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.DefaultGDBJtagDeviceImpl#getDefaultPortNumber()
-	 */
 	@Override
 	public String getDefaultPortNumber() {
 		return "2331"; //$NON-NLS-1$
 	}
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.DefaultGDBJtagDeviceImpl#doDelay(int, java.util.Collection)
-	 */
 	@Override
 	public void doDelay(int delay, Collection<String> commands) {
 		addCmd(commands, "monitor sleep " + String.valueOf(delay * 1000)); //$NON-NLS-1$
 	}
 
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.debug.gdbjtag.core.jtagdevice.DefaultGDBJtagDeviceImpl#doReset(java.util.Collection)
-	 */
 	@Override
 	public void doReset(Collection<String> commands) {
-		addCmd(commands, "monitor reset"); //$NON-NLS-1$
+		doResetAndHalt(commands);
 		addCmd(commands, "monitor go"); //$NON-NLS-1$
 	}
 
+	@Override
+	public void doResetAndHalt(Collection<String> commands) {
+		addCmd(commands, "monitor reset"); //$NON-NLS-1$
+	}
+
 }