Peter Hildebrandt escribió:
Leandro,
welcome aboard.
Thanks!
Sorry for getting back late. I've been doing some debugging, and this is
what I found so far:
The error is raised in SBCL's %make-alien function, file
target-alienval.lisp. More precisely:
(defun %make-alien (bits)
(declare (type index bits))
(alien-funcall (extern-alien "malloc"
(function system-area-pointer unsigned))
(ash (the index (+ bits 7)) -3))) <<<<<<<<here
This is the backtrace of the last debugging step before the error occurs:
Evaluating call:
(ASH (THE SB-INT:INDEX (+ SB-SYS:BITS 7)) -3)
With unknown arguments
[Condition of type STEP-FORM-CONDITION]
Restarts:
0: [STEP-CONTINUE] Resume normal execution
1: [STEP-OUT] Resume stepping after returning from this function
2: [STEP-NEXT] Step over call
3: [STEP-INTO] Step into call
4: [ABORT] Return to SLIME's top level.
5: [TERMINATE-THREAD] Terminate this thread (#<THREAD "repl-thread"
{10044B06D1}>)
Backtrace:
0: (CFFI:FOREIGN-ALLOC :INT)
1: (GTK-FFI:GTK-LIST-STORE-NEW (:STRING :STRING))
2: ((LAMBDA
(CELLS::SLOT-C
&AUX (CELLS:SELF (CELLS::C-MODEL CELLS::SLOT-C))
(CELLS:.CACHE (CELLS::C-VALUE CELLS::SLOT-C))))
[?#:<obs>=[0]ID/LIST-STORE])
3: ((FLET CELLS::BODY))
4: (CELLS::C-CALCULATE-AND-SET [?#:<obs>=[0]ID/LIST-STORE])
5: ((SB-PCL::FAST-METHOD CELLS::C-AWAKEN-CELL (CELLS::C-DEPENDENT))
#<unused argument>
#<unused argument>
[?#:<obs>=[0]ID/LIST-STORE])
6: ((LAMBDA ()))
7: (CELLS::CALL-WITH-INTEGRITY
#<unused argument>
NIL
#<CLOSURE (LAMBDA #) {10042F5619}>)
8: (CELLS:C-AWAKEN [?#:<obs>=[0]ID/LIST-STORE])
9: ((SB-PCL::FAST-METHOD CELLS:MD-AWAKEN (CELLS::MODEL-OBJECT))
(#(8) . #())
#<unused argument>
LIST-STORE)
10: (CELLS:TO-BE LIST-STORE)
11: ((SB-PCL::FAST-METHOD CELLS::C-OUTPUT-SLOT-NAME PROGN
((EQL 'CELLS-GTK:TREE-MODEL) CELLS-GTK:TREE-VIEW T T T))
#<unused argument>
#<unused argument>
#<unused argument>
LISTBOX
LIST-STORE
#<unused argument>
#<unused argument>)
12: ((LAMBDA
(SB-PCL::.PV-CELL. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0.
SB-PCL::.ARG1. SB-PCL::.ARG2. SB-PCL::.ARG3. SB-PCL::.ARG4.))
#<unused argument>
#<unused argument>
CELLS-GTK:TREE-MODEL
LISTBOX
LIST-STORE
NIL
T)
13: ((LAMBDA
(SB-PCL::.PV-CELL. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0.
SB-PCL::.ARG1. SB-PCL::.ARG2. SB-PCL::.ARG3. SB-PCL::.ARG4.))
#<unused argument>
#<unused argument>
#<unavailable argument>
#<unavailable argument>
#<unavailable argument>
#<unavailable argument>
#<unavailable argument>)
14: ((LAMBDA ()))
15: (CELLS::FINISH-BUSINESS)
16: (CELLS::CALL-WITH-INTEGRITY
#<unused argument>
NIL
#<CLOSURE (LAMBDA #) {1003B81DC9}>)
17: (CELLS::MD-SLOT-VALUE LISTBOX CELLS-GTK:TREE-MODEL)
18: ((SB-PCL::FAST-METHOD CELLS-GTK:TREE-MODEL (CELLS-GTK:TREE-VIEW))
#<unused argument>
#<unused argument>
LISTBOX)
19: (CELLS-GTK:MK-LISTBOX)
20: ((LAMBDA ()))
21: ((SB-PCL::FAST-METHOD SB-PCL::DEFAULT-INITARGS
(SB-PCL::SLOT-CLASS T T))
#<unavailable argument>
#<unavailable argument>
#<unavailable argument>
NIL
((:TAB-LABELS (LIST "Listbox" "Treebox" "Cells-Tree-View") #)
(:KIDS (LIST #) #) (:DEF-GTK-CLASS-NAME 'CELLS-GTK:NOTEBOOK #)
(:CURRENT-PAGE (CELLS:C-IN NIL) #) (:SHOW-TABS (CELLS:C-IN T) #)
(:ON-DELETE-EVENT (CELLS:C-IN #'#) #) (:MD-NAME NIL #) ..))
22: ((SB-PCL::FAST-METHOD MAKE-INSTANCE (CLASS))
#<unavailable argument>
#<unavailable argument>
#<STANDARD-CLASS TEST-GTK::TEST-TREE-VIEW>)
23: ((LAMBDA ()))
24: ((SB-PCL::FAST-METHOD SB-PCL::DEFAULT-INITARGS
(SB-PCL::SLOT-CLASS T T))
#<unavailable argument>
#<unavailable argument>
#<unavailable argument>
(:VISIBLE [i0:=[0]ANONCELL/ANONMD] :TERMINATE-ON-CLOSE T)
((:TITLE "GTK Testing" #)
(:ICON (NAMESTRING TEST-GTK::*SMALL-IMAGE*) #)
(:STOCK-ICONS (LIST #) #) (:POSITION :CENTER #)
(:SPLASH-SCREEN-IMAGE (NAMESTRING TEST-GTK::*SPLASH-IMAGE*) #) ..))
25: ((SB-PCL::FAST-METHOD MAKE-INSTANCE (CLASS))
#<unavailable argument>
#<unavailable argument>
#<STANDARD-CLASS TEST-GTK::TEST-GTK>)
26: (CELLS-GTK::SHOW-WIN TEST-GTK::TEST-GTK)
27: (CELLS-GTK:START-APP TEST-GTK::TEST-GTK)
28: (TEST-GTK:GTK-DEMO NIL)
29: (SB-INT:SIMPLE-EVAL-IN-LEXENV (TEST-GTK:GTK-DEMO) #<NULL-LEXENV>)
30: (SWANK::EVAL-REGION
"(test-gtk::gtk-demo)
"
T)
31: ((LAMBDA ()))
32: ((LAMBDA (SWANK-BACKEND::FN)) #<CLOSURE (LAMBDA #) {10043AE999}>)
33: (SWANK::CALL-WITH-BUFFER-SYNTAX #<CLOSURE (LAMBDA #) {10043AE999}>)
34: (SWANK:LISTENER-EVAL
"(test-gtk::gtk-demo)
")
35: (SB-INT:SIMPLE-EVAL-IN-LEXENV
(SWANK:LISTENER-EVAL "(test-gtk::gtk-demo)
")
#<NULL-LEXENV>)
36: ((LAMBDA ()))
37: ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN))
#<FUNCTION SWANK:SWANK-DEBUGGER-HOOK>
#<CLOSURE (LAMBDA #) {10043AE6A9}>)
38: ((LAMBDA ()))
39: ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN))
#<FUNCTION SWANK:SWANK-DEBUGGER-HOOK>
#<FUNCTION (LAMBDA #) {100574A119}>)
40: (SWANK::CALL-WITH-REDIRECTED-IO
#<SWANK::CONNECTION {10032725A1}>
#<CLOSURE (LAMBDA #) {10043AE549}>)
41: (SWANK::CALL-WITH-CONNECTION
#<SWANK::CONNECTION {10032725A1}>
#<FUNCTION (LAMBDA #) {100574A119}>)
42: (SWANK::HANDLE-REQUEST #<SWANK::CONNECTION {10032725A1}>)
43: (SWANK::REPL-LOOP #<SWANK::CONNECTION {10032725A1}>)
44: (SWANK::REPL-LOOP #<SWANK::CONNECTION {10032725A1}>)
45: (SWANK::CALL-WITH-BINDINGS NIL #<CLOSURE (LAMBDA #) {100453C129}>)
46: ((LAMBDA ()))
47: ("foreign function: #x41D7B2")
48: ("foreign function: #x415971")
Next step, it hangs. It seems that the problem originates in the call to
(cells:md-slot-value list-store cells-gtk:new-args) only, calling the
function with other parameters succeeds.
I don't know enough about cffi or sbcl internals to determine if it is a
malformed call from cffi or a bug in sbcl itself.
If you need me to perform any test you can think of, I'll be pleased to
do so. Thanks for your help, Peter.
Leandro
_______________________________________________
cells-gtk-devel site list
[email protected]
http://common-lisp.net/mailman/listinfo/cells-gtk-devel