Here is the alpha/regdef.h
#ifndef _REGDEF_H_ #define _REGDEF_H_ #define v0 $0 #define t0 $1 #define t1 $2 #define t2 $3 #define t3 $4 #define t4 $5 #define t5 $6 #define t6 $7 #define t7 $8 #define s0 $9 #define s1 $10 #define s2 $11 #define s3 $12 #define s4 $13 #define s5 $14 #define s6 $15 #define fp $15 /* fp & s6 are the same */ #define a0 $16 #define a1 $17 #define a2 $18 #define a3 $19 #define a4 $20 #define a5 $21 #define t8 $22 #define t9 $23 #define t10 $24 #define t11 $25 #define ra $26 #define pv $27 /* pv and t5 are the same */ #define t12 $27 #define AT $at #define gp $29 #define sp $30 #define zero $31 #endif 2014-09-09 7:26 GMT+02:00 Carl Shapiro <[email protected]>: > On Mon, Sep 8, 2014 at 8:51 PM, Raymond Toy <[email protected]> wrote: >> >> Not sure what that 0x302948ac is, but a1 should probably be the address of >> call_into_c. I think this part of the code is trying to call debug_print >> which is a C function, so the address of debug_print must be in one of the >> registers, and a1 should be call_into_c. (dbx) s [call_into_lisp:85 ,0x1201b4ec] jsr reg_ZERO,(reg_LIP) (dbx) printx $a1 0x50000000 before the first jsr (to %initial-function) a1 is 0x50000000 but inside %initial-function a1 is set to 0 >*[., 0x30294884] sll t10, 0x20, t10 (dbx) stepi >*[., 0x30294888] lda t10, 0(t10) (dbx) stepi >*[., 0x3029488c] ldah t10, 0(t10) (dbx) stepi >*[., 0x30294890] lda a1, 0(zero) <====== (dbx) stepi >*[., 0x30294894] ldah a1, 0(a1) (dbx) stepi >*[., 0x30294898] sll a1, 0x20, a1 (dbx) stepi >*[., 0x3029489c] lda a1, 0(a1) (dbx) stepi >*[., 0x302948a0] ldah a1, 0(a1) really I don't understand this code... I load 0 in a1, then load-high a1 with a1 (but it's 0) then shift left 0 with 0, etc... after few instructions I call: >*[., 0x302948a8] jsr v0, (a1), 0x302948ac but a1 is 0. (dbx) printx $v0 0x30294860 <=== %initial-function how can we inspect the code of %initial-function ? > > > Can we find out what is in a1 at the time of the crash? That should be the > jump target. I am curious if it is 0, which it certainly seems like, but we > have no idea what the debugger might be doing behind your back. If the > lisp.nm file does not contain an address for debug_print, genesis will this is the line in lisp.nm 0x000000120152ec T debug_print > default that value to 0. (A really smelly value like 0xdeaddead would be a > better default.) _______________________________________________ cmucl-help mailing list [email protected] http://lists.zs64.net/mailman/listinfo/cmucl-help
