[cmucl-help] CMUCL 18c building on tru64 5.1
Raymond Toy
toy.raymond at gmail.com
Thu Sep 4 16:41:46 UTC 2014
On Thu, Sep 4, 2014 at 9:34 AM, Fausto Saporito <fausto.saporito at gmail.com>
wrote:
> Hello Ray,
>
> maybe these are some optimization done by the compiler.
> You gave me an idea... I'll try to disable all optimizations, and do
> again the debug.
>
You mean assembler? But maybe the assembler is doing some optimization
too.
>
> Is it possible substitute this call_into_lisp with some C function ?
>
Probably not. Unless you count lots of inline assembly in a C function as
a C function.
>
> regards,
> Fausto
>
>
> 2014-09-04 18:17 GMT+02:00 Raymond Toy <toy.raymond at gmail.com>:
> >
> >
> >
> > On Thu, Sep 4, 2014 at 3:46 AM, Fausto Saporito <
> fausto.saporito at gmail.com>
> > wrote:
> >>
> >> Hello,
> >>
> >> this is the debug session of alpha-assem.s, specifically call_to_lisp
> >> function:
> >>
> >> (dbx) stop in funcall0
> >> [2] stop in funcall0
> >> (dbx) run -core kernel.core
> >> WARNING: startup-code version (6) different from core version (0).
> >> You may lose big.
> >> [2] stopped at [funcall0:315 ,0x1202df14] lispobj *args =
> >> current_control_stack_pointer;
> >> (dbx) n
> >> [funcall0:317 ,0x1202df20] return call_into_lisp(function, args,
> 0);
> >> (dbx) stepi
> >> >*[funcall0:317, 0x1202df24] ldq a1, 16(sp)
> >> (dbx) stepi
> >> >*[funcall0:317, 0x1202df28] bis zero, zero, a2
> >> (dbx) stepi
> >> >*[funcall0:317, 0x1202df2c] ldq_u zero, 0(sp)
> >> (dbx) stepi
> >> >*[funcall0:317, 0x1202df30] bsr ra, call_into_lisp+0x8(line 54)
> >> (dbx) stepi
> >> >*[call_into_lisp:54, 0x1202e138] ldah at, 511(gp)
> >> (dbx) stepi
> >> >*[call_into_lisp:25, 0x1202e13c] lda sp, -64(sp)
> >> (dbx) stepi
> >> >*[call_into_lisp:28, 0x1202e140] stq s1, 16(sp)
> >> (dbx) stepi
> >> >*[call_into_lisp:61, 0x1202e144] bis a1, a1, s1
> >> (dbx) stepi
> >> >*[call_into_lisp:29, 0x1202e148] stq s2, 24(sp)
> >> (dbx) stepi
> >> >*[call_into_lisp:42, 0x1202e14c] bis zero, zero, s2
> >> (dbx) stepi
> >> >*[call_into_lisp:30, 0x1202e150] stq s3, 32(sp)
> >> (dbx) stepi
> >> >*[call_into_lisp:45, 0x1202e154] bis zero, zero, t12
> >> (dbx) stepi
> >> >*[call_into_lisp:31, 0x1202e158] stq s4, 40(sp)
> >> (dbx) stepi
> >> >*[call_into_lisp:40, 0x1202e15c] bis a0, a0, s4
> >> (dbx) stepi
> >> >*[call_into_lisp:32, 0x1202e160] stq s5, 48(sp)
> >> (dbx) stepi
> >> >*[call_into_lisp:38, 0x1202e164] bis zero, zero, s5
> >> (dbx) stepi
> >> >*[call_into_lisp:33, 0x1202e168] stq s6, 56(sp)
> >> (dbx) stepi
> >> >*[call_into_lisp:49, 0x1202e16c] ldah s6, 10240(zero)
> >> (dbx) stepi
> >> >*[call_into_lisp:27, 0x1202e170] stq s0, 8(sp)
> >> (dbx) stepi
> >> >*[call_into_lisp:49, 0x1202e174] lda s6, 11(s6)
> >> (dbx) stepi
> >> >*[call_into_lisp:26, 0x1202e178] stq ra, 0(sp)
> >> (dbx) stepi
> >> >*[call_into_lisp:43, 0x1202e17c] bis zero, zero, ra
> >> (dbx) stepi
> >> >*[call_into_lisp:54, 0x1202e180] stl zero, 23488(at)
> >> (dbx) stepi
> >> >*[call_into_lisp:77, 0x1202e184] ldah ra, 1(zero)
> >> (dbx) stepi
> >> >*[call_into_lisp:57, 0x1202e188] ldah at, 511(gp)
> >> (dbx) stepi
> >> >*[call_into_lisp:44, 0x1202e18c] bis zero, zero, t6
> >> (dbx) stepi
> >> >*[call_into_lisp:80, 0x1202e190] ldl s5, 3(s4)
> >> (dbx) stepi
> >> >*[call_into_lisp:77, 0x1202e194] lda ra, 7(ra)
> >> (dbx) stepi
> >> >*[call_into_lisp:57, 0x1202e198] ldl t8, 23424(at)
> >> (dbx) stepi
> >> >*[call_into_lisp:39, 0x1202e19c] bis zero, zero, t9
> >> (dbx) stepi
> >> >*[call_into_lisp:58, 0x1202e1a0] ldah at, 511(gp)
> >> (dbx) stepi
> >> >*[call_into_lisp:81, 0x1202e1a4] addl s5, 0x17, v0
> >> (dbx) stepi
> >> >*[call_into_lisp:69, 0x1202e1a8] ldl t0, 0(s1)
> >> (dbx) stepi
> >> >*[call_into_lisp:41, 0x1202e1ac] s4addq a2, 0, t7
> >> (dbx) stepi
> >> >*[call_into_lisp:58, 0x1202e1b0] ldl s3, 23480(at)
> >> (dbx) stepi
> >> >*[call_into_lisp:59, 0x1202e1b4] ldah at, 511(gp)
> >> (dbx) stepi
> >> >*[call_into_lisp:70, 0x1202e1b8] ldl t1, 4(s1)
> >> (dbx) stepi
> >> >*[call_into_lisp:59, 0x1202e1bc] ldl s0, 23464(at)
> >> (dbx) stepi
> >> >*[call_into_lisp:60, 0x1202e1c0] ldah at, 511(gp)
> >> (dbx) stepi
> >> >*[call_into_lisp:71, 0x1202e1c4] ldl t2, 8(s1)
> >> (dbx) stepi
> >> >*[call_into_lisp:60, 0x1202e1c8] ldl s2, 23472(at)
> >> (dbx) stepi
> >> >*[call_into_lisp:64, 0x1202e1cc] bis zero, zero, at
> >> (dbx) stepi
> >> >*[call_into_lisp:72, 0x1202e1d0] ldl t3, 12(s1)
> >> (dbx) stepi
> >> >*[call_into_lisp:73, 0x1202e1d4] ldl t4, 16(s1)
> >> (dbx) stepi
> >> >*[call_into_lisp:74, 0x1202e1d8] ldl t5, 20(s1)
> >> (dbx) stepi
> >> >*[call_into_lisp:84, 0x1202e1dc] jsr zero, (v0), 0x1202e1e0
> >
> >
> > I have to say, I can't really understand this. The disassembled
> > instructions don't seem to match what's in alpha-assem.S. I'm guessing,
> > however, that this jsr inst is jumping into the initial_function, which
> > might be in v0. But in alpha-assem.S, the instruction looks like jsr
> > reg_ZERO, (reg_LIP).
> >
> >>
> >> (dbx) stepi
> >> >*[., 0x3028eee8] lda s5, -305(v0)
> >> (dbx) stepi
> >> >*[., 0x3028eeec] lda s0, 96(s1)
> >> (dbx) stepi
> >> >*[., 0x3028eef0] bne t7, 0x3028fd90
> >> (dbx) stepi
> >> >*[., 0x3028eef4] stl s2, 0(s1)
> >> (dbx) stepi
> >> >*[., 0x3028eef8] stl ra, 4(s1)
> >> (dbx) stepi
> >> >*[., 0x3028eefc] ldl t9, 13(s5)
> >> (dbx) stepi
> >> >*[., 0x3028ef00] bis zero, t9, a0
> >> (dbx) stepi
> >> >*[., 0x3028ef04] lda t10, 0(zero)
> >> (dbx) stepi
> >> >*[., 0x3028ef08] ldah t10, 0(t10)
> >> (dbx) stepi
> >> >*[., 0x3028ef0c] sll t10, 0x20, t10
> >> (dbx) stepi
> >> >*[., 0x3028ef10] lda t10, 0(t10)
> >> (dbx) stepi
> >> >*[., 0x3028ef14] ldah t10, 0(t10)
> >> (dbx) stepi
> >> >*[., 0x3028ef18] lda a1, 0(zero)
> >> (dbx) stepi
> >> >*[., 0x3028ef1c] ldah a1, 0(a1)
> >> (dbx) stepi
> >> >*[., 0x3028ef20] sll a1, 0x20, a1
> >> (dbx) stepi
> >> >*[., 0x3028ef24] lda a1, 0(a1)
> >> (dbx) stepi
> >> >*[., 0x3028ef28] ldah a1, 0(a1)
> >> (dbx) stepi
> >> >*[., 0x3028ef2c] lda sp, -16(sp)
> >> (dbx) stepi
> >> >*[., 0x3028ef30] jsr v0, (a1), 0x3028ef34
> >> (dbx) stepi
> >
> >
> > I think at this point you are in Lisp, running lisp code. I'm guessing
> this
> > jsr is trying to do %primitive print to print "In initial-function, and
> > running."
> >
> >
> >>
> >>
> >> warning: breakpoint location cannot be written
> >> signal Segmentation fault at
> >> warning: PC value 0x0 not valid, trying RA
> >> > [., 0x10007] bgt t10, 0x117d1f
> >> (dbx)
> >>
> >> 2014-09-04 9:27 GMT+02:00 Carl Shapiro <carl.shapiro at gmail.com>:
> >> > You might want to check the definitions of structures like struct,
> >> > struct
> >> > timeval, and struct sigcontext against what is unix.lisp. These
> >> > structures
> >> > evolved to have wider fields for various things though I no longer
> >> > remember
> >> > what the defaults might have been. However, having a bad structure
> >> > definition can cause all sorts of memory corruption so it is worth
> >> > ruling
> >> > out.
> >> >
> >
> >
>
More information about the cmucl-help
mailing list