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/