Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: TRAPINT doesn't work reliably



> On 25 September 2019 at 14:02 Dennis Schwartz <dennis.schwartz@xxxxxxxxxxxxxx> wrote:
> On Tuesday, September 24, 2019 10:44 AM, Peter Stephenson <p.stephenson@xxxxxxxxxxx> wrote:
>> On Tue, 2019-09-17 at 16:47 +0000, Dennis Schwartz wrote:
>>> I have a function on TRAPINT in my .zshrc like described as in the Zsh manual [1].
>>>  
>>>      TRAPINT() {
>>>          echo "trap: $1"
>>>          return $(( 128 + $1 ))
>>>      }
>>>
>>>
>>> This works unreliably. Usually this works a first few times, but
>>> after a while this doesn’t work anymore and throws the following
>>> error.
>>>
>>> TRAPINT:1: command not found: \M-^A^A
>>> TRAPINT:2: command not found: F^\V
>
> It almost looks like the function gets replaced with random memory.
> `functions TRAPINT` just shows random bytes, for example:
> 
> $ xxd <(functions TRAPINT)
> 00000000: 5452 4150 494e 5420 2829 207b 0a09 0701  TRAPINT () {....
> 00000010: 200a 0950 200a 7d0a                       ..P .}.
>
> I am now more convinced it's a bug in Zsh. Any advice on how to debug this?
> And where can I best submit a bug report to?

You don't need to submit a further separate bug report.

Memory errors are tricky, and often hard to reproduce since allocation
is heavily OS specific, but probably your best bet is to run with

valgrind --leak-check=full zsh

which should produce sensible results --- the shell shouldn't leak
memory and anything that looks anomalous is probably a real bug ("still
reachable" memory is OK).

I'd also suggest trying the latest firmware from git or sourceforge,
since there have been some memory fixes (and a release is probably
overdue).

cheers
pws



Messages sorted by: Reverse Date, Date, Thread, Author