Program received signal SIGFPE Arithmetic exception Switching to Threa

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Program received signal SIGFPE, Arithmetic exception.
[Switching to Thread 0xb65d1b90 (LWP 9440)]
0xb7998051 in snd_pcm_bytes_to_frames () from /usr/lib/libasound.so.2
(gdb) bt
#0 0xb7998051 in snd_pcm_bytes_to_frames () from /usr/lib/libasound.so.2
#1 0xb7a15cb7 in xmms_alsa_write (output=0x80c9900, buffer=0xb65d0374, len=4096, err=0xb65d0270)
at ../src/plugins/alsa/alsa.c:818
#2 0x08074df5 in xmms_output_plugin_writer (data=0x80b6db8) at ../src/xmms/outputplugin.c:460
#3 0xb7ed0b7f in ?? () from /usr/lib/libglib-2.0.so.0
#4 0x080b6db8 in ?? ()
#5 0x087ac000 in ?? ()
#6 0x00000000 in ?? ()
(gdb) info registers
eax 0x8000 32768
ecx 0x884c3f0 142918640
edx 0x0 0
ebx 0xb7a02ff4 -1214238732
esp 0xb65d0200 0xb65d0200
ebp 0xb65d0218 0xb65d0218
esi 0x87ac000 142262272
edi 0xb7df1b90 -1210115184
eip 0xb7998051 0xb7998051 <snd_pcm_bytes_to_frames+33>
eflags 0x210216 [ PF AF IF RF ID ]
cs 0x73 115
ss 0x7b 123
ds 0x7b 123
es 0x7b 123
fs 0x0 0
gs 0x33 51
(gdb) disassemble
Dump of assembler code for function snd_pcm_bytes_to_frames:
0xb7998030 <snd_pcm_bytes_to_frames+0>: push %ebp
0xb7998031 <snd_pcm_bytes_to_frames+1>: mov %esp,%ebp
0xb7998033 <snd_pcm_bytes_to_frames+3>: push %ebx
0xb7998034 <snd_pcm_bytes_to_frames+4>: sub $0x14,%esp
0xb7998037 <snd_pcm_bytes_to_frames+7>: mov 0x8(%ebp),%ecx
0xb799803a <snd_pcm_bytes_to_frames+10>: call 0xb7973425 <snd_timer_params_set_filter@plt+233>
0xb799803f <snd_pcm_bytes_to_frames+15>: add $0x6afb5,%ebx
0xb7998045 <snd_pcm_bytes_to_frames+21>: test %ecx,%ecx
0xb7998047 <snd_pcm_bytes_to_frames+23>: je 0xb799805d <snd_pcm_bytes_to_frames+45>
0xb7998049 <snd_pcm_bytes_to_frames+25>: mov 0xc(%ebp),%eax
0xb799804c <snd_pcm_bytes_to_frames+28>: xor %edx,%edx
0xb799804e <snd_pcm_bytes_to_frames+30>: shl $0x3,%eax
0xb7998051 <snd_pcm_bytes_to_frames+33>: divl 0x94(%ecx) <---- EIP points here
0xb7998057 <snd_pcm_bytes_to_frames+39>: add $0x14,%esp
0xb799805a <snd_pcm_bytes_to_frames+42>: pop %ebx
0xb799805b <snd_pcm_bytes_to_frames+43>: pop %ebp
0xb799805c <snd_pcm_bytes_to_frames+44>: ret
0xb799805d <snd_pcm_bytes_to_frames+45>: lea -0xb524(%ebx),%eax
0xb7998063 <snd_pcm_bytes_to_frames+51>: mov %eax,0xc(%esp)
0xb7998067 <snd_pcm_bytes_to_frames+55>: mov $0x753,%eax
0xb799806c <snd_pcm_bytes_to_frames+60>: mov %eax,0x8(%esp)
0xb7998070 <snd_pcm_bytes_to_frames+64>: lea -0x9f09(%ebx),%eax
0xb7998076 <snd_pcm_bytes_to_frames+70>: mov %eax,0x4(%esp)
0xb799807a <snd_pcm_bytes_to_frames+74>: lea -0xd357(%ebx),%eax
0xb7998080 <snd_pcm_bytes_to_frames+80>: mov %eax,(%esp)
0xb7998083 <snd_pcm_bytes_to_frames+83>: call 0xb797160c <__assert_fail@plt>
End of assembler dump.