[FFmpeg-trac] #1041(undetermined:new): Illegal instruction when opening some files with (HE-)AAC streams
FFmpeg
trac at avcodec.org
Tue Mar 6 21:25:14 CET 2012
#1041: Illegal instruction when opening some files with (HE-)AAC streams
-------------------------------------+-------------------------------------
Reporter: qyot27 | Owner:
Type: defect | Status: new
Priority: normal | Component:
Version: git-master | undetermined
Keywords: aac | Resolution:
Blocking: | Blocked By:
Analyzed by developer: 0 | Reproduced by developer: 0
-------------------------------------+-------------------------------------
Comment (by qyot27):
Rebuilt FFmpeg with just ./configure, the Illegal instruction still
happens. The backtrace seems to point to an SSE issue.
The full output of gdb as directed on the Bug Reporting page:
{{{
$ gdb ffmpeg_g
GNU gdb (Ubuntu/Linaro 7.3-0ubuntu2) 7.3-2011.08
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /home/qyot27/ffmpeg_g...done.
(gdb) r -v 9 -loglevel 99 -i sample-5.aac
Starting program: /home/qyot27/ffmpeg_g -v 9 -loglevel 99 -i sample-5.aac
[Thread debugging using libthread_db enabled]
ffmpeg version N-38596-gf095391 Copyright (c) 2000-2012 the FFmpeg
developers
built on Mar 6 2012 14:21:10 with gcc 4.6.1
configuration: --prefix=/home/qyot27/ffmpeg_build
libavutil 51. 41.100 / 51. 41.100
libavcodec 54. 10.100 / 54. 10.100
libavformat 54. 2.100 / 54. 2.100
libavdevice 53. 4.100 / 53. 4.100
libavfilter 2. 63.100 / 2. 63.100
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 7.100 / 0. 7.100
[aac @ 0x8e85ac0] Format aac probed with size=2048 and score=51
Program received signal SIGILL, Illegal instruction.
ff_sbr_hf_g_filt_sse.loop1 () at libavcodec/x86/sbrdsp.asm:107
107 movq [r0], m2
(gdb) bt
#0 ff_sbr_hf_g_filt_sse.loop1 () at libavcodec/x86/sbrdsp.asm:107
#1 0xb7f856b0 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) disass $pc-32,$pc+32
Dump of assembler code from 0x86d4f35 to 0x86d4f75:
0x086d4f35 <ff_sbr_hf_g_filt_sse.loop4+59>: adc %al,0x500c1(%ecx)
0x086d4f3b <ff_sbr_hf_g_filt_sse.loop4+65>: add
%al,-0x468afb3d(%ebx)
0x086d4f41 <ff_sbr_hf_g_filt_sse.loop4+71>: and $0x3,%edi
0x086d4f44 <ff_sbr_hf_g_filt_sse.loop4+74>: je 0x86d4f68
<ff_sbr_hf_g_filt_sse.end>
0x086d4f46 <ff_sbr_hf_g_filt_sse.loop1+0>: movss (%edx),%xmm0
0x086d4f4a <ff_sbr_hf_g_filt_sse.loop1+4>: movq (%ecx),%xmm2
0x086d4f4e <ff_sbr_hf_g_filt_sse.loop1+8>: punpckldq %xmm0,%xmm0
0x086d4f52 <ff_sbr_hf_g_filt_sse.loop1+12>: mulps %xmm0,%xmm2
=> 0x086d4f55 <ff_sbr_hf_g_filt_sse.loop1+15>: movq %xmm2,(%eax)
0x086d4f59 <ff_sbr_hf_g_filt_sse.loop1+19>: add $0x8,%eax
0x086d4f5c <ff_sbr_hf_g_filt_sse.loop1+22>: add $0x4,%edx
0x086d4f5f <ff_sbr_hf_g_filt_sse.loop1+25>: add $0x140,%ecx
0x086d4f65 <ff_sbr_hf_g_filt_sse.loop1+31>: dec %edi
0x086d4f66 <ff_sbr_hf_g_filt_sse.loop1+32>: jne 0x86d4f46
<ff_sbr_hf_g_filt_sse.loop1>
0x086d4f68 <ff_sbr_hf_g_filt_sse.end+0>: pop %edi
0x086d4f69 <ff_sbr_hf_g_filt_sse.end+1>: pop %esi
0x086d4f6a <ff_sbr_hf_g_filt_sse.end+2>: pop %ebx
0x086d4f6b <ff_sbr_hf_g_filt_sse.end+3>: ret
0x086d4f6c <ff_sbr_hf_g_filt_sse.end+4>: nop
0x086d4f6d <ff_sbr_hf_g_filt_sse.end+5>: nop
---Type <return> to continue, or q <return> to quit---
0x086d4f6e <ff_sbr_hf_g_filt_sse.end+6>: nop
0x086d4f6f <ff_sbr_hf_g_filt_sse.end+7>: nop
0x086d4f70 <auto_matrix+0>: push %ebp
0x086d4f71 <auto_matrix+1>: mov %eax,%ebp
0x086d4f73 <auto_matrix+3>: push %edi
0x086d4f74 <auto_matrix+4>: push %esi
End of assembler dump.
(gdb) info all-registers
eax 0xb7f91de0 -1208410656
ecx 0xb7fcc8c0 -1208170304
edx 0xb7f96880 -1208391552
ebx 0x0 0
esp 0xbfffd020 0xbfffd020
ebp 0xb7f91d20 0xb7f91d20
esi 0x2 2
edi 0x3 3
eip 0x86d4f55 0x86d4f55 <ff_sbr_hf_g_filt_sse.loop1+15>
eflags 0x210206 [ PF IF RF ID ]
cs 0x73 115
ss 0x7b 123
ds 0x7b 123
es 0x7b 123
fs 0x0 0
gs 0x33 51
st0 -inf (raw 0xffff0000000000000000)
st1 -inf (raw 0xffff0000000000000000)
st2 -0 (raw 0x80000000000000000000)
st3 0.9921586513519287109375 (raw 0x3ffefdfe1c0000000000)
st4 0.98437878945247803130769170820713043 (raw
0x3ffefc003f9393100000)
st5 1.1920928955078125e-07 (raw 0x3fe88000000000000000)
---Type <return> to continue, or q <return> to quit---
st6 0 (raw 0x00000000000000000000)
st7 1.58489322662353515625 (raw 0x3fffcaddc80000000000)
fctrl 0x37f 895
fstat 0x461 1121
ftag 0x101a 4122
fiseg 0x73 115
fioff 0x863674c 140732236
foseg 0x7b 123
fooff 0xb7fd8568 -1208122008
fop 0x5d8 1496
xmm0 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0, 0x0, 0xc0, 0xff, 0x0 <repeats 12 times>}, v8_int16 =
{0x0,
0xffc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0xffc00000, 0x0,
0x0,
0x0}, v2_int64 = {0xffc00000, 0x0},
uint128 = 0x000000000000000000000000ffc00000}
xmm1 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0,
0x0,
0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
0x0},
uint128 = 0x00000000000000000000000000000000}
xmm2 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0, 0x0, 0xc0, 0xff, 0x0 <repeats 12 times>}, v8_int16 =
{0x0,
0xffc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0xffc00000, 0x0,
0x0,
0x0}, v2_int64 = {0xffc00000, 0x0},
---Type <return> to continue, or q <return> to quit---
uint128 = 0x000000000000000000000000ffc00000}
xmm3 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x86, 0xe5, 0x4b, 0x2d, 0x4f, 0xd5, 0x54, 0x2d, 0x0, 0x0,
0x0,
0x0, 0x0, 0x0, 0x0, 0x0}, v8_int16 = {0xe586, 0x2d4b, 0xd54f, 0x2d54,
0x0,
0x0, 0x0, 0x0}, v4_int32 = {0x2d4be586, 0x2d54d54f, 0x0, 0x0},
v2_int64 = {
0x2d54d54f2d4be586, 0x0}, uint128 =
0x00000000000000002d54d54f2d4be586}
xmm4 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0xb5, 0xb7, 0xd8, 0x2a, 0x8a, 0xdf, 0xc6, 0x2a, 0x3a, 0x62,
0x1d, 0x2c, 0x6f, 0x90, 0xe3, 0x2a}, v8_int16 = {0xb7b5, 0x2ad8,
0xdf8a,
0x2ac6, 0x623a, 0x2c1d, 0x906f, 0x2ae3}, v4_int32 = {0x2ad8b7b5,
0x2ac6df8a, 0x2c1d623a, 0x2ae3906f}, v2_int64 = {0x2ac6df8a2ad8b7b5,
0x2ae3906f2c1d623a}, uint128 = 0x2ae3906f2c1d623a2ac6df8a2ad8b7b5}
xmm5 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x7c, 0xf9, 0xfa, 0x2c, 0xc9, 0x25, 0x5c, 0x2d, 0xfe, 0xbe,
0x5b, 0x29, 0x60, 0x85, 0x21, 0x2a}, v8_int16 = {0xf97c, 0x2cfa,
0x25c9,
0x2d5c, 0xbefe, 0x295b, 0x8560, 0x2a21}, v4_int32 = {0x2cfaf97c,
0x2d5c25c9, 0x295bbefe, 0x2a218560}, v2_int64 = {0x2d5c25c92cfaf97c,
0x2a218560295bbefe}, uint128 = 0x2a218560295bbefe2d5c25c92cfaf97c}
xmm6 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x28, 0xe4, 0x7b, 0x37, 0xa0, 0x37, 0x82, 0x37, 0x2c, 0x59,
0x70, 0x37, 0xbd, 0x65, 0x6b, 0x37}, v8_int16 = {0xe428, 0x377b,
0x37a0,
0x3782, 0x592c, 0x3770, 0x65bd, 0x376b}, v4_int32 = {0x377be428,
0x378237a0, 0x3770592c, 0x376b65bd}, v2_int64 = {0x378237a0377be428,
---Type <return> to continue, or q <return> to quit---
0x376b65bd3770592c}, uint128 = 0x376b65bd3770592c378237a0377be428}
xmm7 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x80, 0xe1, 0x10, 0x35, 0xe3, 0x2a, 0xf, 0x36, 0x2f, 0x5a,
0x25,
0x36, 0xd4, 0xff, 0xa9, 0x36}, v8_int16 = {0xe180, 0x3510, 0x2ae3,
0x360f,
0x5a2f, 0x3625, 0xffd4, 0x36a9}, v4_int32 = {0x3510e180, 0x360f2ae3,
0x36255a2f, 0x36a9ffd4}, v2_int64 = {0x360f2ae33510e180,
0x36a9ffd436255a2f}, uint128 = 0x36a9ffd436255a2f360f2ae33510e180}
mxcsr 0x1fb2 [ DE UE PE IM DM ZM OM UM PM ]
mm0 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,
0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm1 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,
0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm2 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,
0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm3 {uint64 = 0xfdfe1c0000000000, v2_int32 = {0x0, 0xfdfe1c00},
v4_int16 = {0x0, 0x0, 0x1c00, 0xfdfe}, v8_int8 = {0x0, 0x0, 0x0, 0x0,
0x0,
0x1c, 0xfe, 0xfd}}
mm4 {uint64 = 0xfc003f9393100000, v2_int32 = {0x93100000,
0xfc003f93}, v4_int16 = {0x0, 0x9310, 0x3f93, 0xfc00}, v8_int8 = {0x0,
0x0, 0x10, 0x93, 0x93, 0x3f, 0x0, 0xfc}}
mm5 {uint64 = 0x8000000000000000, v2_int32 = {0x0, 0x80000000},
v4_int16 = {0x0, 0x0, 0x0, 0x8000}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0,
0x0,
0x0, 0x80}}
---Type <return> to continue, or q <return> to quit---
mm6 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,
0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm7 {uint64 = 0xcaddc80000000000, v2_int32 = {0x0, 0xcaddc800},
v4_int16 = {0x0, 0x0, 0xc800, 0xcadd}, v8_int8 = {0x0, 0x0, 0x0, 0x0,
0x0,
0xc8, 0xdd, 0xca}}
(gdb)
}}}
I'll also go about trying to find the particular change. Looking at the
commit log, it may have been
[http://git.videolan.org/?p=ffmpeg.git;a=commit;h=2784d187919b48022a89633fb3b5a99ca97cf869
this one], since it makes reference to sbr_hf_g_filt.
--
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/1041#comment:3>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list