Hi guys,
I thought the unaligned accesses I had with GHC on IA64 had magically
gone away when I compiled with a more recent GHC and gcc, but it turns
out they were still happening on another machine. When I tried to
compile a debugging RTS on the first machine to debug on the second
with, I found the newly compiled GHC was again giving unaligned accesses
on the first machine.
This is GHC 6.2.1, gcc version 3.3.4 (Debian). I've stuck a load of
debugging info below; if there's anything else you need please ask.
Thanks
Ian
$ ../ghc6-6.2.1/ghc/compiler/stage2/ghc-inplace -O Foo.hs -o foo +RTS
-D{s,i,c,w,G,g,b,S,t,p,r,P,l} 2> out
ghc-6.2.1(28878): unaligned access to 0x400000000201c80f, ip=0x40000000009dafd1
$
out is at
http://merulo.debian.org/~igloo/out
or
http://merulo.debian.org/~igloo/out.gz
----------8<--------------------8<----------
$ prctl --unaligned=signal gdb
/home/igloo/debug_rts/ghc6-6.2.1/ghc/compiler/stage2/ghc-6.2.1
[...]
(gdb) run -B/home/igloo/debug_rts/ghc6-6.2.1 -O Foo.hs -o foo
Starting program: /home/igloo/debug_rts/ghc6-6.2.1/ghc/compiler/stage2/ghc-6.2.1
-B/home/igloo/debug_rts/ghc6-6.2.1 -O Foo.hs -o foo
stg_fun_gc_gen(ARG_GEN)stg_gc_fun_ret(ARG_GEN)
[previous line repeated lots]
Program received signal SIGBUS, Bus error.
0x40000000009dafd1 in s3RF_1_alt ()
(gdb) bt
#0 0x40000000009dafd1 in s3RF_1_alt ()
#1 0x40000000009dab10 in s2ON_entry ()
#2 0x0000000000000000 in ?? ()
Previous frame identical to this frame (corrupt stack?)
(gdb) disassemble
Dump of assembler code for function s3RF_1_alt:
0x40000000009daf30 <s3RF_1_alt+0>: [MMI] mov r63=r1;;
0x40000000009daf31 <s3RF_1_alt+1>: adds r59=16,r59
0x40000000009daf32 <s3RF_1_alt+2>: nop.i 0x0;;
0x40000000009daf40 <s3RF_1_alt+16>: [MFB] cmp.ltu p7,p6=r60,r59
0x40000000009daf41 <s3RF_1_alt+17>: nop.f 0x0
0x40000000009daf42 <s3RF_1_alt+18>: (p06) br.cond.dptk.few
0x40000000009dafb0 <s3RF_1_alt+128>
0x40000000009daf50 <s3RF_1_alt+32>: [MMI] addl r15=7704,r1;;
0x40000000009daf51 <s3RF_1_alt+33>: ld8 r14=[r15]
0x40000000009daf52 <s3RF_1_alt+34>: nop.i 0x0;;
0x40000000009daf60 <s3RF_1_alt+48>: [MMI] adds r14=16,r14;;
0x40000000009daf61 <s3RF_1_alt+49>: adds r14=176,r14
0x40000000009daf62 <s3RF_1_alt+50>: mov r15=2;;
0x40000000009daf70 <s3RF_1_alt+64>: [MFI] st8 [r14]=r15
0x40000000009daf71 <s3RF_1_alt+65>: nop.f 0x0
0x40000000009daf72 <s3RF_1_alt+66>: addl r16=7704,r1;;
0x40000000009daf80 <s3RF_1_alt+80>: [MMI] ld8 r14=[r16];;
0x40000000009daf81 <s3RF_1_alt+81>: ld8 r14=[r14]
0x40000000009daf82 <s3RF_1_alt+82>: nop.i 0x0;;
0x40000000009daf90 <s3RF_1_alt+96>: [MMI] ld8 r15=[r14],8;;
0x40000000009daf91 <s3RF_1_alt+97>: nop.m 0x0
0x40000000009daf92 <s3RF_1_alt+98>: mov b6=r15
0x40000000009dafa0 <s3RF_1_alt+112>: [MFB] ld8 r1=[r14]
0x40000000009dafa1 <s3RF_1_alt+113>: nop.f 0x0
0x40000000009dafa2 <s3RF_1_alt+114>: br.few b6;;
0x40000000009dafb0 <s3RF_1_alt+128>: [MFI] adds r15=-8,r59
0x40000000009dafb1 <s3RF_1_alt+129>: nop.f 0x0
0x40000000009dafb2 <s3RF_1_alt+130>: addl r16=10992,r1;;
0x40000000009dafc0 <s3RF_1_alt+144>: [MMI] ld8 r14=[r16];;
0x40000000009dafc1 <s3RF_1_alt+145>: st8 [r15]=r14
0x40000000009dafc2 <s3RF_1_alt+146>: addl r14=283768,r1;;
0x40000000009dafd0 <s3RF_1_alt+160>: [MMI] ld8 r14=[r14];;
0x40000000009dafd1 <s3RF_1_alt+161>: ldfs f6=[r14]
0x40000000009dafd2 <s3RF_1_alt+162>: adds r14=16,r12;;
0x40000000009dafe0 <s3RF_1_alt+176>: [MMB] stfs [r14]=f6
0x40000000009dafe1 <s3RF_1_alt+177>: ldfs f6=[r14]
0x40000000009dafe2 <s3RF_1_alt+178>: nop.b 0x0;;
0x40000000009daff0 <s3RF_1_alt+192>: [MII] stfs [r59]=f6
0x40000000009daff1 <s3RF_1_alt+193>: adds r48=-8,r59
0x40000000009daff2 <s3RF_1_alt+194>: adds r56=8,r56
0x40000000009db000 <s3RF_1_alt+208>: [MMI] addl r16=4976,r1;;
0x40000000009db001 <s3RF_1_alt+209>: ld8 r14=[r16]
0x40000000009db002 <s3RF_1_alt+210>: nop.i 0x0;;
0x40000000009db010 <s3RF_1_alt+224>: [MMI] ld8 r14=[r14];;
0x40000000009db011 <s3RF_1_alt+225>: ld8 r15=[r14],8
0x40000000009db012 <s3RF_1_alt+226>: nop.i 0x0;;
0x40000000009db020 <s3RF_1_alt+240>: [MFI] nop.m 0x0
0x40000000009db021 <s3RF_1_alt+241>: nop.f 0x0
0x40000000009db022 <s3RF_1_alt+242>: mov b6=r15
0x40000000009db030 <s3RF_1_alt+256>: [MFB] ld8 r1=[r14]
0x40000000009db031 <s3RF_1_alt+257>: nop.f 0x0
0x40000000009db032 <s3RF_1_alt+258>: br.few b6;;
End of assembler dump.
(gdb) info registers
r0 0x0 0
r1 0x60000000000a8c60 6917529027641773152
r2 0x0 0
r3 0x0 0
r4 0x0 0
r5 0x0 0
r6 0x0 0
r7 0x0 0
r8 0x18 24
r9 0x20000000005c4498 2305843009219740824
r10 0x0 0
r11 0x60000000000abc58 6917529027641785432
r12 0x60000fffffffb180 6917546619827106176
r13 0x200000000002f500 2305843009213887744
r14 0x400000000201c80f 4611686018461059087
r15 0x20000000006d41e0 2305843009220854240
r16 0x60000000000ab750 6917529027641784144
r17 0x60000000000a87d8 6917529027641771992
r18 0x20000000006d40f0 2305843009220854000
r19 0x2000000000a2e178 2305843009224368504
r20 0x20000000005c61d0 2305843009219748304
r21 0x2000000000458480 2305843009218249856
r22 0x0 0
r23 0x60000fff7fffc110 6917546617679626512
r24 0x0 0
r25 0x0 0
r26 0xc000000000000512 -4611686018427386606
r27 0xf 15
r28 0x2000000000500e00 2305843009218940416
r29 0x1213084a6010 19872952770576
r30 0x0 0
r31 0x150281 1376897
b0 0x40000000009dab10 4611686018437720848
b1 0x0 0
b2 0x0 0
b3 0x0 0
b4 0x0 0
b5 0x0 0
b6 0x40000000009daf30 4611686018437721904
b7 0x0 0
vfp 0x0 0
vrap 0x0 0
pr 0x160241 1442369
ip 0x40000000009dafd0 4611686018437722064
psr 0x20000000010 2199023255568
cfm 0x1028 4136
kr0 0x0 0
kr1 0x0 0
kr2 0x0 0
kr3 0x0 0
kr4 0x0 0
kr5 0x0 0
kr6 0x0 0
kr7 0x0 0
rsc 0xf 15
bsp 0x60000fff7fffc2a0 6917546617679626912
bspstore 0x60000fff7fffc110 6917546617679626512
rnat 0x0 0
fcr 0x0 0
eflag 0x0 0
csd 0x0 0
ssd 0x0 0
cflg 0x0 0
fsr 0x0 0
fir 0x0 0
fdr 0x0 0
ccv 0x0 0
unat 0x0 0
fpsr 0x9804c8a70433f 2674341018878783
itc 0x0 0
pfs 0xc000000000001028 -4611686018427383768
[lots of registers holding 0]
bof 0x60000fff7fffc158 6917546617679626584
r32 0x20000000006d40a0 2305843009220853920
r33 0x2 2
r34 0x600000000036f500 6917529027644683520
r35 0x806 2054
r36 0x2 2
r37 0x1 1
r38 0x600000000016dfa8 6917529027642580904
r39 0x60000000000a7570 6917529027641767280
r40 0x5c6 1478
r41 0x142ae4 1321700
r42 0x600000000036f528 6917529027644683560
r43 0x600000000016dfa8 6917529027642580904
r44 0x60000000000a7570 6917529027641767280
r45 0x600000000036f56c 6917529027644683628
r46 0x6000000000157468 6917529027642487912
r47 0x8009 32777
r48 0x600000000007c8a8 6917529027641591976
r49 0x6000000000085728 6917529027641628456
r50 0x6000000000085728 6917529027641628456
r51 0x6000000000085728 6917529027641628456
r52 0x20000000006d39c0 2305843009220852160
r53 0x20000000006cf258 2305843009220833880
r54 0x20000000006d2b98 2305843009220848536
r55 0x20000000006d2bb0 2305843009220848560
r56 0x2000000000b43c60 2305843009225505888
r57 0x2 2
r58 0x2000000000b04108 2305843009225244936
r59 0x20000000006d41e8 2305843009220854248
r60 0x20000000006d4ff8 2305843009220857848
r61 0xc00000000000048d -4611686018427386739
r62 0x4000000001fd6100 4611686018460770560
r63 0x60000000000a8c60 6917529027641773152
r64 0x6000000000022d00 6917529027641224448
r65 0x1 1
r66 0x18 24
r67 0x20000000005c61a0 2305843009219748256
r68 0x18 24
r69 0x8000 32768
r70 0x18 24
r71 0x4000000001ff5ea0 4611686018460901024
[a bundle more registers holding 0 except p{0,6,9,17,18,20} holding 1]
(gdb) x/x 0x60000000000ee0d8
0x60000000000ee0d8 <__JCR_LIST__+283776>: 0x0201c80f
(gdb) x/x 0x400000000201c80f
0x400000000201c80f <_fini+59375>: 0xc0000000
(gdb)
----------8<--------------------8<----------
_______________________________________________
Glasgow-haskell-bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs