[cffi-devel] Fwd: Bus error ... ?! Help, please ... Additional info
Frank Goenninger
frgo at me.com
Fri May 8 17:19:40 UTC 2009
In addition to the GDB session below I tried some more analysis on the
Lisp side:
CL-USER> (foreign-symbol-pointer "glGetError")
2510410464
CL-USER> (foreign-funcall-pointer (foreign-symbol-pointer
"glGetError") () :void :unsigned-int)
Received signal number 10 (Bus error)
...
I admit I am out of clues as to what I should analyse further ...
Frank
Anfang der weitergeleiteten E-Mail:
> Von: Frank Goenninger <frgo at me.com>
> Datum: 8. Mai 2009 19:08:23 MESZ
> An: cffi-devel at common-lisp.net
> Kopie: leslie.polzer at gmx.net
> Betreff: Re: [cffi-devel] Bus error ... ?! Help, please ...
>
> Am 08.05.2009 um 15:43 schrieb Leslie P. Polzer:
>
>>
>> Frank Goenninger wrote:
>>
>>> Oh, btw, that happens no matter what function from OpenGL I try to
>>> call... So, something very fundamental must be wrong here. I just
>>> can't see what ... Please help!
>>
>> Have you asked gdb for help, too?
>>
>> Leslie
>
>
> Hadn't until you asked. But now I have. I started AllegroCL with
>
> $ alisp
>
> and then loaded my system via ASDF.
>
> CL-USER > (asdf 'cello-nx)
>
> ... messages as expected ...
>
> CL-USER >
>
> At this point I started gdb and attached to the process. After
> enabling out logging I continued the alisp process.
>
> CL-USER > (cello-nx::gl-get-version)
>
> which caused the following output:
>
> Program received signal EXC_BAD_ACCESS, Could not access memory.
> Reason: KERN_PROTECTION_FAILURE at address: 0x00000000
>
> I then asked gdb to print the backtrace:
>
> 0x95a1d2ec in glGetError ()
> #0 0x95a1d2ec in glGetError ()
> #1 0x00243b68 in ff_funcall () at qrff.s:253
> #2 0x002439b2 in ff_apply () at qrff.s:97
> #3 0x032e100b in ?? ()
> #4 0x10a2fc05 in ?? ()
> #5 0x1088f3e5 in ?? ()
> #6 0x1066add8 in ?? ()
> #7 0x0310dab8 in ?? ()
> #8 0x0331b281 in ?? ()
> #9 0x03310f1d in ?? ()
> #10 0x03320a17 in ?? ()
> #11 0x0310e680 in ?? ()
> #12 0x00259097 in apply () at qruntime.s:1901
> #13 0x0331e05e in ?? ()
> #14 0x03331c6f in ?? ()
> #15 0x00259097 in apply () at qruntime.s:1901
> #16 0x03016a08 in ?? ()
> #17 0x0332e9a2 in ?? ()
> #18 0x03016f9c in ?? ()
> #19 0x0310e8c7 in ?? ()
> #20 0x002544be in first_lisp_thread () at qrstorag.s:3081
> #21 0x002542aa in _start_reborn_lisp () at qrstorag.s:2889
> #22 0x00233f65 in startup_lisp () at c/startup.c:1290
> #23 0x00253de7 in cont_setstack () at qrstorag.s:2408
> #24 0x00253c7b in _first_lisp_thread_init () at qrstorag.s:2288
>
> The two functions involved here are:
> (point where the bus error occurs is marked <<<<<<<<<<)
>
> (defun! gl-check-error (&optional (id :anonymous) announce-success)
> (if (null (find id *gl-list-of-ids-excluded-from-error-checking*))
> (if (and (boundp '*gl-begun*) *gl-begun*)
> (progn
> (logmsg :DEBUG *this-file* *this-module* 3
> "Not checking OpenGL errors inside glBegin/glEnd
> at ~S." id))
> (let ((e (%glGetError))) ;; ffi glGetError <<<<<<<<<<<
> (if (= e 0)
> (when announce-success
> (logmsg :DEBUG *this-file* *this-module* 4
> "No OpenGL error found at ~S" id))
> (progn
> (if (boundp '*gl-stop*)
> (logmsg :ERROR *this-file* *this-module* 5
> "*gl-stop* bound at ~S." id))
> (setf *gl-stop* t)
> (let* ((err-text (foreign-string-to-lisp
> (%gluErrorString e)))
> (msg (format nil "OpenGL error ~d (\"~A\")
> at ~S" e err-text id)))
> (logmsg :ERROR *this-file* *this-module* 6 msg)
> (when *gl-break-on-stop*
> (break msg)))))))))
>
> (defun gl-get-version ()
> (gl-check-error t)
> (let ((version-string (%glGetString GL_VERSION)))
> (break)
> (foreign-string-to-lisp version-string)))
>
> Ok, so back to my assessment: Something fundamental not working here.
>
> I do get the same error happening when I do not call the cl-check-
> error function but go straight to call %glGetString (which calls
> glGetString ffi function).
>
> It just seems as if the OpenGL lib is not really loaded and the
> function address of the foreign functions are null pointers...
>
> Any further suggestions of what I should analyze in gdb or elsewhere?
> Educated guesses on the causes? Thanks!!!
>
> Ah, you know, it worked last time (half a year ago, on a different OS
> patch level of OS X, with fewer patches loaded for AllegroCL and older
> version of CFFI).
>
> Cheers
> Frank
>
> --
> Frank Goenninger
>
> Cell: +49 175 4321058
> E-Mail: frgo at me.com
>
>
>
>
>
>
> _______________________________________________
> cffi-devel mailing list
> cffi-devel at common-lisp.net
> http://common-lisp.net/cgi-bin/mailman/listinfo/cffi-devel
--
Frank Goenninger
Cell: +49 175 4321058
E-Mail: frgo at me.com
More information about the cffi-devel
mailing list