It's come to my attention that running bash --debugger doesn't source
DEBUGGER_START_FILE
when the script to be debugged isn't followed by any arguments.

An example will probably make this clear. Suppose */tmp/foo.sh* is:

    echo hi

And you run:

    bash --debugger /tmp/foo.sh

I get "hi" printed without DEBUGGER_START_FILE sourced. However it is
sourced if I run
   bash --debugger /tmp/foo.sh ""


Investigating why this might be, I see this in bash/shell.c at line 724:

  if (debugging_mode && locally_skip_execution == 0 && running_setuid == 0
&& dollar_vars[1])
    start_debugger ();

I can see why you wouldn't want to source DEBUGGER_START_FILE if a script
name (/tmp/foo.sh) were not given, but I'm not sure why you would want to
skip if it didn't have an argument.

So shouldn't the end of that test be dollar_vars[0] instead?

Thanks.

Reply via email to