[cfe-dev] cmus compiled with clang crashes with sigill
Gregory Petrosyan
gregory.petrosyan+clang at gmail.com
Wed Jun 24 16:18:34 PDT 2009
Hello list,
cmus console music player (from
git://github.com/JasonWoof/cmus-unofficial.git) crashes at startup when
compiled with clang. Some gdb info:
(gdb) run
Starting program: /home/gregory/software/cmus/cmus
[Thread debugging using libthread_db enabled]
[New Thread 0xb7e536c0 (LWP 11351)]
[New Thread 0xb6f8fb90 (LWP 11354)]
[New Thread 0xb678eb90 (LWP 11355)]
[New Thread 0xb5f8db90 (LWP 11356)]
Program received signal SIGILL, Illegal instruction.
[Switching to Thread 0xb7e536c0 (LWP 11351)]
set_replaygain_preamp () at options.c:332
332 val = strtod(buf, &end);
Current language: auto; currently minimal
(gdb) disassemble
Dump of assembler code for function set_replaygain_preamp:
0x08061200 <set_replaygain_preamp+0>: push %ebp
0x08061201 <set_replaygain_preamp+1>: mov %esp,%ebp
0x08061203 <set_replaygain_preamp+3>: push %esi
0x08061204 <set_replaygain_preamp+4>: sub $0x14,%esp
0x08061207 <set_replaygain_preamp+7>: lea -0x8(%ebp),%eax
0x0806120a <set_replaygain_preamp+10>: mov %eax,0x4(%esp)
0x0806120e <set_replaygain_preamp+14>: mov 0xc(%ebp),%esi
0x08061211 <set_replaygain_preamp+17>: mov %esi,(%esp)
0x08061214 <set_replaygain_preamp+20>: call 0x804f238 <strtod at plt>
0x08061219 <set_replaygain_preamp+25>: fstpl -0x10(%ebp)
0x0806121c <set_replaygain_preamp+28>: cmp %esi,-0x8(%ebp)
0x0806121f <set_replaygain_preamp+31>: jne 0x8061233
<set_replaygain_preamp+51>
0x08061221 <set_replaygain_preamp+33>: movl $0x80724d0,(%esp)
0x08061228 <set_replaygain_preamp+40>: call 0x8069750 <error_msg>
0x0806122d <set_replaygain_preamp+45>: add $0x14,%esp
0x08061230 <set_replaygain_preamp+48>: pop %esi
0x08061231 <set_replaygain_preamp+49>: pop %ebp
0x08061232 <set_replaygain_preamp+50>: ret
0x08061233 <set_replaygain_preamp+51>: movsd -0x10(%ebp),%xmm0
0x08061238 <set_replaygain_preamp+56>: movsd %xmm0,(%esp)
0x0806123d <set_replaygain_preamp+61>: call 0x8064660
<player_set_rg_preamp>
0x08061242 <set_replaygain_preamp+66>: jmp 0x806122d
<set_replaygain_preamp+45>
End of assembler dump.
(gdb) disassemble $pc $pc+1
Dump of assembler code from 0x8061233 to 0x8061234:
0x08061233 <set_replaygain_preamp+51>: movsd -0x10(%ebp),%xmm0
End of assembler dump.
(gdb) info registers
eax 0x40180000 1075314688
ecx 0xbfe704dc -1075378980
edx 0x80000 524288
ebx 0x806e2b7 134668983
esp 0xbfe70520 0xbfe70520
ebp 0xbfe70538 0xbfe70538
esi 0x82b6d7a 137063802
edi 0x3 3
eip 0x8061233 0x8061233 <set_replaygain_preamp+51>
eflags 0x10212 [ AF IF RF ]
cs 0x73 115
ss 0x7b 123
ds 0x7b 123
es 0x7b 123
fs 0x0 0
gs 0x33 51
Can anybody please explain me what's going on?
Gregory
More information about the cfe-dev
mailing list