unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
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

  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).