gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Gcl-devel] HEAD Maxima and HEAD trad GCL


From: Mike Thomas
Subject: RE: [Gcl-devel] HEAD Maxima and HEAD trad GCL
Date: Tue, 6 Jan 2004 17:45:46 +1000

Hi Camm.

| > OK, but defpackage in the HEAD CLtL1 build is missing.
| > .....
|
| Yes, in HEAD I've restored the cltl1 build to the original lsp and
| cmpnew files only, and separated out our non-pcl and non-clcs
| additions into a mod/ directory, which gets built only when ansi is
| configured in.  The idea being to give legacy apps the smallest core
| to which they have been accustomed.
....
| Yes, see above.  Do you need defpackage when you don't need ansi?

I had previously believed that defpackage was part of CLtL1 - I didn't
realise it was something you had added later to GCL.


| > CLISP is still a valid option for hard core Maxima users on
| Windows.   So that everyone is clear on
|
| I would really not like to cede the windows ground to clisp.

I was thinking about fallback positions in the event that I fail to sort out
the bugs in Windows GCL.  Don't forget that keeping Maxima alive on Windows,
preferably in it's current state, is my main goal and that seems to be best
served by keeping GCL alive on Windows.  (I am also slightly fond of the old
GCL of course!) From what I have read of his posts, Dave Billinghurst seems
to be getting good mileage on Windows from CLISP.

| > There are also other issues - the fact that we need to use a
| workaround to build ANSI GCL on
| > Windows and the fact that the resulting build is unstable when
| it comes to error handling which
|
| The fast-link issue, right?

Yes.

|  We should definitely get to the bottom of
| this.  Vadim had done some work in this regard, but I think most of
| the fruit of that labor was the expansion of the heap size.  (Speaking
| of which, we really should integrate unexw32.c at some point.)  I had
| suspected that the core was growing into already used areas, but this
| seems less likely now.  We may be overruning the *link-array* or
| otherwise corrupting the C stack at the offending function call.  In
| any case, I need a refresher on this.  If you and/or Vadim could post
| a gdb backtrace (again) at the point of segfault with fast-links left
| on, do a frame 1, disassemble, and report the register contents at the
| point of the call to the offending function, this would be a start.

Sorry but I'm not fully understanding what you're saying - I've included a
cut and paste below - run,  frame 1, bt, info frame and a quick run up the
stack.

Is the current stack frame (frame 1) the arguments of the current function
present on the stack?  In any event, none of the addresses seem to be inside
functions.


| If memory serves, we had pinned the problem down to the very function
| call itself with our printf/format debugging.  I'm guessing now that
| somehow a bad value is getting written to the function pointers stored
| in compiled lisp files via the link-array.  (The way this works
| basically is that these pointers are initially set to stubs present in
| the same generated C file, which in turn call call_or_link et.al. with
| the address to the original function pointer as one argument.  When
| fast-linking is on, the function pointer is reset from the stub to the
| real function address which call_or_link finds, so that call_or_link
| is invoked only once, with subsequent calls going straight to the
| intended function as in C.)

What is the link-array - is it the result of loading the "*.data" files
produced by the compiler?

What do you mean by stubs in the C file? (A specific name in a particular C
file would help to make this a little more concrete for me.)

There is a bit of output below from looking at sLAlink_arrayA and
*sLAlink_arrayA->s.s_dbind.


|
| > often leads to a bind stack overflow.  Having said that I was
| able to use it to build and run both
|
| I've occasionally run into these as well, so this may not be Windows
| specific.  If you find a reproducible instance which does not appear
| on Linux, I'd be interested.

I'll try and find one for you.

| In general, these almost invariably
| result from invoking an error while processing another, e.g. running
| out of memory to format the error string as one example.  We need to
| determine a minimal set of root nodes, and set a static variable in
| each to prevent such recursion.





|
| > Jim's Maxima source snapshot from a few months ago and the ACL2
| current source release during the
| > week, so there is some hope for the future.
| >
|
| I'd be very alarmed if at least this behavior were not attainable.
| Nothing should have changed to make this impossible at present.

I'm alarmed almost every time I look at the internals of GCL!!

Cheers

MIke Thomas.



===============DEBUGGER OUTPUT========================================

.....
Loading binary of PCL_DFUN...
Loading binary of PCL_FAST_INIT...
Loading binary of PCL_BRAID...

Program received signal SIGSEGV, Segmentation fault.
0x1030c13d in ?? ()
(gdb) frame 1
#1  0x00000640 in ?? ()
(gdb) bt
#0  0x1030c13d in ?? ()
#1  0x00000640 in ?? ()
#2  0x00000640 in ?? ()
#3  0xffffffff in ?? ()
#4  0x102d6104 in ?? ()
#5  0x005b0e94 in value_stack ()
#6  0x1021d0b4 in ?? ()
#7  0x0022be88 in ?? ()
#8  0x005b0e98 in value_stack ()
#9  0x005b0e78 in value_stack ()
#10 0x005b0e90 in value_stack ()
#11 0x0022be88 in ?? ()
#12 0x004314ac in call_or_link (sym=0x1022c3a8, link=0x1031d57c)
    at funlink.c:71
#13 0x1031cb77 in ?? ()
#14 0x1022c3a8 in ?? ()
#15 0x1031d57c in ?? ()
#16 0x10268858 in ?? ()
#17 0x1030e4b7 in ?? ()
#18 0x10242c3c in ?? ()
#19 0x005a57e0 in small_fixnum_table ()
#20 0x1031f054 in ?? ()
#21 0x1030e4eb in ?? ()
---Type <return> to continue, or q <return> to quit---q
Quit (expect signal SIGINT when the program is resumed)
(gdb) info frame
Stack level 1, frame at 0x22be58:
 eip = 0x640; saved eip 0x640
 called by frame at 0x22be5c, caller of frame at 0x22be54
 Arglist at 0x22be50, args:
 Locals at 0x22be50, Previous frame's sp is 0x22be58
 Saved registers:
  eip at 0x22be54
(gdb) disassemble
No function contains program counter for selected frame.

(gdb) disassemble 0x22be50
No function contains specified address.

(gdb) disassemble 0x22be54
No function contains specified address.

(gdb) disassemble 0x640
No function contains specified address.

(gdb) disassemble 0x22be5c
No function contains specified address.

(gdb) up
#2  0x00000640 in ?? ()
(gdb) info frame
Stack level 2, frame at 0x22be5c:
 eip = 0x640; saved eip 0xffffffff
 called by frame at 0x22be60, caller of frame at 0x22be58
 Arglist at 0x22be54, args:
 Locals at 0x22be54, Previous frame's sp is 0x22be5c
 Saved registers:
  eip at 0x22be58
(gdb) up
#3  0xffffffff in ?? ()
(gdb) info frame
Stack level 3, frame at 0x22be60:
 eip = 0xffffffff; saved eip 0x102d6104
 called by frame at 0x22be64, caller of frame at 0x22be5c
 Arglist at 0x22be58, args:
 Locals at 0x22be58, Previous frame's sp is 0x22be60
 Saved registers:
  eip at 0x22be5c
(gdb) disassemble 0x22be58
No function contains specified address.

(gdb) disassemble 0x22be60
No function contains specified address.

(gdb) up
#4  0x102d6104 in ?? ()
(gdb) info frame
Stack level 4, frame at 0x22be64:
 eip = 0x102d6104; saved eip 0x5b0e94
 called by frame at 0x22be68, caller of frame at 0x22be60
 Arglist at 0x22be5c, args:
 Locals at 0x22be5c, Previous frame's sp is 0x22be64
 Saved registers:
  eip at 0x22be60
(gdb) up
#5  0x005b0e94 in value_stack ()
(gdb) info frame
Stack level 5, frame at 0x22be68:
 eip = 0x5b0e94 in value_stack; saved eip 0x1021d0b4
 called by frame at 0x22be6c, caller of frame at 0x22be64
 Arglist at 0x22be60, args:
 Locals at 0x22be60, Previous frame's sp is 0x22be68
 Saved registers:
  eip at 0x22be64
(gdb) disassemble 0x22be6c
No function contains specified address.

(gdb) disassemble 0x22be64
No function contains specified address.

(gdb) disassemble 0x22be60
No function contains specified address.

(gdb) up 7
#12 0x004314ac in call_or_link (sym=0x1022c3a8, link=0x1031d57c)
    at funlink.c:71
71                  ( *(void (*)()) (fun->cf.cf_self)) ();
(gdb) info frame
Stack level 12, frame at 0x22be90:
 eip = 0x4314ac in call_or_link (funlink.c:71); saved eip 0x1031cb77
 called by frame at 0x22be94, caller of frame at 0x22be80
 source language c.
 Arglist at 0x22be88, args: sym=0x1022c3a8, link=0x1031d57c
 Locals at 0x22be88, Previous frame's sp is 0x22be90
 Saved registers:
  ebp at 0x22be88, eip at 0x22be8c
(gdb) disassemble 0x22be94
No function contains specified address.

(gdb) disassemble 0x22be80
No function contains specified address.

(gdb) disassemble 0x22be8c
No function contains specified address.

(gdb) disassemble 0x1031d57c
No function contains specified address.

(gdb) frame
#12 0x004314ac in call_or_link (sym=0x1022c3a8, link=0x1031d57c)
    at funlink.c:71
71                  ( *(void (*)()) (fun->cf.cf_self)) ();
(gdb) display 0x1022c3a8
1: 270713768 = 270713768
(gdb) display *0x1022c3a8
2: *270713768 = 8
(gdb) p 0x1022c3a8
$1 = 270713768
(gdb) p *0x1022c3a8
$2 = 8
(gdb) p 0x1031d57c
$3 = 271701372
(gdb) whatis 0x1022c3a8
type = int
(gdb) whatis 0x1031d57c
type = int
(gdb) p fun->cf.cf_self
$4 = (void (*)()) 0x1030c130
(gdb) p *fun->cf.cf_self
$5 = {void ()} 0x1030c130
(gdb) disassemble 0x1030c130
No function contains specified address.

(gdb) disassemble *0x1030c130
No function contains specified address.

(gdb) frame 1
#1  0x00000640 in ?? ()
(gdb) p 0x00000640
$6 = 1600
(gdb) p *0x00000640
Cannot access memory at address 0x640
(gdb) p sLAlink_arrayA
$7 = 0x1010c45c
(gdb) p *sLAlink_arrayA
$8 = {FIX = {t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0',
    FIXVAL = 269964752}, big = {t = 8 '\b', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0', big_mpz_t = {_mp_alloc = 269964752, _mp_size = 5509808,
      _mp_d = 0x52c3f3}}, rat = {t = 8 '\b', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0', rat_den = 0x101755d0, rat_num = 0x5412b0}, SF = {t = 8 '\b',
    flag = 0 '\0', s = 0 '\0', m = 0 '\0', SFVAL = 2.98456067e-029}, LF = {
    t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0',
    LFVAL = 4.175446029447999e-307}, cmp = {t = 8 '\b', flag = 0 '\0',
    s = 0 '\0', m = 0 '\0', cmp_real = 0x101755d0, cmp_imag = 0x5412b0}, ch
= {
    t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0', ch_code = 21968,
    ch_font = 23 '\027', ch_bits = 16 '\020'}, s = {t = 8 '\b', flag = 0
'\0',
    s = 0 '\0', m = 0 '\0', s_dbind = 0x101755d0,
    s_sfdef = 0x5412b0 <Cnil_body>, st_self = 0x52c3f3 "*LINK-ARRAY*",
    st_fillp = 12, s_gfdef = 0x0, s_plist = 0x5412b0, s_hpack = 0x10103fa4,
    s_stype = 2, s_mflag = 0}, p = {t = 8 '\b', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0', p_name = 0x101755d0, p_nicknames = 0x5412b0,
    p_shadowings = 0x52c3f3, p_uselist = 0xc, p_usedbylist = 0x0,
    p_internal = 0x5412b0, p_external = 0x10103fa4, p_internal_size = 2,
    p_external_size = 8, p_internal_fp = 0, p_external_fp = 5509808,
    p_link = 0x52c3ed}, c = {t = 8 '\b', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0', c_cdr = 0x101755d0, c_car = 0x5412b0}, ht = {t = 8 '\b',
    flag = 0 '\0', s = 0 '\0', m = 0 '\0', ht_self = 0x101755d0,
    ht_rhsize = 0x5412b0, ht_rhthresh = 0x52c3f3, ht_nent = 12, ht_size = 0,
---Type <return> to continue, or q <return> to quit---
    ht_test = 4784}, a = {t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0',
    a_displaced = 0x101755d0, a_rank = 4784, a_elttype = 84,
    a_self = 0x52c3f3, a_adjustable = 12, a_offset = 0, a_dim = 0,
    a_dims = 0x5412b0}, v = {t = 8 '\b', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0', v_displaced = 0x101755d0, v_hasfillp = 4784, v_elttype = 84,
    v_self = 0x52c3f3, v_fillp = 12, v_dim = 0, v_adjustable = 4784,
    v_offset = 84}, st = {t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0',
    st_displaced = 0x101755d0, st_hasfillp = 4784, st_adjustable = 84,
    st_self = 0x52c3f3 "*LINK-ARRAY*", st_fillp = 12, st_dim = 0}, ust = {
    t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0',
    ust_displaced = 0x101755d0, ust_hasfillp = 4784, ust_adjustable = 84,
    ust_self = 0x52c3f3 "*LINK-ARRAY*", ust_fillp = 12, ust_dim = 0}, bv = {
    t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0',
    bv_displaced = 0x101755d0, bv_hasfillp = 4784, bv_elttype = 84,
    bv_self = 0x52c3f3 "*LINK-ARRAY*", bv_fillp = 12, bv_dim = 0,
    bv_adjustable = 4784, bv_offset = 84}, str = {t = 8 '\b', flag = 0 '\0',
    s = 0 '\0', m = 0 '\0', str_def = 0x101755d0, str_self = 0x5412b0}, sm =
{
    t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0', sm_fp = 0x101755d0,
    sm_object0 = 0x5412b0, sm_object1 = 0x52c3f3, sm_int0 = 12, sm_int1 = 0,
    sm_buffer = 0x5412b0 "\b", sm_mode = -92 'n', sm_flags = 63 '?',
    sm_fd = 4112}, rnd = {t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0',
    rnd_value = 269964752}, rt = {t = 8 '\b', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0', rt_self = 0x101755d0}, pn = {t = 8 '\b', flag = 0 '\0',
---Type <return> to continue, or q <return> to quit---
    s = 0 '\0', m = 0 '\0', pn_host = 0x101755d0, pn_device = 0x5412b0,
    pn_directory = 0x52c3f3, pn_name = 0xc, pn_type = 0x0,
    pn_version = 0x5412b0}, cf = {t = 8 '\b', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0', cf_name = 0x101755d0, cf_self = 0x5412b0 <Cnil_body>,
    cf_data = 0x52c3f3}, cc = {t = 8 '\b', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0', cc_name = 0x101755d0, cc_self = 0x5412b0 <Cnil_body>,
    cc_env = 0x52c3f3, cc_data = 0xc, cc_envdim = 0, cc_turbo = 0x5412b0},
  cl = {t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0',
    cl_name = 0x101755d0, cl_self = 0x5412b0 <Cnil_body>, cl_data =
0x52c3f3,
    cl_argd = 12, cl_envdim = 0, cl_env = 0x5412b0}, sfn = {t = 8 '\b',
    flag = 0 '\0', s = 0 '\0', m = 0 '\0', sfn_name = 0x101755d0,
    sfn_self = 0x5412b0 <Cnil_body>, sfn_data = 0x52c3f3, sfn_argd = 12},
  vfn = {t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0',
    vfn_name = 0x101755d0, vfn_self = 0x5412b0 <Cnil_body>,
    vfn_data = 0x52c3f3, vfn_minargs = 12, vfn_maxargs = 0}, cfd = {
    t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0',
    cfd_start = 0x101755d0 "\r", cfd_size = 5509808, cfd_fillp = 5424115,
    cfd_self = 0xc}, spc = {t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0
'\0',
    spc_dummy = 269964752}, d = {t = 8 '\b', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0'}, fixa = {t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0',
    fixa_displaced = 0x101755d0, fixa_rank = 4784, fixa_elttype = 84,
    fixa_self = 0x52c3f3, fixa_adjustable = 12, fixa_offset = 0, fixa_dim =
0,
    fixa_dims = 0x5412b0}, sfa = {t = 8 '\b', flag = 0 '\0', s = 0 '\0',
---Type <return> to continue, or q <return> to quit---
    m = 0 '\0', sfa_displaced = 0x101755d0, sfa_rank = 4784, sfa_elttype =
84,
    sfa_self = 0x52c3f3, sfa_adjustable = 12, sfa_offset = 0, sfa_dim = 0,
    sfa_dims = 0x5412b0}, lfa = {t = 8 '\b', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0', lfa_displaced = 0x101755d0, lfa_rank = 4784, lfa_elttype =
84,
    lfa_self = 0x52c3f3, lfa_adjustable = 12, lfa_offset = 0, lfa_dim = 0,
    lfa_dims = 0x5412b0}}
(gdb) whatis *sLAlink_arrayA
type = union lispunion
(gdb) p link,sLAlink_arrayA->s.s_dbind
No symbol "link" in current context.
(gdb) p sLAlink_arrayA->s.s_dbind
$9 = 0x101755d0
(gdb) p *sLAlink_arrayA->s.s_dbind
$10 = {FIX = {t = 13 '\r', flag = 0 '\0', s = 0 '\0', m = 0 '\0',
    FIXVAL = 5509808}, big = {t = 13 '\r', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0', big_mpz_t = {_mp_alloc = 5509808, _mp_size = 65537,
      _mp_d = 0x101c88f0}}, rat = {t = 13 '\r', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0', rat_den = 0x5412b0, rat_num = 0x10001}, SF = {t = 13 '\r',
    flag = 0 '\0', s = 0 '\0', m = 0 '\0', SFVAL = 7.72088549e-039}, LF = {
    t = 13 '\r', flag = 0 '\0', s = 0 '\0', m = 0 '\0',
    LFVAL = 4.594940350634071e-231}, cmp = {t = 13 '\r', flag = 0 '\0',
    s = 0 '\0', m = 0 '\0', cmp_real = 0x5412b0, cmp_imag = 0x10001}, ch = {
    t = 13 '\r', flag = 0 '\0', s = 0 '\0', m = 0 '\0', ch_code = 4784,
    ch_font = 84 'T', ch_bits = 0 '\0'}, s = {t = 13 '\r', flag = 0 '\0',
    s = 0 '\0', m = 0 '\0', s_dbind = 0x5412b0, s_sfdef = 0x10001,
    st_self = 0x101c88f0 "_+S", st_fillp = 1600, s_gfdef = 0x800,
    s_plist = 0xd, s_hpack = 0x5412b0, s_stype = 0, s_mflag = 0}, p = {
    t = 13 '\r', flag = 0 '\0', s = 0 '\0', m = 0 '\0', p_name = 0x5412b0,
    p_nicknames = 0x10001, p_shadowings = 0x101c88f0, p_uselist = 0x640,
    p_usedbylist = 0x800, p_internal = 0xd, p_external = 0x5412b0,
    p_internal_size = 0, p_external_size = 270324716, p_internal_fp = 7,
    p_external_fp = 7, p_link = 0xd}, c = {t = 13 '\r', flag = 0 '\0',
    s = 0 '\0', m = 0 '\0', c_cdr = 0x5412b0, c_car = 0x10001}, ht = {
    t = 13 '\r', flag = 0 '\0', s = 0 '\0', m = 0 '\0', ht_self = 0x5412b0,
    ht_rhsize = 0x10001, ht_rhthresh = 0x101c88f0, ht_nent = 1600,
    ht_size = 2048, ht_test = 13}, a = {t = 13 '\r', flag = 0 '\0',
---Type <return> to continue, or q <return> to quit---
    s = 0 '\0', m = 0 '\0', a_displaced = 0x5412b0, a_rank = 1, a_elttype =
1,
    a_self = 0x101c88f0, a_adjustable = 1600, a_offset = 0, a_dim = 2048,
    a_dims = 0xd}, v = {t = 13 '\r', flag = 0 '\0', s = 0 '\0', m = 0 '\0',
    v_displaced = 0x5412b0, v_hasfillp = 1, v_elttype = 1,
    v_self = 0x101c88f0, v_fillp = 1600, v_dim = 2048, v_adjustable = 13,
    v_offset = 0}, st = {t = 13 '\r', flag = 0 '\0', s = 0 '\0', m = 0 '\0',
    st_displaced = 0x5412b0, st_hasfillp = 1, st_adjustable = 1,
    st_self = 0x101c88f0 "_+S", st_fillp = 1600, st_dim = 2048}, ust = {
    t = 13 '\r', flag = 0 '\0', s = 0 '\0', m = 0 '\0',
    ust_displaced = 0x5412b0, ust_hasfillp = 1, ust_adjustable = 1,
    ust_self = 0x101c88f0 "_+S", ust_fillp = 1600, ust_dim = 2048}, bv = {
    t = 13 '\r', flag = 0 '\0', s = 0 '\0', m = 0 '\0',
    bv_displaced = 0x5412b0, bv_hasfillp = 1, bv_elttype = 1,
    bv_self = 0x101c88f0 "_+S", bv_fillp = 1600, bv_dim = 2048,
    bv_adjustable = 13, bv_offset = 0}, str = {t = 13 '\r', flag = 0 '\0',
    s = 0 '\0', m = 0 '\0', str_def = 0x5412b0, str_self = 0x10001}, sm = {
    t = 13 '\r', flag = 0 '\0', s = 0 '\0', m = 0 '\0', sm_fp = 0x5412b0,
    sm_object0 = 0x10001, sm_object1 = 0x101c88f0, sm_int0 = 1600,
    sm_int1 = 2048, sm_buffer = 0xd <Address 0xd out of bounds>,
    sm_mode = -80 '|', sm_flags = 18 '\022', sm_fd = 84}, rnd = {t = 13
'\r',
    flag = 0 '\0', s = 0 '\0', m = 0 '\0', rnd_value = 5509808}, rt = {
    t = 13 '\r', flag = 0 '\0', s = 0 '\0', m = 0 '\0', rt_self = 0x5412b0},
  pn = {t = 13 '\r', flag = 0 '\0', s = 0 '\0', m = 0 '\0',
---Type <return> to continue, or q <return> to quit---
    pn_host = 0x5412b0, pn_device = 0x10001, pn_directory = 0x101c88f0,
    pn_name = 0x640, pn_type = 0x800, pn_version = 0xd}, cf = {t = 13 '\r',
    flag = 0 '\0', s = 0 '\0', m = 0 '\0', cf_name = 0x5412b0,
    cf_self = 0x10001, cf_data = 0x101c88f0}, cc = {t = 13 '\r',
    flag = 0 '\0', s = 0 '\0', m = 0 '\0', cc_name = 0x5412b0,
    cc_self = 0x10001, cc_env = 0x101c88f0, cc_data = 0x640, cc_envdim =
2048,
    cc_turbo = 0xd}, cl = {t = 13 '\r', flag = 0 '\0', s = 0 '\0', m = 0
'\0',
    cl_name = 0x5412b0, cl_self = 0x10001, cl_data = 0x101c88f0,
    cl_argd = 1600, cl_envdim = 2048, cl_env = 0xd}, sfn = {t = 13 '\r',
    flag = 0 '\0', s = 0 '\0', m = 0 '\0', sfn_name = 0x5412b0,
    sfn_self = 0x10001, sfn_data = 0x101c88f0, sfn_argd = 1600}, vfn = {
    t = 13 '\r', flag = 0 '\0', s = 0 '\0', m = 0 '\0', vfn_name = 0x5412b0,
    vfn_self = 0x10001, vfn_data = 0x101c88f0, vfn_minargs = 1600,
    vfn_maxargs = 0}, cfd = {t = 13 '\r', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0', cfd_start = 0x5412b0 "\b", cfd_size = 65537,
    cfd_fillp = 270305520, cfd_self = 0x640}, spc = {t = 13 '\r',
    flag = 0 '\0', s = 0 '\0', m = 0 '\0', spc_dummy = 5509808}, d = {
    t = 13 '\r', flag = 0 '\0', s = 0 '\0', m = 0 '\0'}, fixa = {t = 13
'\r',
    flag = 0 '\0', s = 0 '\0', m = 0 '\0', fixa_displaced = 0x5412b0,
    fixa_rank = 1, fixa_elttype = 1, fixa_self = 0x101c88f0,
    fixa_adjustable = 1600, fixa_offset = 0, fixa_dim = 2048,
    fixa_dims = 0xd}, sfa = {t = 13 '\r', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0', sfa_displaced = 0x5412b0, sfa_rank = 1, sfa_elttype = 1,
---Type <return> to continue, or q <return> to quit---
    sfa_self = 0x101c88f0, sfa_adjustable = 1600, sfa_offset = 0,
    sfa_dim = 2048, sfa_dims = 0xd}, lfa = {t = 13 '\r', flag = 0 '\0',
    s = 0 '\0', m = 0 '\0', lfa_displaced = 0x5412b0, lfa_rank = 1,
    lfa_elttype = 1, lfa_self = 0x101c88f0, lfa_adjustable = 1600,
    lfa_offset = 0, lfa_dim = 2048, lfa_dims = 0xd}}
(gdb) whatis *sLAlink_arrayA->s.s_dbind
type = union lispunion
(gdb)


========ALSO A LOOK AT THE ARGS TO call_or_link===========================

#12 0x004314ac in call_or_link (sym=0x1022c3a8, link=0x1031d57c)
    at funlink.c:71
71                  ( *(void (*)()) (fun->cf.cf_self)) ();
(gdb) p sym
$12 = 0x1022c3a8
(gdb) p *sym
$13 = {FIX = {t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0', FIXVAL =
0},
  big = {t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0', big_mpz_t = {
      _mp_alloc = 0, _mp_size = 5509808, _mp_d = 0x103ce800}}, rat = {
    t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0', rat_den = 0x0,
    rat_num = 0x5412b0}, SF = {t = 8 '\b', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0', SFVAL = 0}, LF = {t = 8 '\b', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0', LFVAL = 1.8618945674725114e-230}, cmp = {t = 8 '\b',
    flag = 0 '\0', s = 0 '\0', m = 0 '\0', cmp_real = 0x0,
    cmp_imag = 0x5412b0}, ch = {t = 8 '\b', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0', ch_code = 0, ch_font = 0 '\0', ch_bits = 0 '\0'}, s = {
    t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0', s_dbind = 0x0,
    s_sfdef = 0x5412b0 <Cnil_body>,
    st_self = 0x103ce800
"GET-DFUN-CONSTRUCTORWRAPPER1WRAPPER0ACCESSOR-TYPE",
    st_fillp = 20, s_gfdef = 0x101d4150, s_plist = 0x1020b030,
    s_hpack = 0x10103d00, s_stype = 0, s_mflag = 0}, p = {t = 8 '\b',
    flag = 0 '\0', s = 0 '\0', m = 0 '\0', p_name = 0x0,
    p_nicknames = 0x5412b0, p_shadowings = 0x103ce800, p_uselist = 0x14,
    p_usedbylist = 0x101d4150, p_internal = 0x1020b030,
    p_external = 0x10103d00, p_internal_size = 0, p_external_size = 8,
    p_internal_fp = 0, p_external_fp = 5509808, p_link = 0x103d9cc0}, c = {
    t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0', c_cdr = 0x0,
    c_car = 0x5412b0}, ht = {t = 8 '\b', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0', ht_self = 0x0, ht_rhsize = 0x5412b0, ht_rhthresh =
0x103ce800,
---Type <return> to continue, or q <return> to quit---
    ht_nent = 20, ht_size = 270352720, ht_test = -20432}, a = {t = 8 '\b',
    flag = 0 '\0', s = 0 '\0', m = 0 '\0', a_displaced = 0x0, a_rank = 4784,
    a_elttype = 84, a_self = 0x103ce800, a_adjustable = 20, a_offset = 0,
    a_dim = 270352720, a_dims = 0x1020b030}, v = {t = 8 '\b', flag = 0 '\0',
    s = 0 '\0', m = 0 '\0', v_displaced = 0x0, v_hasfillp = 4784,
    v_elttype = 84, v_self = 0x103ce800, v_fillp = 20, v_dim = 270352720,
    v_adjustable = -20432, v_offset = 4128}, st = {t = 8 '\b', flag = 0
'\0',
    s = 0 '\0', m = 0 '\0', st_displaced = 0x0, st_hasfillp = 4784,
    st_adjustable = 84,
    st_self = 0x103ce800
"GET-DFUN-CONSTRUCTORWRAPPER1WRAPPER0ACCESSOR-TYPE",
    st_fillp = 20, st_dim = 270352720}, ust = {t = 8 '\b', flag = 0 '\0',
    s = 0 '\0', m = 0 '\0', ust_displaced = 0x0, ust_hasfillp = 4784,
    ust_adjustable = 84,
    ust_self = 0x103ce800
"GET-DFUN-CONSTRUCTORWRAPPER1WRAPPER0ACCESSOR-TYPE",
    ust_fillp = 20, ust_dim = 270352720}, bv = {t = 8 '\b', flag = 0 '\0',
    s = 0 '\0', m = 0 '\0', bv_displaced = 0x0, bv_hasfillp = 4784,
    bv_elttype = 84,
    bv_self = 0x103ce800
"GET-DFUN-CONSTRUCTORWRAPPER1WRAPPER0ACCESSOR-TYPE",
    bv_fillp = 20, bv_dim = 270352720, bv_adjustable = -20432,
    bv_offset = 4128}, str = {t = 8 '\b', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0', str_def = 0x0, str_self = 0x5412b0}, sm = {t = 8 '\b',
    flag = 0 '\0', s = 0 '\0', m = 0 '\0', sm_fp = 0x0, sm_object0 =
0x5412b0,
    sm_object1 = 0x103ce800, sm_int0 = 20, sm_int1 = 270352720,
---Type <return> to continue, or q <return> to quit---
    sm_buffer = 0x1020b030 "", sm_mode = 0 '\0', sm_flags = 61 '=',
    sm_fd = 4112}, rnd = {t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0',
    rnd_value = 0}, rt = {t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0',
    rt_self = 0x0}, pn = {t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0',
    pn_host = 0x0, pn_device = 0x5412b0, pn_directory = 0x103ce800,
    pn_name = 0x14, pn_type = 0x101d4150, pn_version = 0x1020b030}, cf = {
    t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0', cf_name = 0x0,
    cf_self = 0x5412b0 <Cnil_body>, cf_data = 0x103ce800}, cc = {t = 8 '\b',
    flag = 0 '\0', s = 0 '\0', m = 0 '\0', cc_name = 0x0,
    cc_self = 0x5412b0 <Cnil_body>, cc_env = 0x103ce800, cc_data = 0x14,
    cc_envdim = 270352720, cc_turbo = 0x1020b030}, cl = {t = 8 '\b',
    flag = 0 '\0', s = 0 '\0', m = 0 '\0', cl_name = 0x0,
    cl_self = 0x5412b0 <Cnil_body>, cl_data = 0x103ce800, cl_argd = 20,
    cl_envdim = 270352720, cl_env = 0x1020b030}, sfn = {t = 8 '\b',
    flag = 0 '\0', s = 0 '\0', m = 0 '\0', sfn_name = 0x0,
    sfn_self = 0x5412b0 <Cnil_body>, sfn_data = 0x103ce800, sfn_argd = 20},
  vfn = {t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0', vfn_name = 0x0,
    vfn_self = 0x5412b0 <Cnil_body>, vfn_data = 0x103ce800, vfn_minargs =
20,
    vfn_maxargs = 0}, cfd = {t = 8 '\b', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0', cfd_start = 0x0, cfd_size = 5509808, cfd_fillp = 272427008,
    cfd_self = 0x14}, spc = {t = 8 '\b', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0', spc_dummy = 0}, d = {t = 8 '\b', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0'}, fixa = {t = 8 '\b', flag = 0 '\0', s = 0 '\0', m = 0 '\0',
---Type <return> to continue, or q <return> to quit---
    fixa_displaced = 0x0, fixa_rank = 4784, fixa_elttype = 84,
    fixa_self = 0x103ce800, fixa_adjustable = 20, fixa_offset = 0,
    fixa_dim = 270352720, fixa_dims = 0x1020b030}, sfa = {t = 8 '\b',
    flag = 0 '\0', s = 0 '\0', m = 0 '\0', sfa_displaced = 0x0,
    sfa_rank = 4784, sfa_elttype = 84, sfa_self = 0x103ce800,
    sfa_adjustable = 20, sfa_offset = 0, sfa_dim = 270352720,
    sfa_dims = 0x1020b030}, lfa = {t = 8 '\b', flag = 0 '\0', s = 0 '\0',
    m = 0 '\0', lfa_displaced = 0x0, lfa_rank = 4784, lfa_elttype = 84,
    lfa_self = 0x103ce800, lfa_adjustable = 20, lfa_offset = 0,
    lfa_dim = 270352720, lfa_dims = 0x1020b030}}
(gdb)
(gdb) p *link
$14 = (void *) 0x1030c130
(gdb) p link
$15 = (void **) 0x1031d57c
(gdb) p **link
Attempt to dereference a generic pointer.
(gdb)






reply via email to

[Prev in Thread] Current Thread [Next in Thread]