2014-09-09 9:07 GMT+02:00 Carl Shapiro <[email protected]>: > > On Mon, Sep 8, 2014 at 11:50 PM, Fausto Saporito <[email protected]> > 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
I have also call_into_c 0x0000001201b550 T call_into_c > 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. no warnings at all But, in compile-compiler.log, at the end of the file, (in the alpha-cross directory) I have these warnings: ; Warning: These functions are undefined: ; LISP::COLD-REGISTER-FOREIGN-LINKAGE ALPHA:FIXUP-CODE-OBJECT ALPHA:SANCTIFY-F OR-EXECUTION ; In compile-compiler.log (in the alpha-target directory) I have this warning: ; Warning: This function is undefined: ; LISP::COLD-REGISTER-FOREIGN-LINKAGE ; but the first of this warning is very strange... cold-register-foreign-linkage should be use only if I have linkage-table as feature, if I understood well the code but I removed that feature... ... searching in the compile-lisp.log (alpha-target directory), I found two errors... but those didn't prevent the creation of kernel.core! ; Comment: $Header: /project/cmucl/cvsroot/src/code/unix.lisp,v 1.107 2005/10/10 18:46:39 rtoy Exp $ ; ; Warning: Redefining SWBLK-T to be: ; (SIGNED 64), ; was ; (SIGNED 32) ; ; ; Warning: Redefining SIZE-T to be: ; (UNSIGNED 64), ; was ; (UNSIGNED 32) ; ; ; Error: (during macroexpansion) ; Error while parsing arguments to DEFMACRO DEF-ALIEN-TYPE: ; Invalid number of elements in: ; (TIME-T LONG UNSIGNED-INT) ; to satisfy lambda-list: .. ; ; ; Error: (during macroexpansion) ; Error while parsing arguments to DEFMACRO DEF-ALIEN-TYPE: ; Invalid number of elements in: ; (DEV-T INT UNSIGNED-LONG) ; to satisfy lambda-list: .. ; ; Compiling DEFTYPE FILE-OFFSET: ; Compiling Top-Level Form: and at the end of the log file I have: ; Warning: 35235 more uses of undefined type STREAM:FILE-SIMPLE-STREAM. ; ; ; Warning: These functions are undefined: ; KERNEL:%SET-SYMBOL-HASH ALPHA::COMPATIBLE-FUNCTION-TYPES-P ; ; ; Warning: This type is undefined: ; STREAM:FILE-SIMPLE-STREAM > > 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)) > my definition of such function in new-genesis.lisp is quite different. I have the gethash line with nil at the end. Can I modify only that value to "DEAD"? :D _______________________________________________ cmucl-help mailing list [email protected] http://lists.zs64.net/mailman/listinfo/cmucl-help
