[cmucl-help] 19c alpha [Was Re: CMUCL 18c building on tru64 5.1]
Fausto Saporito
fausto.saporito at gmail.com
Tue Sep 9 07:43:53 UTC 2014
2014-09-09 9:07 GMT+02:00 Carl Shapiro <carl.shapiro at gmail.com>:
>
> 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