Skip to content

Commit

Permalink
ovs-sandbox: add '-r' and '-e' options
Browse files Browse the repository at this point in the history
'-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 <[email protected]>
Acked-by: Russell Bryant <[email protected]>
  • Loading branch information
azhou-nicira committed Apr 14, 2015
1 parent e43a07b commit 60ceeb6
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 3 deletions.
5 changes: 5 additions & 0 deletions tutorial/Tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
27 changes: 24 additions & 3 deletions tutorial/ovs-sandbox
Original file line number Diff line number Diff line change
Expand Up @@ -28,22 +28,33 @@ 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.
# Use "DISPLAY" variable to determine out if X is supported
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
}

gdb_vswitchd=false
gdb_ovsdb=false
gdb_vswitchd_ex=false
gdb_ovsdb_ex=false
builddir=
srcdir=
schema=
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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.
Expand All @@ -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
Expand Down

0 comments on commit 60ceeb6

Please sign in to comment.