[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: 23.0.60; SEGV in font_score()
From: |
James Cloos |
Subject: |
Re: 23.0.60; SEGV in font_score() |
Date: |
Sun, 08 Jun 2008 14:54:01 -0400 |
User-agent: |
Gnus/5.110011 (No Gnus v0.11) Emacs/23.0.60 (gnu/linux) |
>>>>> "Handa" == Kenichi Handa <address@hidden> writes:
>> I was able to convince the xpr macro in gdb to tell me that the first
>> element of entity is "xft",
Handa> Hmmm, then it seems that at least entity is a correct
Handa> font-entity object. So, perhaps the 2nd element (you wrote
Handa> that `i' was 2) of it was set to something other than symbol.
Yes. If the elements of entity are laid out in order in VM as an array
of struct Lisp_Vector then after "xft" comes a Lisp_Symbol "nil" and
then a Lisp_Float which xpr cannot dereference; the (alleged) pointer
it tries to deref is at 0x4020000e. Otherwise, ....
Handa> I've just installed a new gdb function xfont of .gdbinit.
Handa> With that, you can do something like this:
Handa> (gdb) p entity
Handa> $1 = 147592732
Handa> (gdb) xfont
Handa> $2 = (struct font_entity *) 0x8cc1618
Handa> (gdb) p $2->props[FONT_FAMILY_INDEX]
Handa> $3 = 148609265
Handa> (gdb) xtype
Handa> Lisp_Symbol
I'll give that a try.
Handa> And also this will help.
Handa> (gdb) up 2
Handa> #2 0x081e64d7 in font_find_for_lface (f=0x84e5300, attrs=0x89ea6f8,
spec=147460412, c=-1) at font.c:2893
Handa> (gdb) pr spec
Handa> (gdb) pr prefer
(from the core I offered:)
(gdb) up 2
#6 0x08210a36 in font_find_for_lface (f=0x8cb2740, attrs=0xa773f98,
spec=147711324, c=-1)
at font.c:2893
2893 entities = font_sort_entites (entities, prefer, frame, spec, c <
0);
(gdb) pr spec
Cannot access memory at address 0x83c63d0
(gdb) pr prefer
Cannot access memory at address 0x83c63d0
(gdb)
So I tried:
(gdb) p spec
$35 = 147711324
(gdb) xvector
$36 = (struct Lisp_Vector *) 0x8cde558
0
(gdb) p {struct Lisp_Vector}0x8cde558
$37 = {
size = 1075838989,
next = 0x84fa938,
contents = {138488009}
}
(gdb) p {Lisp_Object}0x8cde560
$38 = 138488009
(gdb) xpr
Lisp_Symbol
$39 = (struct Lisp_Symbol *) 0x84128c8
"nil"
(gdb)
(gdb) p prefer
$40 = 138734020
(gdb) xvector
$41 = (struct Lisp_Vector *) 0x844e9c0
0
(gdb) p {struct Lisp_Vector}0x844e9c0
$42 = {
size = 1075838989,
next = 0x844e960,
contents = {138488009}
}
(gdb) p {Lisp_Object}0x844e9c8
$43 = 138488009
(gdb) xpr
Lisp_Symbol
$44 = (struct Lisp_Symbol *) 0x84128c8
"nil"
(gdb)
I hope I got that right.
-JimC
--
James Cloos <address@hidden> OpenPGP: 1024D/ED7DAEA6
- 23.0.60; SEGV in font_score(), James Cloos, 2008/06/04
- Re: 23.0.60; SEGV in font_score(), Kenichi Handa, 2008/06/05
- Re: 23.0.60; SEGV in font_score(), James Cloos, 2008/06/05
- Re: 23.0.60; SEGV in font_score(), James Cloos, 2008/06/06
- Re: 23.0.60; SEGV in font_score(), James Cloos, 2008/06/06
- Re: 23.0.60; SEGV in font_score(), James Cloos, 2008/06/07
- Re: 23.0.60; SEGV in font_score(), Kenichi Handa, 2008/06/08
- Re: 23.0.60; SEGV in font_score(),
James Cloos <=
- Re: 23.0.60; SEGV in font_score(), James Cloos, 2008/06/09
- Re: 23.0.60; SEGV in font_score(), Kenichi Handa, 2008/06/09