emacs-devel
[Top][All Lists]
Advanced

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

Re: Emacs crashes


From: Nick Roberts
Subject: Re: Emacs crashes
Date: Wed, 15 Mar 2006 20:49:55 +1300

 > > (gdb) p last_marked[481]
 > > $4 = 167781611
 > > (gdb) xtype
 > > Lisp_String
 > > (gdb) xcons
 > > $5 = (struct Lisp_Cons *) 0xa0024e8
 > > {
 > >   car = 0x4, 
 > >   u = {
 > >     cdr = 0xffffffff, 
 > >     chain = 0xffffffff
 > >   }
 > > }
 > > 
 > > These last addresses looks suspect
 > 
 > Yes.

Sorry, that was a mistake, I should have type xstring instead of xcons.

(gdb) p* (struct Lisp_String *) 0xa0024e8
$15 = {
  size = 4, 
  size_byte = -1, 
  intervals = 0x10, 
  data = 0xa66c79c "\301\b!\207"
}

which is what the variable ptr points to and it crashes out on the line:

MARK_INTERVAL_TREE (ptr->intervals);

 > > I don't know what to do next.
 > 
 > You need to go back in time ;-).  Print previous values in
 > last_marked[] and correlate them with the backtrace.  In each frame of
 > the backtrace, you will see what kind of Lisp primitive data type is
 > being marked, but since some subroutines of mark_object have loops,
 > you won't see all the components being marked in the backtrace, so
 > last_marked[] will fill in the blanks.
 > 
 > For each Lisp type you find in last_marked[], try to establish its
 > type and name, and, if it's a string, the value.  The name and the
 > string value are the most important parts, since you can then grep the
 > sources to find out what data structure it could belong to.  Continue
 > doing this until you find a symbol that is a global or buffer-local
 > variable you can identify in the sources.

Here are some values below but I can't see a connection between them.  I
guess I should try to work out what created (struct Lisp_String *) 0xa0024e8.

Nick


(gdb) p last_marked[482]
$24 = 173755437
(gdb) xtyp
Lisp_Cons
(gdb) p last_marked[481]
$1 = 167781611
(gdb) xtyp
Lisp_String
(gdb) xstring
$2 = (struct Lisp_String *) 0xa0024e8
"\301\b!\207"
(gdb) p last_marked[480]
$3 = 138964225
(gdb) xtyp
Lisp_Symbol
(gdb) xsym
$4 = (struct Lisp_Symbol *) 0x8486d00
"rev"
(gdb) p last_marked[479]
$5 = 174656941
(gdb) xtyp
Lisp_Cons
(gdb) xcons
$6 = (struct Lisp_Cons *) 0xa690da8
{
  car = 0x8486d01, 
  u = {
    cdr = 0x837b8c9, 
    chain = 0x837b8c9
  }
}
(gdb) p last_marked[478]
$11 = 140320329
(gdb) xtyp
Lisp_Symbol
(gdb) xsym
$12 = (struct Lisp_Symbol *) 0x85d1e48
"backend"
(gdb) p last_marked[477]
$13 = 174656909
(gdb) xtyp
Lisp_Cons
(gdb) xcons
$14 = (struct Lisp_Cons *) 0xa690d88
{
  car = 0x85d1e49, 
  u = {
    cdr = 0xa690dad, 
    chain = 0xa690dad
  }
}
(gdb) p last_marked[476]
$21 = 175717180
(gdb) xtyp
Lisp_Vectorlike
PVEC_COMPILED
(gdb) p last_marked[475]
$22 = 137869537
(gdb) xtyp
Lisp_Symbol
(gdb) xsym
$23 = (struct Lisp_Symbol *) 0x837b8e0
"unbound"
(gdb) p last_marked[482]
$24 = 173755437
(gdb) xtyp
Lisp_Cons
(gdb) p last_marked[474]
$25 = 172548329
(gdb) xtyp
Lisp_Symbol
(gdb) xsym
$26 = (struct Lisp_Symbol *) 0xa48e0e8
"vc-default-show-log-entry"
(gdb) p last_marked[473]
$1 = 160558849
(gdb) xtyp
Lisp_Symbol
(gdb) xsym
$2 = (struct Lisp_Symbol *) 0x991ef00
"ediff-skip-merge-regions-that-differ-from-default"
(gdb) p last_marked[472]
$3 = 137869513
(gdb) xtyp
Lisp_Symbol
(gdb) xsym
$4 = (struct Lisp_Symbol *) 0x837b8c8
"nil"
(gdb) p last_marked[471]
$5 = 137869513
(gdb) xtyp
Lisp_Symbol
(gdb) xsym
$6 = (struct Lisp_Symbol *) 0x837b8c8
"nil"
(gdb) p last_marked[470]
$7 = 137869513
(gdb) xtyp
Lisp_Symbol
(gdb) xsym
$8 = (struct Lisp_Symbol *) 0x837b8c8
"nil"
(gdb) p last_marked[469]
$9 = 376392
(gdb) xtyp
Lisp_Int
(gdb) xint
$10 = 47049
(gdb) p last_marked[468]
$13 = 148534611
(gdb) xtyp
Lisp_String
(gdb) xstring
$14 = (struct Lisp_String *) 0x8da7550
"/home/nickrob/emacs/lisp/mail/sendmail.elc"




reply via email to

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