From: Eli Zaretskii <eliz@gnu.org>
To: cyd@stupidchicken.com, emacs-devel@gnu.org
Subject: Re: Emacs 23.1.93 pretest
Date: Sat, 27 Feb 2010 12:21:03 +0200 [thread overview]
Message-ID: <833a0ndlo0.fsf@gnu.org> (raw)
In-Reply-To: <83fx4n122q.fsf@gnu.org>
> Date: Sat, 27 Feb 2010 11:05:01 +0200
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: emacs-devel@gnu.org
>
> > From: Chong Yidong <cyd@stupidchicken.com>
> > Date: Fri, 26 Feb 2010 22:40:05 -0500
> >
> > Emacs pretest 23.1.93 is now available for download via FTP, at the
> > following location:
> >
> > ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-23.1.93.tar.gz
> >
> > The xdelta against the Emacs 23.1.92 pretest is here:
> >
> > ftp://alpha.gnu.org/gnu/emacs/pretest/emacs-23.1.92-23.1.93.xdelta
> >
> > This is the fourth pretest for what will be the Emacs 23.2 release.
>
> It crashes for me on MS-Windows, while loading my desktop file. I'm
> trying to debug this.
The problem is this line from my desktop file:
(setq regexp-search-ring '("[^]$" "\\bmac" "\\`n" "\\`m" "\\\\`ma" "\\. [^ ]" "^`" "^\\\\" "/[A-Za-z] " "/. ." " $" "/.*ş" "/.*\naba/f" "^" "/.*H" "[[^ ]*[^]] "))
There's a Latin-2 character `ş' there. If I delete the "/.*ş" part of
the regexp-search-ring, Emacs starts correctly. Emacs 23.1.92 loads
the same desktop file without any trouble, so this is a regression.
From this and other symptoms (see below), it looks like the emacs-mule
decoding is broken in this pretest. For example, visiting the
offending desktop file with the Latin-2 character in place causes many
characters following this Latin-2 character to disappear from display,
as if they didn't exist in the file. Killing the buffer and visiting
the file again magically restores the characters that disappeared.
I cannot produce a GDB backtrace: I could not find a way of
reproducing the crash under GDB. All I get is a weird
wrong-type-argument error:
Debugger entered--Lisp error: (wrong-type-argument symbolp (quote ((tab-width . 8) (buffer-file-coding-system . iso-latin-1-unix) (case-fold-search . t))))
But I think this is because the failure to decode the desktop file
correctly causes Emacs to try evaluating a butchered expression.
FWIW, here's the backtrace of the crash produced by Dr MinGW, a GIT
debugger that pops up when Emacs crashes. Note that it crashes in
decode_coding_emacs_mule, yet another sign that this is the culprit.
emacs.exe caused an Access Violation at location 0112b000 in module emacs.exe Reading from location 03194000.
Registers:
eax=03194000 ebx=00000000 ecx=03194000 edx=00002c50 esi=00000000 edi=0081572c
eip=0112b000 esp=0080a550 ebp=0080a5b8 iopl=0 nv up ei ng nz ac pe cy
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000293
Call stack:
0112B000 emacs.exe:0112B000 decode_coding_emacs_mule coding.c:2497
...
c = byte_after_cr, byte_after_cr = -1;
else
> ONE_MORE_BYTE (c);
if (c < 0 || c == 0x80)
...
01134F4F emacs.exe:01134F4F decode_coding coding.c:7158
...
coding->charbuf_used = carryover;
(*(coding->decoder)) (coding);
> coding_set_destination (coding);
carryover = produce_chars (coding, translation_table, 0);
if (coding->annotated)
...
01138823 emacs.exe:01138823 decode_coding_gap coding.c:7666
...
current_buffer->text->inhibit_shrinking = 1;
decode_coding (coding);
> current_buffer->text->inhibit_shrinking = 0;
attrs = CODING_ID_ATTRS (coding->id);
...
0104E7B8 emacs.exe:0104E7B8 Finsert_file_contents fileio.c:4083
...
decode_coding_gap (&coding, inserted, inserted);
inserted = coding.produced_char;
> coding_system = CODING_ID_NAME (coding.id);
}
else if (inserted > 0)
...
0100C5AD emacs.exe:0100C5AD Ffuncall eval.c:3038
...
goto done;
case 5:
> val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1],
internal_args[2], internal_args[3],
internal_args[4]);
...
0111E0F6 emacs.exe:0111E0F6 Fbyte_code bytecode.c:679
...
}
#endif
> TOP = Ffuncall (op + 1, &TOP);
AFTER_POTENTIAL_GC ();
break;
...
0100C012 emacs.exe:0100C012 funcall_lambda eval.c:3216
...
}
> return unbind_to (count, val);
}
...
0100C3F6 emacs.exe:0100C3F6 Ffuncall eval.c:3093
...
done:
CHECK_CONS_LIST ();
> lisp_eval_depth--;
if (backtrace.debug_on_exit)
val = call_debugger (Fcons (Qexit, Fcons (val, Qnil)));
...
0100C78E emacs.exe:0100C78E call4 eval.c:2880
...
RETURN_UNGCPRO (Ffuncall (5, &fn));
#endif /* not NO_ARG_ARRAY */
> }
/* Call function fn with 5 arguments arg1, arg2, arg3, arg4, arg5 */
...
0107AC20 emacs.exe:0107AC20 Fload lread.c:1225
...
NILP (noerror) ? Qnil : Qt,
(NILP (nomessage) || force_load_messages) ? Qnil : Qt);
> return unbind_to (count, val);
}
}
...
0100C5AD emacs.exe:0100C5AD Ffuncall eval.c:3038
...
goto done;
case 5:
> val = (*XSUBR (fun)->function) (internal_args[0], internal_args[1],
internal_args[2], internal_args[3],
internal_args[4]);
...
0111E0F6 emacs.exe:0111E0F6 Fbyte_code bytecode.c:679
...
}
#endif
> TOP = Ffuncall (op + 1, &TOP);
AFTER_POTENTIAL_GC ();
break;
...
0100C012 emacs.exe:0100C012 funcall_lambda eval.c:3216
...
}
> return unbind_to (count, val);
}
...
0100C3F6 emacs.exe:0100C3F6 Ffuncall eval.c:3093
...
done:
CHECK_CONS_LIST ();
> lisp_eval_depth--;
if (backtrace.debug_on_exit)
val = call_debugger (Fcons (Qexit, Fcons (val, Qnil)));
...
0111E0F6 emacs.exe:0111E0F6 Fbyte_code bytecode.c:679
...
}
#endif
> TOP = Ffuncall (op + 1, &TOP);
AFTER_POTENTIAL_GC ();
break;
...
0100C012 emacs.exe:0100C012 funcall_lambda eval.c:3216
...
}
> return unbind_to (count, val);
}
...
0100C3F6 emacs.exe:0100C3F6 Ffuncall eval.c:3093
...
done:
CHECK_CONS_LIST ();
> lisp_eval_depth--;
if (backtrace.debug_on_exit)
val = call_debugger (Fcons (Qexit, Fcons (val, Qnil)));
...
0100CB8B emacs.exe:0100CB8B run_hook_with_args eval.c:2683
...
{
args[0] = XCAR (val);
> ret = Ffuncall (nargs, args);
}
}
...
0100CD1C emacs.exe:0100CD1C Frun_hooks eval.c:2534
...
register int i;
> for (i = 0; i < nargs; i++)
{
hook[0] = args[i];
...
0100C6B4 emacs.exe:0100C6B4 Ffuncall eval.c:3005
...
if (XSUBR (fun)->max_args == MANY)
{
> val = (*XSUBR (fun)->function) (numargs, args + 1);
goto done;
}
...
0111E0F6 emacs.exe:0111E0F6 Fbyte_code bytecode.c:679
...
}
#endif
> TOP = Ffuncall (op + 1, &TOP);
AFTER_POTENTIAL_GC ();
break;
...
0100C012 emacs.exe:0100C012 funcall_lambda eval.c:3216
...
}
> return unbind_to (count, val);
}
...
0100C3F6 emacs.exe:0100C3F6 Ffuncall eval.c:3093
...
done:
CHECK_CONS_LIST ();
> lisp_eval_depth--;
if (backtrace.debug_on_exit)
val = call_debugger (Fcons (Qexit, Fcons (val, Qnil)));
...
0111E0F6 emacs.exe:0111E0F6 Fbyte_code bytecode.c:679
...
}
#endif
> TOP = Ffuncall (op + 1, &TOP);
AFTER_POTENTIAL_GC ();
break;
...
0100C012 emacs.exe:0100C012 funcall_lambda eval.c:3216
...
}
> return unbind_to (count, val);
}
...
0100D1AD emacs.exe:0100D1AD apply_lambda eval.c:3135
...
}
backtrace_list->evalargs = 0;
> tem = funcall_lambda (fun, XINT (numargs), arg_vector);
/* Do the debug-on-exit now, while arg_vector still exists. */
...
0100B906 emacs.exe:0100B906 Feval eval.c:2413
...
CHECK_CONS_LIST ();
> lisp_eval_depth--;
if (backtrace.debug_on_exit)
val = call_debugger (Fcons (Qexit, Fcons (val, Qnil)));
...
01053927 emacs.exe:01053927 top_level_2 keyboard.c:1370
...
{
return Feval (Vtop_level);
> }
Lisp_Object
...
0100A16A emacs.exe:0100A16A internal_condition_case eval.c:1491
...
val = (*bfun) ();
> catchlist = c.next;
handlerlist = h.next;
return val;
...
01053959 emacs.exe:01053959 top_level_1 keyboard.c:1382
...
else
message ("Bare Emacs (standard Lisp code not loaded)");
> return Qnil;
}
...
0100A09F emacs.exe:0100A09F internal_catch eval.c:1226
...
/* Call FUNC. */
if (! _setjmp (c.jmp))
> c.val = (*func) (arg);
/* Throw works by a longjmp that comes right here. */
...
010536F9 emacs.exe:010536F9 command_loop keyboard.c:1339
...
any_kboard_state ();
#endif
> internal_catch (Qtop_level, command_loop_2, Qnil);
executing_kbd_macro = Qnil;
...
010537B0 emacs.exe:010537B0 recursive_edit_1 keyboard.c:955
...
val = command_loop ();
> if (EQ (val, Qt))
Fsignal (Qquit, Qnil);
/* Handle throw from read_minibuf when using minibuffer
...
010538D1 emacs.exe:010538D1 Frecursive_edit keyboard.c:1017
...
recursive_edit_1 ();
> return unbind_to (count, Qnil);
}
...
01002E2F emacs.exe:01002E2F main emacs.c:1836
...
/* NOTREACHED */
return 0;
> }
/* Sort the args so we can find the most important ones
...
0100124B emacs.exe:0100124B
01001298 emacs.exe:01001298
7C816D4F kernel32.dll:7C816D4F RegisterWaitForInputIdle
next prev parent reply other threads:[~2010-02-27 10:21 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-27 3:40 Emacs 23.1.93 pretest Chong Yidong
2010-02-27 9:05 ` Eli Zaretskii
2010-02-27 10:21 ` Eli Zaretskii [this message]
2010-02-27 11:28 ` Juanma Barranquero
2010-02-27 12:11 ` Juanma Barranquero
2010-02-27 13:15 ` Eli Zaretskii
2010-02-27 14:14 ` Eli Zaretskii
2010-02-27 14:31 ` Andreas Schwab
2010-02-27 14:54 ` Eli Zaretskii
2010-02-27 14:59 ` Lennart Borgman
2010-02-27 15:29 ` Eli Zaretskii
2010-02-27 15:22 ` Chong Yidong
2010-02-27 18:58 ` Eli Zaretskii
2010-03-04 11:32 ` Kenichi Handa
2010-03-04 12:35 ` Jason Rumney
2010-02-27 15:39 ` Juanma Barranquero
2010-02-27 19:41 ` Stefan Monnier
2010-02-27 11:57 ` Eli Zaretskii
2010-02-27 19:03 ` Eli Zaretskii
2010-02-27 21:37 ` Chong Yidong
2010-02-27 22:22 ` Eli Zaretskii
2010-02-28 1:25 ` Chong Yidong
2010-02-28 17:21 ` Eli Zaretskii
2010-02-28 1:45 ` Chong Yidong
2010-02-28 10:46 ` Andreas Schwab
2010-02-28 14:25 ` Chong Yidong
2010-02-28 15:38 ` Andreas Schwab
2010-02-28 17:32 ` Eli Zaretskii
2010-02-28 19:31 ` Eli Zaretskii
2010-03-02 18:15 ` Eli Zaretskii
2010-03-02 19:53 ` Chong Yidong
2010-03-02 20:53 ` Eli Zaretskii
2010-03-04 11:24 ` Kenichi Handa
2010-02-28 17:34 ` Eli Zaretskii
2010-02-28 21:34 ` Chong Yidong
2010-02-28 17:15 ` Eli Zaretskii
2010-03-02 15:42 ` Drew Adams
2010-03-02 16:02 ` Chong Yidong
2010-03-02 18:35 ` Drew Adams
2010-03-02 19:53 ` Chong Yidong
2010-03-04 14:36 ` bug#5679: " Sergei Organov
2010-03-04 15:57 ` Chong Yidong
2010-03-04 17:43 ` osv
2010-03-04 18:06 ` Chong Yidong
2010-03-04 19:22 ` osv
2010-03-09 0:05 ` YAMAMOTO Mitsuharu
2010-03-09 9:57 ` osv
2010-03-09 11:30 ` osv
2010-03-10 11:19 ` YAMAMOTO Mitsuharu
2010-03-10 11:29 ` osv
2010-03-10 11:54 ` YAMAMOTO Mitsuharu
2010-03-10 12:12 ` osv
2010-03-11 0:38 ` YAMAMOTO Mitsuharu
2010-03-10 6:23 ` YAMAMOTO Mitsuharu
2010-03-10 10:05 ` osv
-- strict thread matches above, loose matches on Subject: below --
2010-04-03 1:13 Chong Yidong
2010-04-03 1:34 ` Juanma Barranquero
2010-04-03 2:36 ` Chong Yidong
2010-04-03 2:38 ` Juanma Barranquero
2010-04-03 9:33 ` Eli Zaretskii
2010-04-03 12:45 ` Sean Sieger
2010-04-03 13:53 ` Eli Zaretskii
2010-04-03 15:06 ` Chong Yidong
2010-04-03 15:52 ` Eli Zaretskii
2010-04-03 1:45 ` Sean Sieger
2010-04-03 7:01 ` Eli Zaretskii
2010-04-03 8:26 ` Eli Zaretskii
2010-04-04 19:22 ` Drew Adams
2010-04-05 0:48 ` Sean Sieger
2010-04-11 18:30 ` Uwe Siart
2010-04-11 18:34 ` Uwe Siart
2010-04-05 9:33 ` Eduard Wiebe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=833a0ndlo0.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=cyd@stupidchicken.com \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.