From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: Re: Crash using text property 'composite on w32 Date: Tue, 12 Jun 2007 06:19:19 +0300 Message-ID: References: <466D7903.6040508@gmail.com> <466DDFA5.3090202@gnu.org> <466DE91F.5030409@gmail.com> Reply-To: Eli Zaretskii NNTP-Posting-Host: lo.gmane.org X-Trace: sea.gmane.org 1181618375 21549 80.91.229.12 (12 Jun 2007 03:19:35 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Tue, 12 Jun 2007 03:19:35 +0000 (UTC) Cc: lekktu@gmail.com, bug-gnu-emacs@gnu.org To: "Lennart Borgman (gmail)" Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Jun 12 05:19:33 2007 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1Hxwuq-00071L-Hb for geb-bug-gnu-emacs@m.gmane.org; Tue, 12 Jun 2007 05:19:32 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Hxwuq-0004oY-Ah for geb-bug-gnu-emacs@m.gmane.org; Mon, 11 Jun 2007 23:19:32 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Hxwun-0004oJ-I4 for bug-gnu-emacs@gnu.org; Mon, 11 Jun 2007 23:19:29 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Hxwul-0004o7-JH for bug-gnu-emacs@gnu.org; Mon, 11 Jun 2007 23:19:29 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Hxwul-0004o4-GY for bug-gnu-emacs@gnu.org; Mon, 11 Jun 2007 23:19:27 -0400 Original-Received: from heller.inter.net.il ([213.8.233.23]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Hxwuk-00031K-8z for bug-gnu-emacs@gnu.org; Mon, 11 Jun 2007 23:19:26 -0400 Original-Received: from HOME-C4E4A596F7 (IGLD-83-130-236-170.inter.net.il [83.130.236.170]) by heller.inter.net.il (MOS 3.7.3a-GA) with ESMTP id CUN47395 (AUTH halo1); Tue, 12 Jun 2007 06:19:20 +0300 (IDT) In-reply-to: <466DE91F.5030409@gmail.com> (lennart.borgman@gmail.com) X-detected-kernel: FreeBSD 4.7-5.2 (or MacOS X 10.2-10.4) (2) X-BeenThere: bug-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:15856 Archived-At: > Date: Tue, 12 Jun 2007 02:30:23 +0200 > From: "Lennart Borgman (gmail)" > Cc: bug-gnu-emacs@gnu.org > > Juanma Barranquero wrote: > > Program received signal SIGSEGV, Segmentation fault. > > 0x010c798a in run_composition_function (from=267, to=269, prop=520) > > at composite.c:456 > > 456 func = COMPOSITION_MODIFICATION_FUNC (prop); > > (gdb) bt > > #0 0x010c798a in run_composition_function (from=267, to=269, prop=520) > > at composite.c:456 > > Ah, thanks. I am not familiar with gdb. You could also configure drmingw.exe (from mingw-utils-0.3.tar.gz) as your JIT debugger. This is what I get from it if I try your recipe: emacs.exe caused an Access Violation at location 010c76ca in module emacs.exe Reading from location 00000208. Registers: eax=00000208 ebx=00000050 ecx=00000208 edx=00000208 esi=0000004e edi=00000052 eip=010c76ca esp=0082f3c0 ebp=0082f408 iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 Call stack: 010C76CA emacs.exe:010C76CA run_composition_function composite.c:456 static void run_composition_function( int from = , int to = , Lisp_Object prop = 520 ) ... int start, end; > func = COMPOSITION_MODIFICATION_FUNC (prop); /* If an invalid composition precedes or follows, try to make them valid too. */ ... 010C7A5C emacs.exe:010C7A5C update_compositions composite.c:517 void update_compositions( int from = 80, int to = 82, int check_mask = 3 ) ... } > if (check_mask & CHECK_INSIDE) { /* In this case, we are sure that (check & CHECK_TAIL) is also ... 0108871A emacs.exe:0108871A general_insert_function editfns.c:2178 static void general_insert_function( void ()(void) * insert_func = &insert, void ()(void) * insert_from_string_func = &insert_from_string, int inherit = 0, int nargs = 1, Lisp_Object * args = &30034243 ) ... else if (STRINGP (val)) { > (*insert_from_string_func) (val, 0, 0, SCHARS (val), SBYTES (val), ... 010887B2 emacs.exe:010887B2 Finsert editfns.c:2223 Lisp_Object Finsert( int nargs = 1, Lisp_Object * args = &30034243 ) ... { general_insert_function (insert, insert_from_string, 0, nargs, args); > return Qnil; } ... 0100B5D9 emacs.exe:0100B5D9 Feval eval.c:2331 Lisp_Object Feval( Lisp_Object form = 30228989 ) ... goto done; case 2: > val = (*XSUBR (fun)->function) (argvals[0], argvals[1]); goto done; case 3: ... 0100B8A7 emacs.exe:0100B8A7 Fprogn eval.c:448 Lisp_Object Fprogn( Lisp_Object args = 30228981 ) ... { val = Feval (XCAR (args)); > args = XCDR (args); } ... 0100DB3A emacs.exe:0100DB3A Flet eval.c:1065 Lisp_Object Flet( Lisp_Object args = 30228909 ) ... elt = Fprogn (Fcdr (args)); > return unbind_to (count, elt); } ... 0100B6A0 emacs.exe:0100B6A0 Feval eval.c:2275 Lisp_Object Feval( Lisp_Object form = 30228877 ) ... { backtrace.evalargs = 0; > val = (*XSUBR (fun)->function) (args_left); goto done; } ... 0100C0AD emacs.exe:0100C0AD Ffuncall eval.c:2997 Lisp_Object Ffuncall( int nargs = 2, Lisp_Object * args = &23873065 ) ... goto done; case 1: > val = (*XSUBR (fun)->function) (internal_args[0]); goto done; case 2: ... 0110C683 emacs.exe:0110C683 Fbyte_code bytecode.c:679 Lisp_Object Fbyte_code( Lisp_Object bytestr = 18775699, Lisp_Object vector = 18775716, Lisp_Object maxdepth = 64 ) ... } #endif > TOP = Ffuncall (op + 1, &TOP); AFTER_POTENTIAL_GC (); break; ... 0100B997 emacs.exe:0100B997 funcall_lambda eval.c:3189 static Lisp_Object funcall_lambda( Lisp_Object fun = , int nargs = 1, Lisp_Object * arg_vector = &23779329 ) ... } > return unbind_to (count, val); } ... 0100BE8C emacs.exe:0100BE8C Ffuncall eval.c:3066 Lisp_Object Ffuncall( int nargs = 2, Lisp_Object * args = &26681993 ) ... done: CHECK_CONS_LIST (); > lisp_eval_depth--; if (backtrace.debug_on_exit) val = call_debugger (Fcons (Qexit, Fcons (val, Qnil))); ... 0110C683 emacs.exe:0110C683 Fbyte_code bytecode.c:679 Lisp_Object Fbyte_code( Lisp_Object bytestr = 18776195, Lisp_Object vector = 18776212, Lisp_Object maxdepth = 32 ) ... } #endif > TOP = Ffuncall (op + 1, &TOP); AFTER_POTENTIAL_GC (); break; ... 0100B997 emacs.exe:0100B997 funcall_lambda eval.c:3189 static Lisp_Object funcall_lambda( Lisp_Object fun = , int nargs = 1, Lisp_Object * arg_vector = &23779329 ) ... } > return unbind_to (count, val); } ... 0100BE8C emacs.exe:0100BE8C Ffuncall eval.c:3066 Lisp_Object Ffuncall( int nargs = 2, Lisp_Object * args = &24273945 ) ... done: CHECK_CONS_LIST (); > lisp_eval_depth--; if (backtrace.debug_on_exit) val = call_debugger (Fcons (Qexit, Fcons (val, Qnil))); ... 0110B31E emacs.exe:0110B31E Fcall_interactively callint.c:862 Lisp_Object Fcall_interactively( Lisp_Object function = 24273945, Lisp_Object record_flag = 23779329, Lisp_Object keys = 23842820 ) ... val = Ffuncall (count + 1, args); UNGCPRO; > return unbind_to (speccount, val); } } ... 0105591A emacs.exe:0105591A Fcommand_execute keyboard.c:10116 Lisp_Object Fcommand_execute( Lisp_Object cmd = 24273945, Lisp_Object record_flag = 23779329, Lisp_Object keys = 23779329, Lisp_Object special = 23779329 ) ... backtrace.debug_on_exit = 0; > tem = Fcall_interactively (cmd, record_flag, keys); backtrace_list = backtrace.next; ... 0105C6CA emacs.exe:0105C6CA command_loop_1 keyboard.c:1873 Lisp_Object command_loop_1( ) ... if (NILP (current_kboard->Vprefix_arg)) Fundo_boundary (); > Fcommand_execute (Vthis_command, Qnil, Qnil, Qnil); #ifdef HAVE_X_WINDOWS ... 0100A2B7 emacs.exe:0100A2B7 internal_condition_case eval.c:1482 Lisp_Object internal_condition_case( Lisp_Object ()(void) * bfun = &command_loop_1, Lisp_Object handlers = 23847561, Lisp_Object ()(void) * hfun = &cmd_error ) ... val = (*bfun) (); > catchlist = c.next; handlerlist = h.next; return val; ... 01050556 emacs.exe:01050556 command_loop_2 keyboard.c:1329 Lisp_Object command_loop_2( ) ... do > val = internal_condition_case (command_loop_1, Qerror, cmd_error); while (!NILP (val)); ... 0100A1EC emacs.exe:0100A1EC internal_catch eval.c:1222 Lisp_Object internal_catch( Lisp_Object tag = 23837697, Lisp_Object ()(void) * func = &command_loop_2, Lisp_Object arg = 23779329 ) ... /* Call FUNC. */ if (! _setjmp (c.jmp)) > c.val = (*func) (arg); /* Throw works by a longjmp that comes right here. */ ... 010503A3 emacs.exe:010503A3 command_loop keyboard.c:1312 Lisp_Object command_loop( ) ... /* End of file in -batch run causes exit here. */ > if (noninteractive) Fkill_emacs (Qt); } ... 01050437 emacs.exe:01050437 recursive_edit_1 keyboard.c:1007 Lisp_Object recursive_edit_1( ) ... val = command_loop (); > if (EQ (val, Qt)) Fsignal (Qquit, Qnil); /* Handle throw from read_minibuf when using minibuffer ... 0105051C emacs.exe:0105051C Frecursive_edit keyboard.c:1068 Lisp_Object Frecursive_edit( ) ... recursive_edit_1 (); > return unbind_to (count, Qnil); } ... 010029E8 emacs.exe:010029E8 main emacs.c:1765 int main( int argc = 2, char * * argv = &0x012be1b8 ) ... /* NOTREACHED */ return 0; > } /* Sort the args so we can find the most important ones ... 010011E7 emacs.exe:010011E7 01001238 emacs.exe:01001238 7C816D4F kernel32.dll:7C816D4F RegisterWaitForInputIdle