Hi Jonathan, On Mon, 26 Oct 2015, Jonathan Nieder wrote: > Johannes Schindelin wrote: > > > --- a/wrap-for-bin.sh > > +++ b/wrap-for-bin.sh > > @@ -19,4 +19,11 @@ GIT_TEXTDOMAINDIR='@@BUILD_DIR@@/po/build/locale' > > PATH='@@BUILD_DIR@@/bin-wrappers:'"$PATH" > > export GIT_EXEC_PATH GITPERLLIB PATH GIT_TEXTDOMAINDIR > > > > +if test -n "$TEST_GDB_GIT" > > +then > > + exec gdb -args "${GIT_EXEC_PATH}/@@PROG@@" "$@" > > Most TEST_ environment variables that git respects are under > GIT_TEST_* --- e.g., GIT_TEST_OPTS. Should this match that pattern > as well, for easier debugging with commands like 'env | grep GIT_'? I dunno. This variable is most useful when inserted into the shell scripts in t/ themselves, not when specified via the command line. For example, if you have something like test_expect_success '123' ' ... # This Git call somehow fails and I have no clue why git push remote HEAD ... ' then prefixing the `git push` command with `TEST_GDB_GIT=1` lets you use `gdb` when running the test with the `-i` and `-v` flags. Please note that `TEST_GDB_GIT` is already a major step up from my initial `DDD`. > What happens if the child in turn calls git again? Should this > unset TEST_GDB_GIT in gdb's environment? It probably would call gdb again. Which is sometimes useful. But I have to admit that I do not know whether that works. > The gdb manual and --help output advertise "--args". Has "-args" > (with a single dash) always worked? I always used it with a single dash... So I assume that it worked for a long time (IIRC I used it first in 1994). > > + echo "Could not run gdb -args ${GIT_EXEC_PATH}/@@PROG@@ $*" >&2 > > + exit 1 > > Does the 'exec' after the fi need this as well? exec is supposed to > itself print a message and exit when it runs into an error. Would > including an 'else' with the if make the control flow clearer? E.g. > > if test -n "$TEST_GDB_GIT" > then > exec gdb --args "${GIT_EXEC_PATH}/@@PROG@@" "$@" > else > exec "${GIT_EXEC_PATH}/@@PROG@@" "$@" > fi I suppose you're right! The `exec` can fail easily, e.g. when `gdb` was not found. Ciao, Johannes -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html