Subject: Re: Audacity crashes.
To: None <port-amd64@netbsd.org>
From: Richard Rauch <rkr@olib.org>
List: port-amd64
Date: 03/16/2005 18:07:05
Another crash; not on the FLDL instruction, but again in floor().
Since there was no comment about the previous crash, I thought I'd
post this new one as well. Complete register status is also
included.
Is there an online reference for the AMD64 instruction set? (I
really don't care to descend into assembly, but it would be nice
if I didn't have to guess at what the opcodes were when looking at
disassemblies nominally around a crash. (^& At one time I had
8086 and 80386 references, which might help for integer ops, if I
still had them. But they didn't cover FPU ops.)
How can I get gdb to display the value at 0xfffffffffffffff8(%rsp,1)?
(I tried just printing it; it complained about a syntax error; I
tried changing the % to $, and was told that "You can't do that
without a process to debug." Is a .core file not supposed to be
sufficient?)
Still not sure if I should be filing a PR, or what...
(gdb) bt
#0 0x0000000204c13ef1 in floor () from /usr/lib/libm.so.0
(gdb) disassemble
Dump of assembler code for function floor:
0x204c13ec4 <floor>: movsd %xmm0,0xfffffffffffffff8(%rsp,1)
0x204c13eca <floor+6>: fstcw 0xfffffffffffffff4(%rsp,1)
0x204c13ecf <floor+11>: mov 0xfffffffffffffff4(%rsp,1),%dx
0x204c13ed4 <floor+16>: or $0x400,%dx
0x204c13ed9 <floor+21>: and $0xf7ff,%dx
0x204c13ede <floor+26>: mov %dx,0xfffffffffffffff0(%rsp,1)
0x204c13ee3 <floor+31>: fldcw 0xfffffffffffffff0(%rsp,1)
0x204c13ee7 <floor+35>: fldl 0xfffffffffffffff8(%rsp,1)
0x204c13eeb <floor+39>: frndint
0x204c13eed <floor+41>: fldcw 0xfffffffffffffff4(%rsp,1)
0x204c13ef1 <floor+45>: fstpl 0xfffffffffffffff8(%rsp,1)
0x204c13ef5 <floor+49>: movsd 0xfffffffffffffff8(%rsp,1),%xmm0
0x204c13efb <floor+55>: retq
0x204c13efc <floor+56>: and $0x4e,%al
0x204c13efe <floor+58>: gs
0x204c13eff <floor+59>: je 0x204c13f43 <floor+127>
0x204c13f01 <floor+61>: push %rbx
[...]
(gdb) info all-registers
rax 0xca424 828452
rbx 0xca424 828452
rcx 0x7f7fffe00000 140187730444288
rdx 0x167f 5759
rsi 0x205010f30 8673890096
rdi 0x2053ba864 8677730404
rbp 0xc53808 0xc53808
rsp 0x7f7fffffd718 0x7f7fffffd718
r8 0x12e7000 19820544
r9 0x8040 32832
r10 0x0 0
r11 0x0 0
r12 0x18b 395
r13 0x0 0
r14 0x0 0
r15 0x0 0
rip 0x204c13ef1 0x204c13ef1 <floor+45>
eflags 0x10202 66050
ds 0x1f 31
es 0x17 23
fs 0x17 23
gs 0x23 35
st0 nan (raw 0xffff0000000000100000)
st1 nan (raw 0xffff0000000004000004)
st2 nan (raw 0xffff0000000000000002)
st3 nan (raw 0xffff0000000028384637)
st4 nan (raw 0xffff00000000000d3828)
st5 nan (raw 0xffff00000000a006c1f3)
st6 nan (raw 0x4004c1ced916872b0000)
st7 nan (raw 0x00000000000000000000)
fctrl 0x0 0
fstat 0x0 0
ftag 0x0 0
fiseg 0x0 0
fioff 0x0 0
foseg 0x0 0
fooff 0x0 0
fop 0x0 0
xmm0 {f = {0x0, 0xa, 0x0, 0x0}} {f = {-4.26544862e-24,
10.5801468, 0, 0}}
xmm1 {f = {0x3efa9d00, 0x4, 0x0, 0x0}} {f = {1.05661158e+09,
4.3090353, 0, 0}}
xmm2 {f = {0x3efa9d00, 0x4, 0x0, 0x0}} {f = {1.05661158e+09,
4.3090353, 0, 0}}
xmm3 {f = {0x0, 0x1, 0x0, 0x0}} {f = {0, 1.75, 0, 0}}
xmm4 {f = {0x0, 0x1, 0x0, 0x0}} {f = {0.0393981934,
1.28259277, 0, 0}}
xmm5 {f = {0x0, 0x4, 0x0, 0x0}} {f = {2.7562691e-10,
4.30903292, 0, 0}}
xmm6 {f = {0x0, 0x1, 0x0, 0x0}} {f = {0, 1.75, 0, 0}}
xmm7 {f = {0x0, 0x0, 0x0, 0x0}} {f = {0, 0, 0, 0}}
xmm8 {f = {0x0, 0x0, 0x0, 0x0}} {f = {0, 0, 0, 0}}
xmm9 {f = {0x0, 0x0, 0x0, 0x0}} {f = {0, 0, 0, 0}}
xmm10 {f = {0x0, 0x0, 0x0, 0x0}} {f = {0, 0, 0, 0}}
xmm11 {f = {0x0, 0x0, 0x0, 0x0}} {f = {0, 0, 0, 0}}
xmm12 {f = {0x0, 0x0, 0x0, 0x0}} {f = {0, 0, 0, 0}}
xmm13 {f = {0x0, 0x0, 0x0, 0x0}} {f = {0, 0, 0, 0}}
xmm14 {f = {0x0, 0x0, 0x0, 0x0}} {f = {0, 0, 0, 0}}
xmm15 {f = {0x0, 0x0, 0x0, 0x0}} {f = {0, 0, 0, 0}}
mxcsr 0x1fa0 8096
--
"I probably don't know what I'm talking about." http://www.olib.org/~rkr/