From: Eli Zaretskii <eliz@gnu.org>
To: "Lennart Borgman (gmail)" <lennart.borgman@gmail.com>
Cc: lekktu@gmail.com, bug-gnu-emacs@gnu.org
Subject: Re: Crash using text property 'composite on w32
Date: Tue, 12 Jun 2007 06:19:19 +0300 [thread overview]
Message-ID: <u7iq9kgg8.fsf@gnu.org> (raw)
In-Reply-To: <466DE91F.5030409@gmail.com> (lennart.borgman@gmail.com)
> Date: Tue, 12 Jun 2007 02:30:23 +0200
> From: "Lennart Borgman (gmail)" <lennart.borgman@gmail.com>
> 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
next prev parent reply other threads:[~2007-06-12 3:19 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-11 16:32 Crash using text property 'composite on w32 Lennart Borgman (gmail)
2007-06-11 23:49 ` Jason Rumney
2007-06-11 23:58 ` Lennart Borgman (gmail)
2007-06-12 0:04 ` Jason Rumney
2007-06-12 0:07 ` Juanma Barranquero
2007-06-12 0:30 ` Lennart Borgman (gmail)
2007-06-12 3:19 ` Eli Zaretskii [this message]
2007-06-12 10:28 ` Lennart Borgman (gmail)
2007-06-12 15:44 ` Chong Yidong
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=u7iq9kgg8.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=bug-gnu-emacs@gnu.org \
--cc=lekktu@gmail.com \
--cc=lennart.borgman@gmail.com \
/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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).