summaryrefslogtreecommitdiff
path: root/tutorial
diff options
context:
space:
mode:
authorAndy Zhou <azhou@nicira.com>2015-04-14 13:44:01 -0700
committerAndy Zhou <azhou@nicira.com>2015-04-14 14:53:45 -0700
commit60ceeb6c16572e75e7609ec53cf22f6700fd876f (patch)
tree3fd6867aaa3869013b17bd473e6a52967f309794 /tutorial
parente43a07ba6e8995c196d20841ea58208232a3ffd8 (diff)
downloadopenvswitch-60ceeb6c16572e75e7609ec53cf22f6700fd876f.tar.gz
ovs-sandbox: add '-r' and '-e' options
'-e' option will run ovs-vswitchd under gdb, but runs immediately instead of waiting for user input. '-r' options applies to ovsdb-server. Signed-off-by: Andy Zhou <azhou@nicira.com> Acked-by: Russell Bryant <rbryant@redhat.com>
Diffstat (limited to 'tutorial')
-rw-r--r--tutorial/Tutorial.md5
-rwxr-xr-xtutorial/ovs-sandbox27
2 files changed, 29 insertions, 3 deletions
diff --git a/tutorial/Tutorial.md b/tutorial/Tutorial.md
index 1d8bbf5ec..1a38e4fed 100644
--- a/tutorial/Tutorial.md
+++ b/tutorial/Tutorial.md
@@ -118,6 +118,11 @@ This option can be handy for setting break points before ovs-vswitchd runs,
or for catching early segfaults. Similarly, a '-d' option can be used to
run ovsdb-server under GDB. Both options can be specified at the same time.
+In addition, a '-e' option also launches ovs-vswitchd under GDB. However,
+instead of displaying a 'gdb>' prompt and waiting for user input, ovs-vswitchd
+will start to execute immediately. '-r' option is the corresponding option
+for running ovsdb-server under gdb with immediate execution.
+
To avoid GDB mangling with the sandbox sub shell terminal, 'ovs-sandbox'
starts a new xterm to run each GDB session. For systems that do not support
X windows, GDB support is effectively disabled.
diff --git a/tutorial/ovs-sandbox b/tutorial/ovs-sandbox
index ebee4a9fb..29f450491 100755
--- a/tutorial/ovs-sandbox
+++ b/tutorial/ovs-sandbox
@@ -28,7 +28,10 @@ run_xterm() {
rungdb() {
under_gdb=$1
+ gdb_run=$2
shift
+ shift
+
# Remove the --detach and to put the process under gdb control.
# Also remove --vconsole:off to allow error message to show up
# on the console.
@@ -36,7 +39,13 @@ rungdb() {
if $under_gdb && [ "$DISPLAY" ]; then
args=`echo $@ |sed s/--detach//g | sed s/--vconsole:off//g`
xterm_title=$1
- run_xterm $xterm_title gdb -ex run --args $args
+
+ gdb_cmd=""
+ if $gdb_run; then
+ gdb_cmd="-ex run"
+ fi
+
+ run_xterm $xterm_title gdb $gdb_cmd --args $args
else
run $@
fi
@@ -44,6 +53,8 @@ rungdb() {
gdb_vswitchd=false
gdb_ovsdb=false
+gdb_vswitchd_ex=false
+gdb_ovsdb_ex=false
builddir=
srcdir=
schema=
@@ -126,9 +137,19 @@ EOF
;;
-g|--gdb-v*)
gdb_vswitchd=true
+ gdb_vswitchd_ex=false
+ ;;
+ -e|--gdb-ex-v*)
+ gdb_vswitchd=true
+ gdb_vswitchd_ex=true
;;
-d|--gdb-o*)
gdb_ovsdb=true
+ gdb_ovsdb_ex=false
+ ;;
+ -r|--gdb-ex-o*)
+ gdb_ovsdb=true
+ gdb_ovsdb_ex=true
;;
-*)
echo "unrecognized option $option (use --help for help)" >&2
@@ -232,7 +253,7 @@ trap 'kill `cat "$sandbox"/*.pid`' 0 1 2 3 13 14 15
# Create database and start ovsdb-server.
touch "$sandbox"/.conf.db.~lock~
run ovsdb-tool create conf.db "$schema"
-rungdb $gdb_ovsdb ovsdb-server --detach --no-chdir --pidfile -vconsole:off --log-file \
+rungdb $gdb_ovsdb $gdb_ovsdb_ex ovsdb-server --detach --no-chdir --pidfile -vconsole:off --log-file \
--remote=punix:"$sandbox"/db.sock
#Add a small delay to allow ovsdb-server to launch.
@@ -251,7 +272,7 @@ fi
run ovs-vsctl --no-wait -- init
# Start ovs-vswitchd.
-rungdb $gdb_vswitchd ovs-vswitchd --detach --no-chdir --pidfile -vconsole:off --log-file \
+rungdb $gdb_vswitchd $gdb_vswitchd_ex ovs-vswitchd --detach --no-chdir --pidfile -vconsole:off --log-file \
--enable-dummy=override -vvconn -vnetdev_dummy
cat <<EOF