bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: extdebug now implies errtrace which implies `trap ... ERR` execution


From: Chet Ramey
Subject: Re: extdebug now implies errtrace which implies `trap ... ERR` execution w/out `set -e`
Date: Tue, 9 Feb 2021 16:40:23 -0500
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.7.0

On 2/9/21 11:51 AM, Mike Frysinger wrote:
On 09 Feb 2021 11:12, Chet Ramey wrote:
On 2/8/21 11:54 PM, Mike Frysinger wrote:
this set of changes between bash-4.3 & bash-4.4:
https://git.savannah.gnu.org/cgit/bash.git/commit/?h=814e1ff513ceca5d535b92f6c8dd9af7554fe83e

I'm glad you're upgrading to bash-4.4. This change was made nearly five
years ago; the time to relitigate it has long passed.

we're on bash-4.3 atm.  we would upgrade to the latest if that were actually
a reliable process.  unfortunately, moving between bash versions is often full
of random regressions or changes in behavior.  like this one.

Interesting. I suppose one person's bug fix is another's "random change." I
don't see it in this case, though, since it's a bug fix and making bash do
what its documentation said it did.

i understand your point, but the real world of shipping code doesn't have the
luxury of burning the house down for the latest shiny features.

I understand that distribution stability means that you'd like to encase
the shell in amber. That's just never going to happen -- taking this
argument to its logical conclusion would prohibit all bug fixes because
someone might be relying on the buggy behavior.


has this buried nugget:
+       - shopt_set_debug_mode: make sure error_trace_mode reflects the setting
+         of extdebug.  This one is tentative.  Fix from Grisha Levit > +      
<grishalevit@gmail.com>
+       - shopt_set_debug_mode: call set_shellopts after setting 
error_trace_mode
+         or function_trace_mode.  Fix from Grisha Levit <grishalevit@gmail.com>

You could also have looked in the CHANGES file:

oooo. Fixed a bug that caused the shell to not enable and disable function
      tracing with changes to the `extdebug' shell option.

it looks like we can mitigate this with `set -E` after we turn on extdebug.
it's unfortunate that there's no way to get extended debug info without also
opting in to side-effects like this.  all we really want is to get backtrace
info for logging messages when we abort down a few layers.

If it works for you, great. But extdebug is always going to be for the
benefit of the shell debugger.

--
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    chet@case.edu    http://tiswww.cwru.edu/~chet/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]