Fri 25 Jun 2010 09:05:23 PM UTC, comment #2:
Ok, I'll check it with the newest lib, I've updated it today's morning AFAIR. Btw.. here's the beginning of the stacktrace:
#28484 0x000000000041664a in load_truetype_glyph (loader=0x7fffffffe230, glyph_index=253, recurse_count=3, header_only=0 '\000') at /usr/local/google/src/freetype2/src/truetype/ttgload.c:1559
#28485 0x000000000041664a in load_truetype_glyph (loader=0x7fffffffe230, glyph_index=253, recurse_count=2, header_only=0 '\000') at /usr/local/google/src/freetype2/src/truetype/ttgload.c:1559
#28486 0x000000000041664a in load_truetype_glyph (loader=0x7fffffffe230, glyph_index=253, recurse_count=1, header_only=0 '\000') at /usr/local/google/src/freetype2/src/truetype/ttgload.c:1559
#28487 0x000000000041664a in load_truetype_glyph (loader=0x7fffffffe230, glyph_index=253, recurse_count=0, header_only=0 '\000') at /usr/local/google/src/freetype2/src/truetype/ttgload.c:1559
#28488 0x00000000004174af in TT_Load_Glyph (size=0x6b14a0, glyph=0x6b1250, glyph_index=253, load_flags=2059) at /usr/local/google/src/freetype2/src/truetype/ttgload.c:2074
#28489 0x0000000000412853 in Load_Glyph (ttslot=0x6b1250, ttsize=0x6b14a0, glyph_index=253, load_flags=2059) at /usr/local/google/src/freetype2/src/truetype/ttdriver.c:334
#28490 0x0000000000406ade in FT_Load_Glyph (face=0x6aea60, glyph_index=253, load_flags=2059) at /usr/local/google/src/freetype2/src/base/ftobjs.c:677
#28491 0x000000000046445e in af_loader_load_g (loader=0x6ae2a8, scaler=0x7fffffffe690, glyph_index=253, load_flags=2049, depth=0) at /usr/local/google/src/freetype2/src/autofit/afloader.c:99
#28492 0x000000000046561e in af_loader_load_glyph (loader=0x6ae2a8, face=0x6aea60, gindex=253, load_flags=2049) at /usr/local/google/src/freetype2/src/autofit/afloader.c:531
#28493 0x00000000004656b5 in af_autofitter_load_glyph (module=0x6ae280, slot=0x6b1250, size=0x6b14a0, glyph_index=253, load_flags=0) at /usr/local/google/src/freetype2/src/autofit/afmodule.c:65
#28494 0x0000000000406a9f in FT_Load_Glyph (face=0x6aea60, glyph_index=253, load_flags=0) at /usr/local/google/src/freetype2/src/base/ftobjs.c:668
#28495 0x0000000000402673 in test_load (timer=0x7fffffffe850, face=0x6aea60, user_data=0x0) at /usr/local/google/src/freetype2-demos/src/ftbench.c:218
#28496 0x00000000004025a8 in benchmark (face=0x6aea60, test=0x7fffffffe8c0, max_iter=1, max_time=2) at /usr/local/google/src/freetype2-demos/src/ftbench.c:188
#28497 0x000000000040374e in main (argc=1, argv=0x7fffffffea40) at /usr/local/google/src/freetype2-demos/src/ftbench.c:781
|
Fri 25 Jun 2010 01:34:51 PM UTC, original submission:
Linux amd64
gcc version 4.4.3, compiled with '-O0 -g'
Font: http://alt.swiecki.net/j/f/sigsegv21.ttf
It looks like a stack exhaustion to me (even if dbg shows it's malloc related).
The $rsp register is 0x7fffff5ff000, which is at the bottom of the stack, when x86 call is invoked (call lowers the stack pointer, effectively causing this segfault)
$ gdb ./ftbench
(gdb) r -c 1 sigsegv21.ttf
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff78c018e in *__GI___libc_realloc (oldmem=0x7ffff7434010, bytes=2734080) at malloc.c:3790
3790 malloc.c: No such file or directory.
in malloc.c
(gdb) p/x $rsp
$1 = 0x7fffff5ff000
(gdb) info proc
process 21129
(gdb) shell cat /proc/21129/maps | grep stack
7fffff5ff000-7ffffffff000 rw-p 00000000 00:00 0 [stack]
(gdb) bt
#0 0x00007ffff78c018e in *__GI___libc_realloc (oldmem=0x7ffff7434010, bytes=2734080) at malloc.c:3790
#1 0x0000000000480c45 in ft_realloc (memory=0x6a9010, cur_size=2733984, new_size=2734080, block=0x7ffff7434010) at builds/unix/ftsystem.c:135
#2 0x00000000004111be in ft_mem_qrealloc (memory=0x6a9010, item_size=48, cur_count=56958, new_count=56960, block=0x7ffff7434010, p_error=0x7fffff5ff13c) at /usr/local/google/src/freetype2/src/base/ftutil.c:154
#3 0x0000000000411062 in ft_mem_realloc (memory=0x6a9010, item_size=48, cur_count=56958, new_count=56960, block=0x7ffff7434010, p_error=0x7fffff5ff19c) at /usr/local/google/src/freetype2/src/base/ftutil.c:101
#4 0x00000000004058e3 in FT_GlyphLoader_CheckSubGlyphs (loader=0x6b13e0, n_subs=1) at /usr/local/google/src/freetype2/src/base/ftgloadr.c:292
#5 0x0000000000414134 in TT_Load_Composite_Glyph (loader=0x7fffffffde60) at /usr/local/google/src/freetype2/src/truetype/ttgload.c:594
#6 0x00000000004160f5 in load_truetype_glyph (loader=0x7fffffffde60, glyph_index=253, recurse_count=28479, header_only=0 '\000') at /usr/local/google/src/freetype2/src/truetype/ttgload.c:1448
#7 0x000000000041664a in load_truetype_glyph (loader=0x7fffffffde60, glyph_index=253, recurse_count=28478, header_only=0 '\000') at /usr/local/google/src/freetype2/src/truetype/ttgload.c:1559
#8 0x000000000041664a in load_truetype_glyph (loader=0x7fffffffde60, glyph_index=253, recurse_count=28477, header_only=0 '\000') at /usr/local/google/src/freetype2/src/truetype/ttgload.c:1559
#9 0x000000000041664a in load_truetype_glyph (loader=0x7fffffffde60, glyph_index=253, recurse_count=28476, header_only=0 '\000') at /usr/local/google/src/freetype2/src/truetype/ttgload.c:1559
#10 0x000000000041664a in load_truetype_glyph (loader=0x7fffffffde60, glyph_index=253, recurse_count=28475, header_only=0 '\000') at /usr/local/google/src/freetype2/src/truetype/ttgload.c:1559
#11 0x000000000041664a in load_truetype_glyph (loader=0x7fffffffde60, glyph_index=253, recurse_count=28474, header_only=0 '\000') at /usr/local/google/src/freetype2/src/truetype/ttgload.c:1559
#12 0x000000000041664a in load_truetype_glyph (loader=0x7fffffffde60, glyph_index=253, recurse_count=28473, header_only=0 '\000') at /usr/local/google/src/freetype2/src/truetype/ttgload.c:1559
#13 0x000000000041664a in load_truetype_glyph (loader=0x7fffffffde60, glyph_index=253, recurse_count=28472, header_only=0 '\000') at /usr/local/google/src/freetype2/src/truetype/ttgload.c:1559
#14 0x000000000041664a in load_truetype_glyph (loader=0x7fffffffde60, glyph_index=253, recurse_count=28471, header_only=0 '\000') at /usr/local/google/src/freetype2/src/truetype/ttgload.c:1559
#15 0x000000000041664a in load_truetype_glyph (loader=0x7fffffffde60, glyph_index=253, recurse_count=28470, header_only=0 '\000') at /usr/local/google/src/freetype2/src/truetype/ttgload.c:1559
#16 0x000000000041664a in load_truetype_glyph (loader=0x7fffffffde60, glyph_index=253, recurse_count=28469, header_only=0 '\000') at /usr/local/google/src/freetype2/src/truetype/ttgload.c:1559
#17 0x000000000041664a in load_truetype_glyph (loader=0x7fffffffde60, glyph_index=253, recurse_count=28468, header_only=0 '\000') at /usr/local/google/src/freetype2/src/truetype/ttgload.c:1559
#18 0x000000000041664a in load_truetype_glyph (loader=0x7fffffffde60, glyph_index=253, recurse_count=28467, header_only=0 '\000') at /usr/local/google/src/freetype2/src/truetype/ttgload.c:1559
#19 0x000000000041664a in load_truetype_glyph (loader=0x7fffffffde60, glyph_index=253, recurse_count=28466, header_only=0 '\000') at /usr/local/google/src/freetype2/src/truetype/ttgload.c:1559
#20 0x000000000041664a in load_truetype_glyph (loader=0x7fffffffde60, glyph_index=253, recurse_count=28465, header_only=0 '\000') at /usr/local/google/src/freetype2/src/truetype/ttgload.c:1559
#21 0x000000000041664a in load_truetype_glyph (loader=0x7fffffffde60, glyph_index=253, recurse_count=28464, header_only=0 '\000') at /usr/local/google/src/freetype2/src/truetype/ttgload.c:1559
|