[cmucl-help] 19c alpha [Was Re: CMUCL 18c building on tru64 5.1]

Carl Shapiro carl.shapiro at gmail.com
Tue Sep 9 07:07:13 UTC 2014


On Mon, Sep 8, 2014 at 11:50 PM, Fausto Saporito <fausto.saporito at gmail.com>
wrote:

> > 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


Here is some of what my lisp.nm says for 18a on x86

0804e5a0 T call_into_c
...
0804a940 T debug_print

And here is what the disassembly of %initial-function on 18a looks like

* (disassemble 'COMMON-LISP::%INITIAL-FUNCTION)

550E6F88:       .ENTRY COMMON-LISP::%INITIAL-FUNCTION() ; (FUNCTION NIL
                                                           (VALUES ..))
    6FA0:       POP   DWORD PTR [EBP-8]
    6FA3:       LEA   ESP, [EBP-96]

    6FA6:       TEST  ECX, ECX
    6FA8:       JNE   L0
    6FAE:       MOV   EAX, [#x550E6E7C]      ; No-arg-parsing entry point
    6FB4:       PUSH  EAX
    6FB5:       LEA   EAX, [#x804A940]
    6FBB:       CALL  #x804E5A0

As you can see, debug_print is called indirectly through call_into_c.  If
either of these functions could not be found in your lisp.nm or, if there
was a parsing error, you would see a lot of zeros.

What kind of warnings, if any, do you get when you build a kernel.core
regarding foreign symbols?  Anything like "Ignoring malformed line..." or
"Undefined foreign symbol: ..."?  You can see a list of these things around
the definition of load-foreign-symbol-table in
compiler/generic/new-genesis.lisp.

Also, you can test my theory by providing a better default than 0 for
missing undefined symbols like so

(defun lookup-foreign-symbol (name)
  (multiple-value-bind
      (value found)
      (gethash name *cold-foreign-symbol-table* #xDEADDEAD)
    (unless found
      (warn "Undefined foreign symbol: ~S" name))
    value))


More information about the cmucl-help mailing list