From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21910 invoked by alias); 1 Nov 2009 21:12:18 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 27330 Received: (qmail 2061 invoked from network); 1 Nov 2009 21:12:14 -0000 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.2.5 Received-SPF: pass (ns1.primenet.com.au: SPF record at _spf.google.com designates 209.85.218.210 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=/z+gYDab4MsIzivdF+X1XHvt4CwP0x3hzs2j8BHa8lQ=; b=Bv4Hr+1uUS07JWZ2d2YKORz2sqZzPp41roRVq25sj6G1yrhKLSKai9ciwaI4qJqAMP s1H+E8jgGpbXEf8MQcb/+dyPbuQaaUEl/APa2mXupNi2ObjBMwSM0XEiVABxiXsQIWv8 P5gP8Y550qaKA+a9GXrH6pBsasu7cQm7B5tpM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=lgTYA9Mi5kGEpWVH22rMXndsShP2dH3OUO4BDCTMYAshrANY5i4916MLToPQic17yF UtlqwAsA8riznlgjVSzLYmk7Vkj3Xj6xlk+ePOvVut51xkfXQXDImqwXnc7PSAmGUZm2 IxWvG3Ffb/Gh6ZhZtqujnnaEX5qbg9/ivQTpA= MIME-Version: 1.0 In-Reply-To: <200911011831.nA1IVtMH003055@pws-pc.ntlworld.com> References: <237967ef0910311850p2994c4e2ha72944842bc6fa8@mail.gmail.com> <200911011831.nA1IVtMH003055@pws-pc.ntlworld.com> Date: Sun, 1 Nov 2009 22:12:08 +0100 Message-ID: <237967ef0911011312u307ecf19kbabf9fecf867cec1@mail.gmail.com> Subject: Re: zsh eats 100% CPU with completion in / From: Mikael Magnusson To: Peter Stephenson Cc: zsh-workers@zsh.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable 2009/11/1 Peter Stephenson : > Mikael Magnusson wrote: >> (gdb) print clwpos >> $8 =3D 0 >> (gdb) print clwords >> $9 =3D (char **) 0x8144278 >> (gdb) print clwords[0] >> $10 =3D 0x82fb758 "" > > Thanks---I think that means somehow it's got confused in the lexical > analyser, there's not much scope for more problems in get_comp_string(). > That first word obviously ought to be "./x". Possibly something hasn't > been reset properly after the last operation; we've seen a couple of > things like that. We need to find out why the first > zshlex(), and hence gettok(), is setting tok to STRING but not tokstr to > "./x" (if it is, the problem is in get_comp_string() after all). It > might well be something quite simple. I didn't spend too much thinking about when to print variable values here, but if you point to somewhere I can do a bt full there. I did the break after typing ./ and before pressing tab. (gdb) break zshlex Breakpoint 1 at 0x8091bf6 (gdb) break get_comp_string Breakpoint 2 at 0x6fa7b420: file zle_tricky.c, line 1067. (gdb) c Continuing. Breakpoint 1, 0x08091bf6 in zshlex () (gdb) bt full #0 0x08091bf6 in zshlex () No symbol table info available. #1 0x080927ab in ctxtlex () No symbol table info available. #2 0x6fa808a4 in doexpandhist () at zle_tricky.c:2662 ol =3D 0x6fb89740 "./" oll =3D 2 ocs =3D 2 ne =3D 0 err =3D 1873283000 ona =3D 0 #3 0x6fa7a144 in docomplete (lst=3D4) at zle_tricky.c:624 s =3D 0x41b6cedb "\201\303\031\301\v" ol =3D 0x6fa8bff4 "p\233\003" olst =3D 4 chl =3D 0 ne =3D 0 ocs =3D 1873222770 ret =3D 0 dat =3D {1877915328, 2006971800} active =3D 1 #4 0x6fa7975f in expandorcomplete (args=3D0x6fa8fd40) at zle_tricky.c:315 ret =3D 2006972408 #5 0x6fa79302 in completecall (args=3D0x6fa8fd40) at zle_tricky.c:208 No locals. #6 0x6fa68fcd in execzlefunc () from /usr/local/lib/zsh/4.3.10-dev-1/zsh/z= le.so No symbol table info available. #7 0x6fa691f2 in zlecore () from /usr/local/lib/zsh/4.3.10-dev-1/zsh/zle.s= o No symbol table info available. #8 0x6fa697f9 in zleread () from /usr/local/lib/zsh/4.3.10-dev-1/zsh/zle.s= o No symbol table info available. ---Type to continue, or q to quit--- #9 0x6fa6b867 in zle_main_entry () from /usr/local/lib/zsh/4.3.10-dev-1/zsh/zle.so No symbol table info available. #10 0x08086cda in zleentry (cmd=3D1) at init.c:1304 ret =3D 0x0 ap =3D 0x779ff8f4 "\004\071\017\b\214\070\017\b\a" #11 0x08087b93 in inputline () No symbol table info available. #12 0x08087dc8 in ingetc () No symbol table info available. #13 0x0807d595 in ihgetc () at hist.c:263 c =3D 0 #14 0x08091c26 in zshlex () No symbol table info available. #15 0x080ab108 in parse_event () at parse.c:451 No locals. #16 0x08084209 in loop (toplevel=3D1, justonce=3D0) at init.c:132 prog =3D 0x6fb89ab0 err =3D 50 non_empty =3D 1 #17 0x08087053 in zsh_main (argc=3D1, argv=3D0x779ffaf4) at init.c:1454 t =3D 0x779ffaf8 t0 =3D 158 #18 0x08055522 in main () No symbol table info available. (gdb) s Single stepping until exit from function zshlex, which has no line number information. ihgetc () at hist.c:263 263 int c =3D ingetc(); (gdb) 265 qbang =3D 0; (gdb) 266 if (!stophist && !(inbufflags & INP_ALIAS)) { (gdb) 275 if ((inbufflags & INP_HIST) && !stophist) { (gdb) 286 } else if (stophist || (inbufflags & INP_ALIAS)) (gdb) 294 qbang =3D c =3D=3D bangchar && (stophist < 2); (gdb) 295 hwaddc(c); (gdb) ihwaddc (c=3D46) at hist.c:212 212 if (chline && !(errflag || lexstop)) { (gdb) 214 if (c =3D=3D bangchar && stophist < 2 && qbang) (gdb) 221 *hptr++ =3D c; (gdb) 224 if (hptr - chline >=3D hlinesz) { (gdb) 231 } (gdb) ihgetc () at hist.c:296 296 addtoline(c); (gdb) iaddtoline (c=3D46) at hist.c:242 242 if (!expanding || lexstop) (gdb) 244 if (qbang && c =3D=3D bangchar && stophist < 2) { (gdb) 248 if (excs > zlemetacs) { (gdb) 249 excs +=3D 1 + inbufct - exlast; (gdb) 250 if (excs < zlemetacs) (gdb) 255 exlast =3D inbufct; (gdb) 256 zleentry(ZLE_CMD_ADD_TO_LINE, itok(c) ? ztokens[c - Pound] : c); (gdb) zleentry (cmd=3D2) at init.c:1273 1273 char *ret =3D NULL; (gdb) 1277 VA_START(ap, cmd); (gdb) 1282 switch (zle_load_state) { (gdb) 1304 ret =3D zle_entry_ptr(cmd, ap); (gdb) 1306 cmd =3D -1; (gdb) 1315 switch (cmd) { (gdb) 1353 return ret; (gdb) 1354 } (gdb) iaddtoline (c=3D46) at hist.c:257 257 } (gdb) ihgetc () at hist.c:298 298 return c; (gdb) 299 } (gdb) 0x08091c26 in zshlex () (gdb) Single stepping until exit from function zshlex, which has no line number information. ihwbegin (offset=3D-1) at hist.c:1300 1300 if (stophist =3D=3D 2) (gdb) 1302 if (chwordpos%2) (gdb) 1307 if ((inbufflags & INP_ALIAS) && !(inbufflags & INP_HIST)) (gdb) 1310 hwgetword =3D -1; (gdb) 1311 chwords[chwordpos++] =3D hptr - chline + offset; (gdb) 1312 } (gdb) 0x08091dea in zshlex () (gdb) Single stepping until exit from function zshlex, which has no line number information. 0x080927ab in ctxtlex () (gdb) Single stepping until exit from function ctxtlex, which has no line number information. doexpandhist () at zle_tricky.c:2663 2663 } while (tok !=3D ENDINPUT && tok !=3D LEXERR); (gdb) 2662 ctxtlex(); (gdb) Breakpoint 1, 0x08091bf6 in zshlex () (gdb) Single stepping until exit from function zshlex, which has no line number information. ihgetc () at hist.c:263 263 int c =3D ingetc(); (gdb) 265 qbang =3D 0; (gdb) 266 if (!stophist && !(inbufflags & INP_ALIAS)) { (gdb) 275 if ((inbufflags & INP_HIST) && !stophist) { (gdb) 286 } else if (stophist || (inbufflags & INP_ALIAS)) (gdb) 294 qbang =3D c =3D=3D bangchar && (stophist < 2); (gdb) 295 hwaddc(c); (gdb) ihwaddc (c=3D32) at hist.c:212 212 if (chline && !(errflag || lexstop)) { (gdb) 231 } (gdb) ihgetc () at hist.c:296 296 addtoline(c); (gdb) iaddtoline (c=3D32) at hist.c:242 242 if (!expanding || lexstop) (gdb) 257 } (gdb) ihgetc () at hist.c:298 298 return c; (gdb) 299 } (gdb) 0x08091c26 in zshlex () (gdb) Single stepping until exit from function zshlex, which has no line number information. 0x080927ab in ctxtlex () (gdb) Single stepping until exit from function ctxtlex, which has no line number information. doexpandhist () at zle_tricky.c:2663 2663 } while (tok !=3D ENDINPUT && tok !=3D LEXERR); (gdb) 2664 while (!lexstop) (gdb) 2669 err =3D errflag; (gdb) 2670 noerrs =3D ne; (gdb) 2671 noaliases =3D ona; (gdb) 2672 strinend(); (gdb) strinend () at hist.c:799 799 hend(NULL); (gdb) hend (prog=3D0x0) at hist.c:1144 1144 LinkList hookargs =3D newlinklist(); (gdb) 1145 int flag, save =3D 1, hookret, stack_pos =3D histsave_stack_pos; (gdb) 1150 queue_signals(); (gdb) 1151 if (histdone & HISTFLAG_SETTY) (gdb) 1153 if (!(histactive & HA_NOINC)) (gdb) 1155 if (histactive & HA_NOINC) { (gdb) 1156 zfree(chline, hlinesz); (gdb) 1157 zfree(chwords, chwordlen*sizeof(short)); (gdb) 1158 chline =3D NULL; (gdb) 1159 chwords =3D NULL; (gdb) 1160 histactive =3D 0; (gdb) 1161 unqueue_signals(); (gdb) 1162 return 1; (gdb) 1287 } (gdb) strinend () at hist.c:801 801 strin--; (gdb) 802 isfirstch =3D 1; (gdb) 803 histdone =3D 0; (gdb) 804 } (gdb) doexpandhist () at zle_tricky.c:2673 2673 inpop(); (gdb) 2674 zleparse =3D 0; (gdb) 2675 lexrestore(); (gdb) 2676 expanding =3D 0; (gdb) 2678 if (!err) { (gdb) 2679 zlemetacs =3D excs; (gdb) 2680 if (strcmp(zlemetaline, ol)) { (gdb) 2692 strcpy(zlemetaline, ol); (gdb) 2693 zlemetall =3D oll; (gdb) 2694 zlemetacs =3D ocs; (gdb) 2695 unmetafy_line(); (gdb) unmetafy_line () at zle_tricky.c:978 978 zlemetaline[zlemetall] =3D '\0'; (gdb) 979 zleline =3D stringaszleline(zlemetaline, zlemetacs, &zlell, &linesz, &zlecs); (gdb) 981 free(zlemetaline); (gdb) 982 zlemetaline =3D NULL; (gdb) 987 CCRIGHT(); (gdb) 988 } (gdb) doexpandhist () at zle_tricky.c:2697 2697 popheap(); (gdb) 2699 return 0; (gdb) 2700 } (gdb) docomplete (lst=3D4) at zle_tricky.c:629 629 metafy_line(); (gdb) metafy_line () at zle_tricky.c:960 960 zlemetaline =3D zlelineasstring(zleline, zlell, zlecs, (gdb) 962 metalinesz =3D zlemetall; (gdb) 967 free(zleline); (gdb) 968 zleline =3D NULL; (gdb) 969 } (gdb) print zlemetaline $1 =3D 0x8223058 "./" (gdb) s docomplete (lst=3D4) at zle_tricky.c:631 631 ocs =3D zlemetacs; (gdb) print ocs $2 =3D 1873222770 (gdb) print zlemetacs $3 =3D 2 (gdb) s 632 origline =3D dupstring(zlemetaline); (gdb) 633 origcs =3D zlemetacs; (gdb) print origline $4 =3D 0x6fb89740 "./" (gdb) s 634 origll =3D zlemetall; (gdb) print origcs $5 =3D 2 (gdb) s 635 if (!isfirstln && chline !=3D NULL) { (gdb) print origll $6 =3D 2 (gdb) s 648 ol =3D NULL; (gdb) 649 inwhat =3D IN_NOTHING; (gdb) 650 zsfree(qipre); (gdb) 651 qipre =3D ztrdup(""); (gdb) 652 zsfree(qisuf); (gdb) 653 qisuf =3D ztrdup(""); (gdb) 654 zsfree(autoq); (gdb) 655 autoq =3D NULL; (gdb) 658 noerrs =3D 1; (gdb) 659 s =3D get_comp_string(); (gdb) Breakpoint 2, get_comp_string () at zle_tricky.c:1067 1067 int t0, tt0, i, j, k, cp, rd, sl, ocs, ins, oins, ia, parct, varq = =3D 0; (gdb) frame 1 #1 0x6fa7a2bc in docomplete (lst=3D4) at zle_tricky.c:659 659 s =3D get_comp_string(); (gdb) print s $7 =3D 0x41b6cedb "\201\303\031\301\v" (gdb) frame 0 #0 get_comp_string () at zle_tricky.c:1067 1067 int t0, tt0, i, j, k, cp, rd, sl, ocs, ins, oins, ia, parct, varq = =3D 0; (gdb) bt full #0 get_comp_string () at zle_tricky.c:1067 t0 =3D 0 tt0 =3D 137351280 i =3D 2006971508 j =3D 2006971636 k =3D 2006971576 cp =3D 136458330 rd =3D 1103269876 sl =3D 136458330 ocs =3D 0 ins =3D 1103269876 oins =3D 1102143328 ia =3D 136458329 parct =3D 2006971560 varq =3D 1102499901 ona =3D 135251752 qsub =3D 2006971504 zlemetacs_qsub =3D 2006971540 redirpos =3D 2006971576 s =3D 0x6fb89740 "./" tmp =3D 0x82fc830 "MMAND" p =3D 0x0 tt =3D 0x779ff498 "\333=CE=B6A\364\277\250oZ0\"\bt\r\266A\b\365\237w #1 0x6fa7a2bc in docomplete (lst=3D4) at zle_tricky.c:659 s =3D 0x41b6cedb "\201\303\031\301\v" ol =3D 0x0 olst =3D 4 ---Type to continue, or q to quit--- chl =3D 0 ne =3D 0 ocs =3D 2 ret =3D 0 dat =3D {1877915328, 2006971800} active =3D 1 #2 0x6fa7975f in expandorcomplete (args=3D0x6fa8fd40) at zle_tricky.c:315 ret =3D 2006972408 #3 0x6fa79302 in completecall (args=3D0x6fa8fd40) at zle_tricky.c:208 No locals. #4 0x6fa68fcd in execzlefunc () from /usr/local/lib/zsh/4.3.10-dev-1/zsh/z= le.so No symbol table info available. #5 0x6fa691f2 in zlecore () from /usr/local/lib/zsh/4.3.10-dev-1/zsh/zle.s= o No symbol table info available. #6 0x6fa697f9 in zleread () from /usr/local/lib/zsh/4.3.10-dev-1/zsh/zle.s= o No symbol table info available. #7 0x6fa6b867 in zle_main_entry () from /usr/local/lib/zsh/4.3.10-dev-1/zsh/zle.so No symbol table info available. #8 0x08086cda in zleentry (cmd=3D1) at init.c:1304 ret =3D 0x0 ap =3D 0x779ff8f4 "\004\071\017\b\214\070\017\b\a" #9 0x08087b93 in inputline () No symbol table info available. #10 0x08087dc8 in ingetc () No symbol table info available. #11 0x0807d595 in ihgetc () at hist.c:263 c =3D 0 #12 0x08091c26 in zshlex () No symbol table info available. #13 0x080ab108 in parse_event () at parse.c:451 No locals. ---Type to continue, or q to quit--- #14 0x08084209 in loop (toplevel=3D1, justonce=3D0) at init.c:132 prog =3D 0x6fb89ab0 err =3D 50 non_empty =3D 1 #15 0x08087053 in zsh_main (argc=3D1, argv=3D0x779ffaf4) at init.c:1454 t =3D 0x779ffaf8 t0 =3D 158 #16 0x08055522 in main () No symbol table info available. (gdb) s 1068 int ona =3D noaliases; (gdb) 1079 int qsub, zlemetacs_qsub =3D 0; (gdb) 1086 char *s =3D NULL, *tmp, *p, *tt =3D NULL, rdop[20]; (gdb) 1091 freebrinfo(brbeg); (gdb) Breakpoint 1, 0x08091bf6 in zshlex () (gdb) Single stepping until exit from function zshlex, which has no line number information. nohw (c=3D-1) at hist.c:812 812 } (gdb) 0x08091dea in zshlex () (gdb) Single stepping until exit from function zshlex, which has no line number information. 0x080927ab in ctxtlex () (gdb) Single stepping until exit from function ctxtlex, which has no line number information. get_comp_string () at zle_tricky.c:1166 1166 if (tok =3D=3D LEXERR) { (gdb) 1179 } else if (tok =3D=3D ENVSTRING) (gdb) 1181 if (tok =3D=3D ENVARRAY) { (gdb) 1185 } else if (tok =3D=3D INPAR) (gdb) 1187 else if (tok =3D=3D OUTPAR) { (gdb) 1193 if (inredir && IS_REDIROP(tok)) { (gdb) 1204 if (tok =3D=3D DINPAR) (gdb) 1208 if (tok =3D=3D ENDINPUT) (gdb) 1210 if ((ins && (tok =3D=3D DOLOOP || tok =3D=3D SEPER)) || (gdb) 1231 if (lincmd && (tok =3D=3D STRING || tok =3D=3D FOR || tok =3D=3D FORE= ACH || (gdb) 1235 ins =3D (tok =3D=3D REPEAT ? 2 : (tok !=3D STRING)); (gdb) 1236 zsfree(cmdstr); (gdb) 1237 cmdstr =3D ztrdup(tokstr); (gdb) 1239 if (i !=3D redirpos) (gdb) 1242 if (!zleparse && !tt0) { (gdb) 1244 tt =3D tokstr ? dupstring(tokstr) : NULL; (gdb) 1246 if (isset(RCQUOTES) && tt) { (gdb) 1247 char *tt1, *e =3D tt + zlemetacs - wb; (gdb) print tokstr $8 =3D 0x6fb89758 "." (gdb) print tt $9 =3D 0x6fb89778 "." (gdb) s 1248 for (tt1 =3D tt; *tt1; tt1++) { (gdb) 1249 if (*tt1 =3D=3D Snull) { (gdb) 1248 for (tt1 =3D tt; *tt1; tt1++) { (gdb) 1258 if (addedx && tt) (gdb) 1259 chuck(tt + zlemetacs - wb - qsub); (gdb) Breakpoint 1, 0x08091bf6 in zshlex () (gdb) Single stepping until exit from function zshlex, which has no line number information. 0x080927ab in ctxtlex () (gdb) Single stepping until exit from function ctxtlex, which has no line number information. get_comp_string () at zle_tricky.c:1166 1166 if (tok =3D=3D LEXERR) { (gdb) 1179 } else if (tok =3D=3D ENVSTRING) (gdb) 1181 if (tok =3D=3D ENVARRAY) { (gdb) 1185 } else if (tok =3D=3D INPAR) (gdb) 1187 else if (tok =3D=3D OUTPAR) { (gdb) 1193 if (inredir && IS_REDIROP(tok)) { (gdb) 1204 if (tok =3D=3D DINPAR) (gdb) 1208 if (tok =3D=3D ENDINPUT) (gdb) 1314 clwnum =3D (tt || !i) ? i : i - 1; (gdb) 1315 zsfree(clwords[clwnum]); (gdb) print clwnum $10 =3D 1 (gdb) s 1316 clwords[clwnum] =3D NULL; (gdb) 1317 t0 =3D tt0; (gdb) 1318 if (ia) { (gdb) print t0 $11 =3D 34 (gdb) s 1322 lincmd =3D cp; (gdb) 1323 linredir =3D rd; (gdb) 1325 strinend(); (gdb) strinend () at hist.c:799 799 hend(NULL); (gdb) hend (prog=3D0x0) at hist.c:1144 1144 LinkList hookargs =3D newlinklist(); (gdb) 1145 int flag, save =3D 1, hookret, stack_pos =3D histsave_stack_pos; (gdb) 1150 queue_signals(); (gdb) 1151 if (histdone & HISTFLAG_SETTY) (gdb) 1153 if (!(histactive & HA_NOINC)) (gdb) 1155 if (histactive & HA_NOINC) { (gdb) 1156 zfree(chline, hlinesz); (gdb) 1157 zfree(chwords, chwordlen*sizeof(short)); (gdb) print chwords $12 =3D (short int *) 0x0 (gdb) s 1158 chline =3D NULL; (gdb) 1159 chwords =3D NULL; (gdb) 1160 histactive =3D 0; (gdb) 1161 unqueue_signals(); (gdb) 1162 return 1; (gdb) 1287 } (gdb) strinend () at hist.c:801 801 strin--; (gdb) 802 isfirstch =3D 1; (gdb) 803 histdone =3D 0; (gdb) 804 } (gdb) get_comp_string () at zle_tricky.c:1326 1326 inpop(); (gdb) 1327 errflag =3D zleparse =3D 0; (gdb) 1328 if (parbegin !=3D -1) { (gdb) 1346 if (inwhat =3D=3D IN_MATH) (gdb) 1348 else if (!t0 || t0 =3D=3D ENDINPUT) { (gdb) 1354 } else if (t0 =3D=3D STRING) { (gdb) print s $13 =3D 0x0 (gdb) print t0 $14 =3D 34 (gdb) bt full #0 get_comp_string () at zle_tricky.c:1354 t0 =3D 34 tt0 =3D 34 i =3D 1 j =3D 0 k =3D 0 cp =3D 1 rd =3D 0 sl =3D 1 ocs =3D 0 ins =3D 0 oins =3D 0 ia =3D 0 parct =3D 0 varq =3D 0 ona =3D 0 qsub =3D 0 zlemetacs_qsub =3D 2 redirpos =3D 0 s =3D 0x0 tmp =3D 0x8223058 "./" p =3D 0x0 tt =3D 0x6fb89778 "." rdop =3D "\000\060\"\b\030\364\237wY0\"\b\001\000\000\000\060\310/\= b" linptr =3D 0x6fb89748 "./x" u =3D 0x822305a "" #1 0x6fa7a2bc in docomplete (lst=3D4) at zle_tricky.c:659 s =3D 0x41b6cedb "\201\303\031\301\v" ol =3D 0x0 olst =3D 4 chl =3D 0 ---Type to continue, or q to quit--- ne =3D 0 ocs =3D 2 ret =3D 0 dat =3D {1877915328, 2006971800} active =3D 1 #2 0x6fa7975f in expandorcomplete (args=3D0x6fa8fd40) at zle_tricky.c:315 ret =3D 2006972408 #3 0x6fa79302 in completecall (args=3D0x6fa8fd40) at zle_tricky.c:208 No locals. #4 0x6fa68fcd in execzlefunc () from /usr/local/lib/zsh/4.3.10-dev-1/zsh/z= le.so No symbol table info available. #5 0x6fa691f2 in zlecore () from /usr/local/lib/zsh/4.3.10-dev-1/zsh/zle.s= o No symbol table info available. #6 0x6fa697f9 in zleread () from /usr/local/lib/zsh/4.3.10-dev-1/zsh/zle.s= o No symbol table info available. #7 0x6fa6b867 in zle_main_entry () from /usr/local/lib/zsh/4.3.10-dev-1/zsh/zle.so No symbol table info available. #8 0x08086cda in zleentry (cmd=3D1) at init.c:1304 ret =3D 0x0 ap =3D 0x779ff8f4 "\004\071\017\b\214\070\017\b\a" #9 0x08087b93 in inputline () No symbol table info available. #10 0x08087dc8 in ingetc () No symbol table info available. #11 0x0807d595 in ihgetc () at hist.c:263 c =3D 0 #12 0x08091c26 in zshlex () No symbol table info available. #13 0x080ab108 in parse_event () at parse.c:451 No locals. #14 0x08084209 in loop (toplevel=3D1, justonce=3D0) at init.c:132 ---Type to continue, or q to quit--- prog =3D 0x6fb89ab0 err =3D 50 non_empty =3D 1 #15 0x08087053 in zsh_main (argc=3D1, argv=3D0x779ffaf4) at init.c:1454 t =3D 0x779ffaf8 t0 =3D 158 #16 0x08055522 in main () No symbol table info available. (gdb) s 1356 s =3D ztrdup(clwords[clwpos]); (gdb) print clwpos $15 =3D 0 (gdb) print clwords[0] $16 =3D 0x82fb758 "" (gdb) print clwords[1] $17 =3D 0x0 (gdb) s 1403 if (we > zlemetall) (gdb) 1405 tt =3D zlemetaline; (gdb) 1406 if (tmp) { (gdb) print tt $18 =3D 0x6fb89748 "./x" (gdb) print tmp $19 =3D 0x8223058 "./" (gdb) s 1407 zlemetaline =3D tmp; (gdb) 1408 zlemetall =3D strlen(zlemetaline); (gdb) 1410 if (t0 !=3D STRING && inwhat !=3D IN_MATH) { (gdb) print zlemetall $20 =3D 2 (gdb) print zlemetaline $21 =3D 0x8223058 "./" (gdb) s 1423 noaliases =3D ona; (gdb) 1430 if (inwhat !=3D IN_MATH) { (gdb) 1431 char *nnb, *nb =3D NULL, *ne =3D NULL; (gdb) 1433 i =3D 0; (gdb) 1434 MB_METACHARINIT(); (gdb) mb_metacharinit () at utils.c:448 448 memset(&mb_shiftstate, 0, sizeof(mb_shiftstate)); (gdb) 449 } (gdb) get_comp_string () at zle_tricky.c:1435 1435 if (itype_end(s, IIDENT, 1) =3D=3D s) (gdb) itype_end (ptr=3D0x82fb7a0 "", itype=3D128, once=3D1) at utils.c:3308 3308 if (isset(MULTIBYTE) && (gdb) 3310 mb_metacharinit(); (gdb) mb_metacharinit () at utils.c:448 448 memset(&mb_shiftstate, 0, sizeof(mb_shiftstate)); (gdb) 449 } (gdb) itype_end (ptr=3D0x82fb7a0 "", itype=3D128, once=3D1) at utils.c:3311 3311 while (*ptr) { (gdb) 3376 return (char *)ptr; (gdb) 3377 } (gdb) get_comp_string () at zle_tricky.c:1436 1436 nnb =3D s + MB_METACHARLEN(s); (gdb) mb_metacharlenconv (s=3D0x82fb7a0 "", wcp=3D0x0) at utils.c:4254 4254 if (!isset(MULTIBYTE)) { (gdb) 4270 if (itok(*s)) { (gdb) 4276 return mb_metacharlenconv_r(s, wcp, &mb_shiftstate); (gdb) mb_metacharlenconv_r (s=3D0x82fb7a0 "", wcp=3D0x0, mbsp=3D0x80f0ccc) at uti= ls.c:4205 4205 size_t ret =3D MB_INVALID; (gdb) 4210 for (ptr =3D s; *ptr; ) { (gdb) 4229 if (wcp) (gdb) print s $22 =3D 0x82fb7a0 "" (gdb) s 4232 memset(mbsp, 0, sizeof(*mbsp)); (gdb) 4233 if (ptr > s) { (gdb) print ptr $23 =3D 0x82fb7a0 "" (gdb) s 4236 return 0; /* Probably shouldn't happen */ (gdb) bt full #0 mb_metacharlenconv_r (s=3D0x82fb7a0 "", wcp=3D0x0, mbsp=3D0x80f0ccc) at utils.c:4236 ret =3D 4294967295 inchar =3D 0 '\000' ptr =3D 0x82fb7a0 "" wc =3D 238448 L'p' #1 0x080d4e67 in mb_metacharlenconv (s=3D0x82fb7a0 "", wcp=3D0x0) at utils= .c:4276 No locals. #2 0x6fa7c97c in get_comp_string () at zle_tricky.c:1436 nnb =3D 0x779ff448 "H\227\270oZ0\"\by\227\270oz\227\270o\001" nb =3D 0x0 ne =3D 0x0 t0 =3D 34 tt0 =3D 34 i =3D 0 j =3D 0 k =3D 0 cp =3D 1 rd =3D 0 sl =3D 1 ocs =3D 0 ins =3D 0 oins =3D 0 ia =3D 0 parct =3D 0 varq =3D 0 ona =3D 0 qsub =3D 0 zlemetacs_qsub =3D 2 redirpos =3D 0 s =3D 0x82fb7a0 "" tmp =3D 0x8223058 "./" ---Type to continue, or q to quit--- p =3D 0x0 tt =3D 0x6fb89748 "./x" rdop =3D "\000\060\"\b\030\364\237wY0\"\b\001\000\000\000\060\310/\= b" linptr =3D 0x6fb89748 "./x" u =3D 0x822305a "" #3 0x6fa7a2bc in docomplete (lst=3D4) at zle_tricky.c:659 s =3D 0x41b6cedb "\201\303\031\301\v" ol =3D 0x0 olst =3D 4 chl =3D 0 ne =3D 0 ocs =3D 2 ret =3D 0 dat =3D {1877915328, 2006971800} active =3D 1 #4 0x6fa7975f in expandorcomplete (args=3D0x6fa8fd40) at zle_tricky.c:315 ret =3D 2006972408 #5 0x6fa79302 in completecall (args=3D0x6fa8fd40) at zle_tricky.c:208 No locals. #6 0x6fa68fcd in execzlefunc () from /usr/local/lib/zsh/4.3.10-dev-1/zsh/z= le.so No symbol table info available. #7 0x6fa691f2 in zlecore () from /usr/local/lib/zsh/4.3.10-dev-1/zsh/zle.s= o No symbol table info available. #8 0x6fa697f9 in zleread () from /usr/local/lib/zsh/4.3.10-dev-1/zsh/zle.s= o No symbol table info available. #9 0x6fa6b867 in zle_main_entry () from /usr/local/lib/zsh/4.3.10-dev-1/zsh/zle.so No symbol table info available. #10 0x08086cda in zleentry (cmd=3D1) at init.c:1304 ret =3D 0x0 ap =3D 0x779ff8f4 "\004\071\017\b\214\070\017\b\a" #11 0x08087b93 in inputline () ---Type to continue, or q to quit--- No symbol table info available. #12 0x08087dc8 in ingetc () No symbol table info available. #13 0x0807d595 in ihgetc () at hist.c:263 c =3D 0 #14 0x08091c26 in zshlex () No symbol table info available. #15 0x080ab108 in parse_event () at parse.c:451 No locals. #16 0x08084209 in loop (toplevel=3D1, justonce=3D0) at init.c:132 prog =3D 0x6fb89ab0 err =3D 50 non_empty =3D 1 #17 0x08087053 in zsh_main (argc=3D1, argv=3D0x779ffaf4) at init.c:1454 t =3D 0x779ffaf8 t0 =3D 158 #18 0x08055522 in main () No symbol table info available. (gdb) s 4237 } (gdb) mb_metacharlenconv (s=3D0x82fb7a0 "", wcp=3D0x0) at utils.c:4277 4277 } (gdb) get_comp_string () at zle_tricky.c:1439 1439 for (tt =3D s; tt < s + zlemetacs_qsub - wb;) { (gdb) print tt $24 =3D 0x6fb89748 "./x" (gdb) print s $25 =3D 0x82fb7a0 "" (gdb) print zlemetacs_qsub $26 =3D 2 (gdb) print wb $27 =3D 0 (and at this point the infinite loop starts) --=20 Mikael Magnusson