[x264-devel] Bug with Leopard introduced into r742

Roman Himmes roman.himmes at post.rwth-aachen.de
Mon Mar 10 18:20:48 CET 2008


Hi,

today I found a bug introduced into r742 (r741 worked well), while  
encodeing a file with leopard. (Segmentation fault)

I have no Idea why the gdb looks into shared_ptr.hpp from boost for  
predict_8x8_ddl_sse2 ...

Leopard 10.5.2 on intel MacBookPro 15".

cheers,

Roman Himmes


 >bt:
#0  0x001897d8 in predict_8x8_ddl_sse2 () at shared_ptr.hpp:131
#1  0x0013c129 in x264_slicetype_mb_cost (h=0xe0f4000, a=0xbfffaa84,  
frames=0xbfffa8a8, p0=0, p1=0, b=0, dist_scale_factor=128) at  
slicetype.c:226
#2  0x0013c4b2 in x264_slicetype_frame_cost (h=0xe0f4000,  
a=0xbfffaa84, frames=0xbfffaa3c, p0=0, p1=0, b=0, b_intra_penalty=0)  
at slicetype.c:304
#3  0x0013c6fd in x264_rc_analyse_slice (h=0xe0f4000) at slicetype.c:530
#4  0x0015ea2d in rate_estimate_qscale (h=0xe0f4000) at encoder/ 
ratecontrol.c:1344
#5  0x0015f153 in x264_ratecontrol_start (h=0xe0f4000, i_force_qp=0)  
at encoder/ratecontrol.c:691
#6  0x00174b0f in x264_encoder_encode (h=0xe0f4000, pp_nal=0xbfffd6cc,  
pi_nal=0xbfffd6c8, pic_in=0x2134030, pic_out=0xbfffd68c) at encoder/ 
encoder.c:1412
#7  0x00475ae6 in X264_frame (ctx=0x20d4a00, buf=0x11e2e000 "",  
bufsize=500000, data=0xe48c410) at libx264.c:91

 >disass $pc-32 $pc+32
Dump of assembler code from 0x1897b8 to 0x1897f8:
x001897b8 <predict_8x8_ddr_sse2+136>:	psrldq $0x2,%mm1
0x001897bc <predict_8x8_ddr_sse2+140>:	movq   %xmm0,0x20(%eax)
0x001897c1 <predict_8x8_ddr_sse2+145>:	movq   %xmm1,(%eax)
0x001897c5 <predict_8x8_ddr_sse2+149>:	ret
0x001897c6 <predict_8x8_ddr_sse2+150>:	nop
0x001897c7 <predict_8x8_ddr_sse2+151>:	nop
0x001897c8 <predict_8x8_ddr_sse2+152>:	nop
0x001897c9 <predict_8x8_ddr_sse2+153>:	nop
0x001897ca <predict_8x8_ddr_sse2+154>:	nop
0x001897cb <predict_8x8_ddr_sse2+155>:	nop
0x001897cc <predict_8x8_ddr_sse2+156>:	nop
0x001897cd <predict_8x8_ddr_sse2+157>:	nop
0x001897ce <predict_8x8_ddr_sse2+158>:	nop
0x001897cf <predict_8x8_ddr_sse2+159>:	nop
0x001897d0 <predict_8x8_ddl_sse2+0>:	mov    0x8(%esp),%edx
0x001897d4 <predict_8x8_ddl_sse2+4>:	mov    0x4(%esp),%eax
0x001897d8 <predict_8x8_ddl_sse2+8>:	movdqa 0x10(%edx),%xmm3
0x001897dd <predict_8x8_ddl_sse2+13>:	movdqu 0x11(%edx),%xmm2
0x001897e2 <predict_8x8_ddl_sse2+18>:	movdqa %xmm3,%xmm1
0x001897e6 <predict_8x8_ddl_sse2+22>:	pslldq $0x1,%xmm1
0x001897eb <predict_8x8_ddl_sse2+27>:	movdqa %xmm1,%xmm4
0x001897ef <predict_8x8_ddl_sse2+31>:	pavgb  %xmm2,%xmm1
0x001897f3 <predict_8x8_ddl_sse2+35>:	pxor   %xmm4,%xmm2
0x001897f7 <predict_8x8_ddl_sse2+39>:	movdqa %xmm3,%xmm0

(gdb) info all-registers
eax            0xbfffa8a8	-1073764184
ecx            0xe0f4018	235880472
edx            0xbfffa788	-1073764472
ebx            0x15e4eb	1434859
esp            0xbfffa6bc	0xbfffa6bc
ebp            0xbfffa9a8	0xbfffa9a8
esi            0x0	0
edi            0xe0f4000	235880448
eip            0x1897d8	0x1897d8 <predict_8x8_ddl_sse2+8>
eflags         0x206	518
cs             0x17	23
ss             0x1f	31
ds             0x1f	31
es             0x1f	31
fs             0x0	0
gs             0x37	55
st0            -nan(0x210021002100210)	(raw 0xffff0210021002100210)
st1            -nan(0x210021002100210)	(raw 0xffff0210021002100210)
st2            <invalid float value>	(raw 0xffff0000000000000000)
st3            <invalid float value>	(raw 0xffff0000000000000000)
st4            <invalid float value>	(raw 0xffff0000000000000000)
st5            -nan(0x1010101010101010)	(raw 0xffff1010101010101010)
st6            -nan(0x10001000100010)	(raw 0xffff0010001000100010)
st7            <invalid float value>	(raw 0xffff0000000000000000)
fctrl          0x37f	895
fstat          0x20	32
ftag           0xaaaa	43690
fiseg          0x17	23
fioff          0x161d76	1449334
foseg          0x1f	31
fooff          0xbfffd5d8	-1073752616
fop            0x59d	1437
xmm0           {
   v4_float = {0, 0, 0, 0},
   v2_double = {0, 0},
   v16_int8 = '\0' <repeats 15 times>,
   v8_int16 = {0, 0, 0, 0, 0, 0, 0, 0},
   v4_int32 = {0, 0, 0, 0},
   v2_int64 = {0, 0},
   uint128 = 0
}	(raw 0x00000000000000000000000000000000)
xmm1           {
   v4_float = {0, 0, 0, 0},
   v2_double = {0, 0},
   v16_int8 = '\0' <repeats 15 times>,
   v8_int16 = {0, 0, 0, 0, 0, 0, 0, 0},
   v4_int32 = {0, 0, 0, 0},
   v2_int64 = {0, 0},
   uint128 = 0
}	(raw 0x00000000000000000000000000000000)
xmm2           {
   v4_float = {0, 0, 0, 0},
   v2_double = {0, 0},
   v16_int8 = '\0' <repeats 15 times>,
   v8_int16 = {0, 0, 0, 0, 0, 0, 0, 0},
   v4_int32 = {0, 0, 0, 0},
   v2_int64 = {0, 0},
   uint128 = 0
}	(raw 0x00000000000000000000000000000000)
xmm3           {
   v4_float = {0, 0, 0, 0},
   v2_double = {0, 0},
   v16_int8 = '\0' <repeats 15 times>,
   v8_int16 = {0, 0, 0, 0, 0, 0, 0, 0},
   v4_int32 = {0, 0, 0, 0},
   v2_int64 = {0, 0},
   uint128 = 0
}	(raw 0x00000000000000000000000000000000)
xmm4           {
   v4_float = {0, 0, 0, 0},
   v2_double = {0, 0},
   v16_int8 = '\0' <repeats 15 times>,
   v8_int16 = {0, 0, 0, 0, 0, 0, 0, 0},
   v4_int32 = {0, 0, 0, 0},
   v2_int64 = {0, 0},
   uint128 = 0
}	(raw 0x00000000000000000000000000000000)
xmm5           {
   v4_float = {0, 0, 0, 0},
   v2_double = {0, 0},
   v16_int8 = '\0' <repeats 15 times>,
   v8_int16 = {0, 0, 0, 0, 0, 0, 0, 0},
   v4_int32 = {0, 0, 0, 0},
   v2_int64 = {0, 0},
   uint128 = 0
}	(raw 0x00000000000000000000000000000000)
xmm6           {
   v4_float = {0, 0, 0, 0},
   v2_double = {0, 0},
   v16_int8 = '\0' <repeats 15 times>,
   v8_int16 = {0, 0, 0, 0, 0, 0, 0, 0},
   v4_int32 = {0, 0, 0, 0},
   v2_int64 = {0, 0},
   uint128 = 0
}	(raw 0x00000000000000000000000000000000)
xmm7           {
   v4_float = {0, 0, 0, 0},
   v2_double = {0, 0},
   v16_int8 = '\0' <repeats 15 times>,
   v8_int16 = {0, 0, 0, 0, 0, 0, 0, 0},
   v4_int32 = {0, 0, 0, 0},
   v2_int64 = {0, 0},
   uint128 = 0
}	(raw 0x00000000000000000000000000000000)
mxcsr          0x1fa3	8099
mm0            {
   uint64 = 148621055480562192,
   v2_int32 = {34603536, 34603536},
   v4_int16 = {528, 528, 528, 528},
   v8_int8 = "\020\002\020\002\020\002\020\002"
}	(raw 0x0210021002100210)
mm1            {
   uint64 = 148621055480562192,
   v2_int32 = {34603536, 34603536},
   v4_int16 = {528, 528, 528, 528},
   v8_int8 = "\020\002\020\002\020\002\020\002"
}	(raw 0x0210021002100210)
mm2            {
   uint64 = 0,
   v2_int32 = {0, 0},
   v4_int16 = {0, 0, 0, 0},
   v8_int8 = "\000\000\000\000\000\000\000"
}	(raw 0x0000000000000000)
mm3            {
   uint64 = 0,
   v2_int32 = {0, 0},
   v4_int16 = {0, 0, 0, 0},
   v8_int8 = "\000\000\000\000\000\000\000"
}	(raw 0x0000000000000000)
mm4            {
   uint64 = 0,
   v2_int32 = {0, 0},
   v4_int16 = {0, 0, 0, 0},
   v8_int8 = "\000\000\000\000\000\000\000"
}	(raw 0x0000000000000000)
mm5            {
   uint64 = 1157442765409226768,
   v2_int32 = {269488144, 269488144},
   v4_int16 = {4112, 4112, 4112, 4112},
   v8_int8 = "\020\020\020\020\020\020\020\020"
}	(raw 0x1010101010101010)
mm6            {
   uint64 = 4503668347895824,
   v2_int32 = {1048592, 1048592},
   v4_int16 = {16, 16, 16, 16},
   v8_int8 = "\020\000\020\000\020\000\020"
}	(raw 0x0010001000100010)
mm7            {
   uint64 = 0,
   v2_int32 = {0, 0},
   v4_int16 = {0, 0, 0, 0},
   v8_int8 = "\000\000\000\000\000\000\000"
}	(raw 0x0000000000000000)

Roman Himmes
roman at himmes.com





More information about the x264-devel mailing list