[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#3090: 23.0.92.3; hang involving XftGlyphExtents after moving cursor
From: |
Daniel Clemente |
Subject: |
bug#3090: 23.0.92.3; hang involving XftGlyphExtents after moving cursor |
Date: |
Thu, 14 May 2009 14:03:35 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.92 (gnu/linux) |
El dj, abr 23 2009, Daniel Clemente va escriure:
> This is a hang I had with the code from 20.m4.2009, which I could not
> reproduce anymore.
Today it happened again with a newer Emacs, showing the same effects:
XftCharIndex(0xcd8b200, 0xcac8b80, 32, 786432, 8)
= 411
XftGlyphExtents(0xcd8b200, 0xcac8b80, 0xbf9fe14c, 1, 0xbf9fdfa8)
= 0
memmove(0xbf9fdfa8, 0xfa68e18, 72, 0xbf9fdffc, 0xbf9fe000)
= 0xbf9fdfa8
memmove(0xbf9fde08, 0xf3cc098, 72, 12, 0xbf9fde08)
= 0xbf9fde08
__ctype_tolower_loc()
= 0xb70c6b14
__ctype_tolower_loc()
= 0xb70c6b14
__ctype_tolower_loc()
= 0xb70c6b14
__ctype_tolower_loc()
= 0xb70c6b14
XftCharIndex(0xcd8b200, 0xcac8b80, 106, 0xfe02c34, 1216)
= 323
XftGlyphExtents(0xcd8b200, 0xcac8b80, 0xbf9fe14c, 1, 0xbf9fdfa8)
= 0
XftCharIndex(0xcd8b200, 0xcac8b80, 112, 786432, 8)
= 319
XftGlyphExtents(0xcd8b200, 0xcac8b80, 0xbf9fe14c, 1, 0xbf9fdfa8)
= 0
XftCharIndex(0xcd8b200, 0xcac8b80, 97, 786432, 8)
= 673
XftGlyphExtents(0xcd8b200, 0xcac8b80, 0xbf9fe14c, 1, 0xbf9fdfa8)
= 0
XftCharIndex(0xcd8b200, 0xcac8b80, 95, 786432, 8)
= 662
XftGlyphExtents(0xcd8b200, 0xcac8b80, 0xbf9fe14c, 1, 0xbf9fdfa8)
= 0
XftCharIndex(0xcd8b200, 0xcac8b80, 121, 786432, 8)
= 325
XftGlyphExtents(0xcd8b200, 0xcac8b80, 0xbf9fe14c, 1, 0xbf9fdfa8)
= 0
XftCharIndex(0xcd8b200, 0xcac8b80, 95, 786432, 8)
= 662
XftGlyphExtents(0xcd8b200, 0xcac8b80, 0xbf9fe14c, 1, 0xbf9fdfa8)
= 0
XftCharIndex(0xcd8b200, 0xcac8b80, 99, 786432, 8)
= 682
XftGlyphExtents(0xcd8b200, 0xcac8b80, 0xbf9fe14c, 1, 0xbf9fdfa8)
= 0
strlen("font for")
= 8
memmove(0x10931b5c, 0x823e60f, 8, 0xbf9fe0b4, 9712)
= 0x10931b5c
XftCharExists(0xcd8b200, 0xd338dc8, 237, 0xce8c450, 0xff33570)
= 1
XftCharIndex(0xcd8b200, 0xd338dc8, 237, 0x8225671, 0xf165965)
= 432
XftGlyphExtents(0xcd8b200, 0xd338dc8, 0xbf9fe14c, 1, 0xbf9fdfa8)
= 0
XftCharIndex(0xcd8b200, 0xcac8b80, 97, 786432, 8)
= 673
XftGlyphExtents(0xcd8b200, 0xcac8b80, 0xbf9fe14c, 1, 0xbf9fdfa8)
= 0
XftCharIndex(0xcd8b200, 0xcac8b80, 32, 0xfe02b8c, 1228)
= 411
Notice the "font for" string; that may be meaningful.
After waiting around 3 minutes, I saw a round of fast free() calls for a
while:
free(0x10f5e230)
= <void>
free(0x10f5e330)
= <void>
free(0x10f5e1d0)
= <void>
free(0x10f5e210)
= <void>
free(0x10f5e170)
= <void>
free(0x10f5e270)
= <void>
…
Then it started again, and so on:
XftGlyphExtents(0xcd8b200, 0xcaf00c8, 0xbf9fc54c, 1, 0xbf9fc3a8)
= 0
XftCharIndex(0xcd8b200, 0xcaf00c8, 102, 786432, 8)
= 314
XftGlyphExtents(0xcd8b200, 0xcaf00c8, 0xbf9fc54c, 1, 0xbf9fc3a8)
= 0
XftCharIndex(0xcd8b200, 0xcaf00c8, 101, 786432, 8)
= 313
XftGlyphExtents(0xcd8b200, 0xcaf00c8, 0xbf9fc54c, 1, 0xbf9fc3a8)
= 0
XftCharIndex(0xcd8b200, 0xcaf00c8, 114, 786432, 8)
= 326
…
The backtrace showed the first time:
(gdb) bt
#0 0x0821e32e in find_interval ()
#1 0x08224402 in Fnext_single_property_change ()
#2 0x0822a467 in composition_compute_stop_pos ()
#3 0x08073928 in compute_stop_pos ()
#4 0x00000187 in ?? ()
#5 0xffffffff in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
Current language: auto; currently asm
(gdb)
And after continuing and stopping again:
#0 0x081d11cc in assq_no_quit ()
#1 0x080f0908 in get_lface_attributes ()
#2 0x080f0b73 in merge_face_ref ()
#3 0x080f70ff in face_at_buffer_position ()
#4 0x0807353a in handle_face_prop ()
#5 0x0807aecd in handle_stop ()
#6 0x0807e0ef in next_element_from_buffer ()
#7 0x0807d055 in get_next_display_element ()
#8 0x0807e412 in move_it_in_display_line_to ()
#9 0x0807fd30 in move_it_to ()
#10 0x08088ab0 in try_scrolling ()
#11 0x0809676e in redisplay_window ()
#12 0x080976d3 in redisplay_window_0 ()
#13 0x081cac76 in internal_condition_case_1 ()
#14 0x08074fdb in redisplay_windows ()
#15 0x0808da75 in redisplay_internal ()
#16 0x0808e6f2 in redisplay_preserve_echo_area ()
#17 0x08057759 in sit_for ()
#18 0x0815b8b8 in command_loop_1 ()
#19 0x081caeb0 in internal_condition_case ()
#20 0x0814fd65 in command_loop_2 ()
#21 0x081caf8a in internal_catch ()
#22 0x08152481 in recursive_edit_1 ()
#23 0x08182095 in read_minibuf ()
#24 0x081cdb22 in Feval ()
#25 0x081cde8f in Fprogn ()
#26 0x081cc0b5 in funcall_lambda ()
#27 0x081cdf4b in apply_lambda ()
#28 0x081cd8cf in Feval ()
#29 0x081cdd40 in Fsetq ()
#30 0x081cdc9b in Feval ()
#31 0x081cedef in Flet ()
#32 0x081cdc9b in Feval ()
#33 0x081cde8f in Fprogn ()
#34 0x081cc0b5 in funcall_lambda ()
#35 0x081cdf4b in apply_lambda ()
#36 0x081cd8cf in Feval ()
#37 0x081cde8f in Fprogn ()
#38 0x081caf8a in internal_catch ()
#39 0x081cdcfd in Fcatch ()
#40 0x081cdc9b in Feval ()
#41 0x081cdd40 in Fsetq ()
#42 0x081cdc9b in Feval ()
#43 0x081cedef in Flet ()
#44 0x081cdc9b in Feval ()
#45 0x081ce83d in Fcond ()
#46 0x081cdc9b in Feval ()
#47 0x081ceb77 in FletX ()
#48 0x081cdc9b in Feval ()
#49 0x081cde8f in Fprogn ()
#50 0x081cc0b5 in funcall_lambda ()
#51 0x081cdf4b in apply_lambda ()
#52 0x081cd8cf in Feval ()
#53 0x081cdd40 in Fsetq ()
#54 0x081cdc9b in Feval ()
#55 0x081cedef in Flet ()
#56 0x081cdc9b in Feval ()
#57 0x081c827a in Fcall_interactively ()
#58 0x081cc626 in Ffuncall ()
#59 0x081cc7b9 in call3 ()
#60 0x0815b314 in command_loop_1 ()
#61 0x081caeb0 in internal_condition_case ()
#62 0x0814fd65 in command_loop_2 ()
#63 0x081caf8a in internal_catch ()
#64 0x0815250f in recursive_edit_1 ()
#65 0x08152624 in Frecursive_edit ()
#66 0x081488c7 in main ()
My Emacs was this time:
GNU Emacs 23.0.92.6 (i686-pc-linux-gnu, GTK+ Version 2.16.0) of 2009-04-27
The ./configure I had used is:
CFLAGS="-O3 -w" ./configure --prefix=/opt/dc
It ran under --daemon.
-- Daniel
- bug#3090: 23.0.92.3; hang involving XftGlyphExtents after moving cursor,
Daniel Clemente <=