bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Crash using text property 'composite on w32


From: Eli Zaretskii
Subject: Re: Crash using text property 'composite on w32
Date: Tue, 12 Jun 2007 06:19:19 +0300

> 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 via email to

[Prev in Thread] Current Thread [Next in Thread]