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

A serious bug in execution – where to debug?



Hello,
I have a zle function that shadows the zle builtin. The bug is: the
function exits after a certain function get's called, if the arguments
are: -F {descriptor-#} _gitstatus_process_response_POWERLEVEL9K (I
didn't yet eliminate the second argument's so I'm pasting it as is).

The symptoms are:
- print before the call does output, after the call – doesn't (as
arranged as in here: http://psprint.blinkenshell.org/zle-exit-fun.png)
- the plugin's following zle -F {descriptor-#} call reports error:
--zplg-shadow-zle:zle:64: No handler installed for fd 21
meaning that the execution didn't really reach the point where an
actual builtin zle is being called by the shadowing function.

Now, what's interesting is the certain function that causes the exit
(https://github.com/zdharma/zplugin/blob/1ddc4a2c69adec7895b4acf53e3db837720663ac/zplugin.zsh#L1261-L1264).
If I remove the conditional from its third line, i.e. change the line
to:

ZPLG_REPORTS[_dtrace/_dtrace]+="$2"$'\n'

then the problem disappears. Not that this practically eliminates that
the bug report is something wrong with some other area of the code.

I find this impossible to narrow down, because e.g. doing the zle -F
call from some other, short plugin doesn't cause the problem. This
must be a lucky set of circumstances.

But I can debug it. Where to add debug printfs / breakpoints, what to
check in them?

-- 
Sebastian Gniazdowski
News: https://twitter.com/ZdharmaI
IRC: https://kiwiirc.com/client/chat.freenode.net:+6697/#zplugin
Blog: http://zdharma.org



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