You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by we...@apache.org on 2017/03/24 23:15:25 UTC
[03/50] [abbrv] incubator-mynewt-core git commit: Fix ctrl-c handling
on Windows by launching separate cmd instances
Fix ctrl-c handling on Windows by launching separate cmd instances
Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/56444edf
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/56444edf
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/56444edf
Branch: refs/heads/nrf_cputime
Commit: 56444edfae339e40330686aeb3ca9d8a641eea7f
Parents: 2b3d6cc
Author: Simon Ratner <si...@probablyprime.net>
Authored: Sat Mar 4 11:41:30 2017 -0800
Committer: Marko Kiiskila <ma...@runtime.io>
Committed: Fri Mar 10 13:10:05 2017 -0800
----------------------------------------------------------------------
hw/scripts/jlink.sh | 63 ++++++++++++++++++++++++++++------------------
hw/scripts/openocd.sh | 32 ++++++++++++++++-------
2 files changed, 61 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/56444edf/hw/scripts/jlink.sh
----------------------------------------------------------------------
diff --git a/hw/scripts/jlink.sh b/hw/scripts/jlink.sh
index e6a4dfe..2f3fbe8 100644
--- a/hw/scripts/jlink.sh
+++ b/hw/scripts/jlink.sh
@@ -105,37 +105,50 @@ jlink_load () {
#
jlink_debug() {
if [ -z "$NO_GDB" ]; then
- GDB_CMD_FILE=.gdb_cmds
+ GDB_CMD_FILE=.gdb_cmds
- if [ -z $FILE_NAME ]; then
+ if [ -z $FILE_NAME ]; then
echo "Missing filename"
exit 1
- fi
- if [ ! -f "$FILE_NAME" ]; then
+ fi
+ if [ ! -f "$FILE_NAME" ]; then
echo "Cannot find file" $FILE_NAME
exit 1
- fi
-
- echo "Debugging" $FILE_NAME
-
- # Monitor mode. Background process gets it's own process group.
- set -m
- $JLINK_GDB_SERVER -device $JLINK_DEV -speed 4000 -if SWD -port 3333 -singlerun > /dev/null &
- set +m
-
- echo "target remote localhost:3333" > $GDB_CMD_FILE
- # Whether target should be reset or not
- if [ ! -z "$RESET" ]; then
- echo "mon reset" >> $GDB_CMD_FILE
- echo "si" >> $GDB_CMD_FILE
- fi
- echo "$EXTRA_GDB_CMDS" >> $GDB_CMD_FILE
-
- arm-none-eabi-gdb -x $GDB_CMD_FILE $FILE_NAME
-
- rm $GDB_CMD_FILE
+ fi
+
+ echo "Debugging" $FILE_NAME
+
+ if [ -x "$COMSPEC" ]; then
+ #
+ # Launch jlink server in a separate command interpreter, to make
+ # sure it doesn't get killed by Ctrl-C signal from bash.
+ #
+ $COMSPEC /C "start $COMSPEC /C $JLINK_GDB_SERVER -device $JLINK_DEV -speed 4000 -if SWD -port 3333 -singlerun"
+ else
+ #
+ # Block Ctrl-C from getting passed to jlink server.
+ #
+ set -m
+ $JLINK_GDB_SERVER -device $JLINK_DEV -speed 4000 -if SWD -port 3333 -singlerun > /dev/null &
+ set +m
+ fi
+
+ echo "target remote localhost:3333" > $GDB_CMD_FILE
+ # Whether target should be reset or not
+ if [ ! -z "$RESET" ]; then
+ echo "mon reset" >> $GDB_CMD_FILE
+ echo "si" >> $GDB_CMD_FILE
+ fi
+ echo "$EXTRA_GDB_CMDS" >> $GDB_CMD_FILE
+
+ if [ -x "$COMSPEC" ]; then
+ $COMSPEC /C "start $COMSPEC /C arm-none-eabi-gdb -x $GDB_CMD_FILE $FILE_NAME"
+ else
+ arm-none-eabi-gdb -x $GDB_CMD_FILE $FILE_NAME
+ rm $GDB_CMD_FILE
+ fi
else
- $JLINK_GDB_SERVER -device $JLINK_DEV -speed 4000 -if SWD -port 3333 -singlerun
+ $JLINK_GDB_SERVER -device $JLINK_DEV -speed 4000 -if SWD -port 3333 -singlerun
fi
return 0
}
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/56444edf/hw/scripts/openocd.sh
----------------------------------------------------------------------
diff --git a/hw/scripts/openocd.sh b/hw/scripts/openocd.sh
index 7c6c012..e838bcd 100644
--- a/hw/scripts/openocd.sh
+++ b/hw/scripts/openocd.sh
@@ -76,12 +76,20 @@ openocd_debug () {
exit 1
fi
- #
- # Block Ctrl-C from getting passed to openocd.
- #
- set -m
- openocd $CFG -f $OCD_CMD_FILE -c init -c halt &
- set +m
+ if [ -x "$COMSPEC" ]; then
+ #
+ # Launch openocd in a separate command interpreter, to make sure
+ # it doesn't get killed by Ctrl-C signal from bash.
+ #
+ $COMSPEC /C "start $COMSPEC /C openocd $CFG -f $OCD_CMD_FILE -c init -c halt"
+ else
+ #
+ # Block Ctrl-C from getting passed to openocd.
+ #
+ set -m
+ openocd $CFG -f $OCD_CMD_FILE -c init -c halt &
+ set +m
+ fi
GDB_CMD_FILE=.gdb_cmds
@@ -89,15 +97,21 @@ openocd_debug () {
if [ ! -z "$RESET" ]; then
echo "mon reset halt" >> $GDB_CMD_FILE
fi
- arm-none-eabi-gdb -x $GDB_CMD_FILE $FILE_NAME
- rm $GDB_CMD_FILE
+ if [ -x "$COMSPEC" ]; then
+ $COMSPEC /C "start $COMSPEC /C arm-none-eabi-gdb -x $GDB_CMD_FILE $FILE_NAME"
+ else
+ arm-none-eabi-gdb -x $GDB_CMD_FILE $FILE_NAME
+ rm $GDB_CMD_FILE
+ fi
else
# No GDB, wait for openocd to exit
openocd $CFG -f $OCD_CMD_FILE -c init -c halt
return $?
fi
- rm $OCD_CMD_FILE
+ if [ ! -x "$COMSPEC" ]; then
+ rm $OCD_CMD_FILE
+ fi
return 0
}