I am using CFFI in SBCL on Debian GNU/Linux etch (amd64). I have had a great deal of success interfacing to the GNU scientific library (GSL). Usually, when I get a "memory fault" I quickly can see my mistake in defining the interface, and once fixed, the error goes away.
I can't figure this one out however. The interface is: gsl_odeiv_step * gsl_odeiv_step_alloc (const gsl_odeiv_step_type * T, size_t dim) I attempt to call this with a predefined pointer, (describe *step-rk8pd*) #.(SB-SYS:INT-SAP #X2B31DAEB0328) is a SB-SYS:SYSTEM-AREA-POINTER. and I get a memory fault. What is the best way to debug this?
Thanks for any tips.
Liam
(FOREIGN-FUNCALL "gsl_odeiv_step_alloc" :POINTER *step-rk8pd* :SIZE 2 :POINTER)
memory fault [Condition of type SB-KERNEL::MEMORY-FAULT-ERROR]
Restarts: 0: [ABORT-REQUEST] Abort handling SLIME request. 1: [TERMINATE-THREAD] Terminate this thread (#<THREAD "repl-thread" {100385EF71}>)
Backtrace: 0: (SB-KERNEL::MEMORY-FAULT-ERROR) 1: ("foreign function: call_into_lisp") 2: ("foreign function: post_signal_tramp") 3: ("foreign function: gsl_odeiv_step_alloc") 4: (SB-INT:EVAL-IN-LEXENV (FOREIGN-FUNCALL "gsl_odeiv_step_alloc" :POINTER *STEP-RK8PD* :SIZE 2 :POINTER) #<NULL-LEXENV>) 5: (SWANK::EVAL-REGION "(FOREIGN-FUNCALL "gsl_odeiv_step_alloc" :POINTER *step-rk8pd* :SIZE 2 :POINTER) " T)