[Pkg-zsh-devel] Bug#663982: Bug#663982: Bug#663982: zsh: autocompletion does not work anymore after compinit
Martin Steigerwald
ms at teamix.de
Mon Mar 26 08:36:02 UTC 2012
Am Donnerstag, 22. März 2012 schrieb Michael Prokop:
> * Axel Beckert [Thu Mar 22, 2012 at 11:27:54AM +0100]:
> > Frank Terbeck wrote:
> > > Martin Steigerwald wrote:
> [...]
>
> > > > mango% compinit
> > > > mango% cd In
> > > > No reaction on tab anymore.
>
> [...]
>
> > I ran into this too, after I bumped my zshrc to the newest grml zshrc
> > on Debian Stable with NFS home and about 5000 users in NIS. So I'm not
> > sure if it has the same reason, but it definitely has the same
> > symptoms.
> >
> > I'd say 5 to 10 minutes or so. Ctrl-C doesn't help. Just waiting. The
> > zsh process is in the "uninterruptable sleep" state (aka "D" aka "disk
> > waiting").
> >
> > It doesn't seem to happen with all kinds of completion but at least
> > with scp completion.
>
> Might be worth trying a debug session as documented in
> http://anonscm.debian.org/gitweb/?p=collab-maint/zsh.git;a=blob;f=debian/RE
> ADME.Debian
Here is what I get when I just "next" through it. Thats just what happens when
I press tab in a shell with compinit loaded where tab completion does not
work:
ms at mango:~/lokal/Debian/zsh-debugging#1> gdb $(find . -type d -printf '-d %p ')
attach 8463
GNU gdb (GDB) 7.4-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
attach: Datei oder Verzeichnis nicht gefunden.
Attaching to process 8463
Reading symbols from /bin/zsh4...Reading symbols from
/usr/lib/debug/bin/zsh4.dbg...done.
done.
Reading symbols from /lib/libcap.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libcap.so.2
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libdl.so.2...Reading
symbols from /usr/lib/debug/lib/i386-linux-gnu/i686/cmov/libdl-2.13.so...done.
done.
[…]
Reading symbols from /usr/lib/zsh/4.3.17/zsh/terminfo.so...Reading symbols
from /usr/lib/debug/usr/lib/zsh/4.3.17/zsh/terminfo.so.debug...done.
done.
Loaded symbols for /usr/lib/zsh/4.3.17/zsh/terminfo.so
[…]
(gdb) step
Single stepping until exit from function __kernel_vsyscall,
which has no line number information.
getbyte (do_keytmout=0, timeout=0x0) at ../../../Src/Zle/zle_main.c:845
845 restore_queue_signals(q);
(gdb) next
846 if (r == -2) {
(gdb) next
845 restore_queue_signals(q);
(gdb) next
846 if (r == -2) {
(gdb) next
852 if (r == 1)
(gdb) next
894 if (cc == '\r') /* undo the exchange of \n and \r
determined by */
(gdb) next
896 else if (cc == '\n')
(gdb) next
905 if (vichgflag) {
(gdb) next
910 errno = old_errno;
(gdb) next
911 return lastchar = ret;
(gdb) next
912 }
(gdb) next
getkeybuf (w=0) at ../../../Src/Zle/zle_keymap.c:1486
1486 if(c < 0)
(gdb) next
1484 int c = getbyte((long)w, NULL);
(gdb) next
1486 if(c < 0)
(gdb) next
1488 if(keybuflen + 3 > keybufsz)
(gdb) next
1490 if(imeta(c)) {
(gdb) next
1494 keybuf[keybuflen++] = c;
(gdb) next
1495 keybuf[keybuflen] = 0;
(gdb) next
getkeymapcmd (km=0x8ce18d8, funcp=0xbfb149f4, strp=0xbfb149f8) at
../../../Src/Zle/zle_keymap.c:1431
1431 int loc = !!localkeymap;
(gdb) next
1428 while(getkeybuf(!!lastlen) != EOF) {
(gdb) next
1431 int loc = !!localkeymap;
(gdb) next
1434 if (loc) {
(gdb) next
1432 int ispfx = 0;
(gdb) next
1439 f = keybind(km, keybuf, &s);
(gdb) next
1440 ispfx |= keyisprefix(km, keybuf);
(gdb) next
1439 f = keybind(km, keybuf, &s);
(gdb) next
1440 ispfx |= keyisprefix(km, keybuf);
(gdb) next
1442 if (f != t_undefinedkey) {
(gdb) next
1443 lastlen = keybuflen;
(gdb) next
1445 str = s;
(gdb) next
1446 lastc = lastchar;
(gdb) next
1443 lastlen = keybuflen;
(gdb) next
1446 lastc = lastchar;
(gdb) next
1445 str = s;
(gdb) next
1446 lastc = lastchar;
(gdb) next
1448 if (!ispfx)
(gdb) next
1451 if(!lastlen && keybuflen)
(gdb) next
1454 lastchar = lastc;
(gdb) next
1455 if(lastlen != keybuflen) {
(gdb) next
1454 lastchar = lastc;
(gdb) next
1455 if(lastlen != keybuflen) {
(gdb) next
1462 *funcp = func;
(gdb) next
1463 *strp = str;
(gdb) next
1462 *funcp = func;
(gdb) next
1463 *strp = str;
(gdb) next
1464 return keybuf;
(gdb) next
1465 }
(gdb) next
getkeycmd () at ../../../Src/Zle/zle_keymap.c:1521
1521 if(!*seq)
(gdb) next
1523 if(!func) {
(gdb) next
1537 if (func == Th(z_executenamedcmd) && !statusline) {
(gdb) next
1547 if (func == Th(z_executelastnamedcmd))
(gdb) next
1550 }
(gdb) next
zlecore () at ../../../Src/Zle/zle_main.c:1040
1040 if (bindk) {
(gdb) next
1039 bindk = getkeycmd();
(gdb) next
1040 if (bindk) {
(gdb) next
1041 if (!zlell && isfirstln && !(zlereadflags & ZLRF_IGNOREEOF)
&&
(gdb) next
1053 if (execzlefunc(bindk, zlenoargs, 0)) {
(gdb) next
1054 handlefeep(zlenoargs);
(gdb) next
1055 if (eofsent)
(gdb) next
1058 handleprefixes();
(gdb) next
1060 if (invicmdmode() && zlecs > findbol() &&
(gdb) next
1063 if (undoing)
(gdb) next
1064 handleundo();
(gdb) next
1070 if (baud && !(lastcmd & ZLE_MENUCMP)) {
(gdb) next
1094 if (!kungetct)
(gdb) next
1095 zrefresh();
(gdb) next
1097 freeheap();
(gdb) next
1032 while (!done && !errflag && !exit_pending) {
(gdb) next
1035 statusline = NULL;
(gdb) next
1036 vilinerange = 0;
(gdb) next
1035 statusline = NULL;
(gdb) next
1036 vilinerange = 0;
(gdb) next
1037 reselectkeymap();
(gdb) next
1038 selectlocalmap(NULL);
(gdb) next
1039 bindk = getkeycmd();
(gdb) next
^[[A
^[[A
Ciao,
--
Martin Steigerwald - teamix GmbH - http://www.teamix.de
gpg: 19E3 8D42 896F D004 08AC A0CA 1E10 C593 0399 AE90
More information about the Pkg-zsh-devel
mailing list