[Pkg-octave-devel] Bug#338487: octave: dies with illegal instruction
Timo Lindfors
timo.lindfors at iki.fi
Thu Nov 10 15:41:53 UTC 2005
Package: octave
Version: 2.1.71-7
Severity: normal
Summary:
octave dies with "illegal instruction" on a pentium MMX system but
works on an athlon system. Script to trigger the bug is available at
http://iki.fi/lindi/mycos.m
Transcript:
lindi at dandelion:~/tmp$ octave
GNU Octave, version 2.1.71 (i486-pc-linux-gnu).
Copyright (C) 2005 John W. Eaton.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTIBILITY or
FITNESS FOR A PARTICULAR PURPOSE. For details, type `warranty'.
Additional information about Octave is available at http://www.octave.org.
Please contribute if you find this software useful.
For more information, visit http://www.octave.org/help-wanted.html
Report bugs to <bug at octave.org> (but first, please read
http://www.octave.org/bugs.html to learn how to write a helpful report).
octave:1> x1 = mycos(3, 200, 0);
panic: Illegal instruction -- stopping myself...
attempting to save variables to `octave-core'...
save to `octave-core' complete
Illegal instruction (core dumped)
lindi at dandelion:~$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 5
model : 4
model name : Pentium MMX
stepping : 4
cpu MHz : 199.682
fdiv_bug : no
hlt_bug : no
f00f_bug : yes
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr mce cx8 mmx
bogomips : 398.13
The athlon system where the package and script work without problems
has:
lindi at sauna:~$ cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 6
model : 4
model name : AMD Athlon(tm) processor
stepping : 2
cpu MHz : 701.604
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr syscall mmxext 3dnowext 3dnow
bogomips : 1399.19
Backtrace:
#0 0x41709b50 in fftw_taint ()
from /usr/lib/libfftw3.so.3
(gdb) bt
#0 0x41709b50 in fftw_taint () from /usr/lib/libfftw3.so.3
#1 0x40816e43 in octave_fftw_planner::create_plan () from /usr/lib/octave-2.1.71/liboctave.so
#2 0x40818043 in octave_fftw::fft () from /usr/lib/octave-2.1.71/liboctave.so
#3 0x40abc722 in NDArray::fourier () from /usr/lib/octave-2.1.71/liboctave.so
#4 0x41e0b915 in ?? () from /usr/lib/octave/2.1.71/oct/i486-pc-linux-gnu/fft.oct
#5 0x41e0bced in Ffft () from /usr/lib/octave/2.1.71/oct/i486-pc-linux-gnu/fft.oct
#6 0x403611a7 in octave_builtin::do_multi_index_op () from /usr/lib/octave-2.1.71/liboctinterp.so
#7 0x41df0775 in octave_dispatch::do_multi_index_op () from /usr/lib/octave/site/oct/api-v13/i486-pc-linux-gnu/octave-forge/dispatch.oct
#8 0x41df1e2f in octave_dispatch::subsref () from /usr/lib/octave/site/oct/api-v13/i486-pc-linux-gnu/octave-forge/dispatch.oct
#9 0x40342a09 in octave_value::subsref () from /usr/lib/octave-2.1.71/liboctinterp.so
#10 0x40430b4d in tree_index_expression::rvalue () from /usr/lib/octave-2.1.71/liboctinterp.so
#11 0x40430de6 in tree_index_expression::rvalue () from /usr/lib/octave-2.1.71/liboctinterp.so
#12 0x4041a4af in tree_simple_assignment::rvalue () from /usr/lib/octave-2.1.71/liboctinterp.so
#13 0x40419ebe in tree_simple_assignment::rvalue () from /usr/lib/octave-2.1.71/liboctinterp.so
#14 0x4044f21b in tree_statement::eval () from /usr/lib/octave-2.1.71/liboctinterp.so
#15 0x4044f7fa in tree_statement_list::eval () from /usr/lib/octave-2.1.71/liboctinterp.so
#16 0x4036ce99 in octave_user_function::do_multi_index_op () from /usr/lib/octave-2.1.71/liboctinterp.so
#17 0x4036bd52 in octave_user_function::subsref () from /usr/lib/octave-2.1.71/liboctinterp.so
#18 0x40342a09 in octave_value::subsref () from /usr/lib/octave-2.1.71/liboctinterp.so
#19 0x40430b4d in tree_index_expression::rvalue () from /usr/lib/octave-2.1.71/liboctinterp.so
#20 0x40430de6 in tree_index_expression::rvalue () from /usr/lib/octave-2.1.71/liboctinterp.so
#21 0x4041a4af in tree_simple_assignment::rvalue () from /usr/lib/octave-2.1.71/liboctinterp.so
#22 0x40419ebe in tree_simple_assignment::rvalue () from /usr/lib/octave-2.1.71/liboctinterp.so
#23 0x4044f21b in tree_statement::eval () from /usr/lib/octave-2.1.71/liboctinterp.so
#24 0x4044f7fa in tree_statement_list::eval () from /usr/lib/octave-2.1.71/liboctinterp.so
#25 0x402abd01 in main_loop () from /usr/lib/octave-2.1.71/liboctinterp.so
#26 0x405e31a5 in octave_main () from /usr/lib/octave-2.1.71/liboctinterp.so
#27 0x0804865b in main ()
(gdb) x/4i $eip
0x41709b50 <fftw_taint+16>: cmovne %edx,%eax
0x41709b53 <fftw_taint+19>: ret
0x41709b54 <fftw_taint+20>: lea 0x0(%esi),%esi
0x41709b5a <fftw_taint+26>: lea 0x0(%edi),%edi
(gdb) disassemble fftw_taint
Dump of assembler code for function fftw_taint:
0x41709b40 <fftw_taint+0>: push %ebp
0x41709b41 <fftw_taint+1>: mov %esp,%ebp
0x41709b43 <fftw_taint+3>: mov 0x8(%ebp),%eax
0x41709b46 <fftw_taint+6>: mov %eax,%edx
0x41709b48 <fftw_taint+8>: or $0x3,%edx
0x41709b4b <fftw_taint+11>: testb $0x1,0xc(%ebp)
0x41709b4f <fftw_taint+15>: pop %ebp
0x41709b50 <fftw_taint+16>: cmovne %edx,%eax
0x41709b53 <fftw_taint+19>: ret
0x41709b54 <fftw_taint+20>: lea 0x0(%esi),%esi
0x41709b5a <fftw_taint+26>: lea 0x0(%edi),%edi
End of assembler dump.
(gdb) info register
eax 0x8f8cf70 150523760
ecx 0xbfffe358 -1073749160
edx 0x8f8cf73 150523763
ebx 0x417cf3dc 1098707932
esp 0xbfffe31c 0xbfffe31c
ebp 0xbfffe368 0xbfffe368
esi 0x1 1
edi 0x0 0
eip 0x41709b50 0x41709b50
eflags 0x202 514
cs 0x23 35
ss 0x2b 43
ds 0x2b 43
es 0x2b 43
fs 0x2b 43
gs 0x2b 43
-- System Information:
Debian Release: testing/unstable
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i586)
Shell: /bin/sh linked to /bin/bash
Kernel: Linux 2.4.31dandelion2
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Versions of packages octave depends on:
ii octave2.1 2.1.71-7 GNU Octave language for numerical
octave recommends no packages.
-- no debconf information
More information about the Pkg-octave-devel
mailing list