[mcclim-devel] Debugger, ESA, mcclim-freetype
Christophe Rhodes
csr21 at cam.ac.uk
Fri May 26 05:58:58 EDT 2006
Christophe Rhodes <csr21 at cam.ac.uk> writes:
> I am not sure whether this is specific to SBCL; nor am I sure whether
> it is specific to threaded lisps; I haven't tried it with a
> non-threaded system. The event queue process has a backtrace that
> looks like
The good (?) news is that this also happens in a non-threaded system;
that's not really good news, but it does mean that some attempt at
understanding this can be made without the added extra confusion of
race conditions and threads.
I attach a backtrace. Com-error is a command I defined at the M-:
climacs "repl" and bound to C-! as follows
(climacs-gui::define-climacs-command com-error () (error "foo"))
(esa:set-key 'com-error 'clim:global-command-table '((#\! :control)))
(esa:set-key 'com-error 'clim:global-command-table '((#\! :control :shift)))
I /think/ I have seen this symptom once before, and it had something
to do with CLX not being re-entrant: something somewhere was
attempting to call a protocol request in the dynamic scope of another
one. I can't remember the details: neither how I debugged it nor what
I did to fix it :-(
-------------- next part --------------
0: (XLIB::X-CERROR "Ignore" XLIB:LENGTH-ERROR :DISPLAY #<XLIB:DISPLAY :0 (The X.Org Foundation R60802000)> :ERROR-KEY XLIB:LENGTH-ERROR :ASYNCHRONOUS T :CURRENT-SEQUENCE 10916 :MAJOR 154 :MINOR 25 :SEQUENCE 10745)
1: (XLIB:DEFAULT-ERROR-HANDLER #<XLIB:DISPLAY :0 (The X.Org Foundation R60802000)> XLIB:LENGTH-ERROR :ASYNCHRONOUS T :CURRENT-SEQUENCE 10916 :MAJOR 154 :MINOR 25 :SEQUENCE 10745)
2: (XLIB::REPORT-ERROR #<XLIB:DISPLAY :0 (The X.Org Foundation R60802000)> 16 XLIB:LENGTH-ERROR :ASYNCHRONOUS T :CURRENT-SEQUENCE 10916 :MAJOR 154 :MINOR 25 :SEQUENCE 10745)
3: (XLIB::READ-ERROR-INPUT #<XLIB:DISPLAY :0 (The X.Org Foundation R60802000)> 10745 #S(XLIB::REPLY-BUFFER :SIZE 32 :IBUF8 #(0 16 249 41 54 0 192 3 25 0 154 0 ...) :NEXT #S(XLIB::REPLY-BUFFER :SIZE 32 :IBUF8 #(3 10 255 40 81 44 195 73 96 0 0 0 ...) :NEXT #S(XLIB::REPLY-BUFFER :SIZE 32 :IBUF8 #(22 0 247 40 54 0 192 3 54 0 192 3 ...) :NEXT #S(XLIB::REPLY-BUFFER :SIZE 32 :IBUF8 #(22 0 246 40 54 0 192 3 54 0 192 3 ...) :NEXT #S(XLIB::REPLY-BUFFER :SIZE 32 :IBUF8 # :NEXT # :DATA-SIZE 32) :DATA-SIZE 32) :DATA-SIZE 32) :DATA-SIZE 32) :DATA-SIZE 32) #<SB-THREAD:THREAD "initial thread" {100544B131}>)
4: (XLIB::READ-INPUT #<XLIB:DISPLAY :0 (The X.Org Foundation R60802000)> NIL NIL #<FUNCTION (LAMBDA (XLIB::PENDING-COMMAND)) {100265F879}> #S(XLIB::PENDING-COMMAND :SEQUENCE 10916 :REPLY-BUFFER NIL :PROCESS #<SB-THREAD:THREAD "initial thread" {100544B131}> :NEXT NIL))
5: (XLIB::READ-INPUT #<XLIB:DISPLAY :0 (The X.Org Foundation R60802000)> NIL NIL #<FUNCTION (LAMBDA (XLIB::PENDING-COMMAND)) {100265F879}> #S(XLIB::PENDING-COMMAND :SEQUENCE 10916 :REPLY-BUFFER NIL :PROCESS #<SB-THREAD:THREAD "initial thread" {100544B131}> :NEXT NIL))
6: (XLIB::READ-INPUT #<XLIB:DISPLAY :0 (The X.Org Foundation R60802000)> NIL NIL #<FUNCTION (LAMBDA (XLIB::PENDING-COMMAND)) {100265F879}>)
7: (XLIB::READ-REPLY #<unavailable argument> #<unavailable argument>)
8: (XLIB:TRANSLATE-COORDINATES #<XLIB:WINDOW :0 3C0002F> 0 0 #<XLIB:WINDOW :0 60>)
9: (CLIM-CLX::EVENT-HANDLER :DISPLAY #<unused argument> :WINDOW #<XLIB:WINDOW :0 3C0002F> :EVENT-KEY :CONFIGURE-NOTIFY :CODE NIL :STATE NIL :MODE NIL :TIME NIL :TYPE NIL :WIDTH 800 :HEIGHT 600 :X 5 :Y 23 :ROOT-X NIL :ROOT-Y NIL :DATA NIL :OVERRIDE-REDIRECT-P NIL :SEND-EVENT-P NIL :HINT-P NIL :TARGET NIL :PROPERTY NIL :REQUESTOR NIL :SELECTION NIL)
10: (XLIB:PROCESS-EVENT #<XLIB:DISPLAY :0 (The X.Org Foundation R60802000)> :HANDLER #<FUNCTION CLIM-CLX::EVENT-HANDLER> :TIMEOUT NIL :PEEK-P NIL :DISCARD-P T :FORCE-OUTPUT-P T)
11: ((SB-PCL::FAST-METHOD CLIM-BACKEND:GET-NEXT-EVENT (CLIM-CLX::CLX-PORT)) #<unavailable argument> #<unavailable argument> #<CLIM-CLX::CLX-PORT :HOST "" :DISPLAY-ID 0 {10054966A1}> (:WAIT-FUNCTION NIL :TIMEOUT NIL))
12: ((LAMBDA (SB-PCL::.PV-CELL. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0. SB-PCL::.DFUN-REST-ARG.)) #<unavailable argument> #<unavailable argument> #<CLIM-CLX::CLX-PORT :HOST "" :DISPLAY-ID 0 {10054966A1}> (:WAIT-FUNCTION NIL :TIMEOUT NIL))13: ((SB-PCL::FAST-METHOD CLIM:PROCESS-NEXT-EVENT (CLIM:BASIC-PORT)) #<unavailable argument> #<unavailable argument> #<CLIM-CLX::CLX-PORT :HOST "" :DISPLAY-ID 0 {10054966A1}> (:TIMEOUT NIL))
14: ((SB-PCL::FAST-METHOD CLIM:STREAM-INPUT-WAIT (CLIM:STANDARD-EXTENDED-INPUT-STREAM)) #<unavailable argument> #<unavailable argument> #<CLIM-DEBUGGER::DEBUGGER-PANE CLIM-DEBUGGER::DEBUGGER-PANE {10055FC5B1}> (:TIMEOUT NIL :INPUT-WAIT-TEST #<FUNCTION CLIM-INTERNALS::INPUT-CONTEXT-WAIT-TEST>))
15: ((SB-PCL::FAST-METHOD CLIM:STREAM-READ-GESTURE (CLIM:STANDARD-EXTENDED-INPUT-STREAM)) #<unavailable argument> #<unavailable argument> #<CLIM-DEBUGGER::DEBUGGER-PANE CLIM-DEBUGGER::DEBUGGER-PANE {10055FC5B1}> (:TIMEOUT NIL :PEEK-P NIL :INPUT-WAIT-TEST #<FUNCTION CLIM-INTERNALS::INPUT-CONTEXT-WAIT-TEST> :INPUT-WAIT-HANDLER #<FUNCTION CLIM-INTERNALS::INPUT-CONTEXT-EVENT-HANDLER> :POINTER-BUTTON-PRESS-HANDLER #<FUNCTION CLIM-INTERNALS::INPUT-CONTEXT-BUTTON-PRESS-HANDLER>))
16: ((LAMBDA (SB-PCL::.PV-CELL. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0. SB-PCL::.DFUN-REST-ARG.)) #<unavailable argument> #<unavailable argument> #<CLIM-DEBUGGER::DEBUGGER-PANE CLIM-DEBUGGER::DEBUGGER-PANE {10055FC5B1}> (:TIMEOUT NIL :PEEK-P NIL :INPUT-WAIT-TEST #<FUNCTION CLIM-INTERNALS::INPUT-CONTEXT-WAIT-TEST> :INPUT-WAIT-HANDLER #<FUNCTION CLIM-INTERNALS::INPUT-CONTEXT-EVENT-HANDLER> :POINTER-BUTTON-PRESS-HANDLER #<FUNCTION CLIM-INTERNALS::INPUT-CONTEXT-BUTTON-PRESS-HANDLER>))
17: (CLIM:READ-COMMAND #<CLIM:STANDARD-COMMAND-TABLE CLIM-DEBUGGER::CLIM-DEBUGGER {1003C8CAD1}> :STREAM #<CLIM-DEBUGGER::DEBUGGER-PANE CLIM-DEBUGGER::DEBUGGER-PANE {10055FC5B1}> :COMMAND-PARSER NIL :COMMAND-UNPARSER NIL :PARTIAL-COMMAND-PARSER NIL :USE-KEYSTROKES NIL)
18: (CLIM:READ-COMMAND-USING-KEYSTROKES #<CLIM:STANDARD-COMMAND-TABLE CLIM-DEBUGGER::CLIM-DEBUGGER {1003C8CAD1}> ((:KEYBOARD #\! 512) (:KEYBOARD #\! 768)) :STREAM #<CLIM-DEBUGGER::DEBUGGER-PANE CLIM-DEBUGGER::DEBUGGER-PANE {10055FC5B1}> :COMMAND-PARSER NIL :COMMAND-UNPARSER NIL :PARTIAL-COMMAND-PARSER NIL)
19: (CLIM:READ-COMMAND #<CLIM:STANDARD-COMMAND-TABLE CLIM-DEBUGGER::CLIM-DEBUGGER {1003C8CAD1}> :STREAM #<CLIM-DEBUGGER::DEBUGGER-PANE CLIM-DEBUGGER::DEBUGGER-PANE {10055FC5B1}> :COMMAND-PARSER NIL :COMMAND-UNPARSER NIL :PARTIAL-COMMAND-PARSER NIL :USE-KEYSTROKES T)
20: ((SB-PCL::FAST-METHOD CLIM:READ-FRAME-COMMAND :AROUND (CLIM:APPLICATION-FRAME)) #<unavailable argument> #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD CLIM:READ-FRAME-COMMAND #)> :PV-CELL NIL :NEXT-METHOD-CALL NIL :ARG-INFO (1 . T)) #<CLIM-DEBUGGER::CLIM-DEBUGGER {10055E2061}> (:STREAM #<CLIM-DEBUGGER::DEBUGGER-PANE CLIM-DEBUGGER::DEBUGGER-PANE {10055FC5B1}>))
21: ((SB-PCL::FAST-METHOD CLIM:DEFAULT-FRAME-TOP-LEVEL (CLIM:APPLICATION-FRAME)) #<unavailable argument> #<unavailable argument> #<CLIM-DEBUGGER::CLIM-DEBUGGER {10055E2061}> NIL)
22: ((SB-PCL::FAST-METHOD CLIM:DEFAULT-FRAME-TOP-LEVEL (CLIM:APPLICATION-FRAME)) #<unavailable argument> #<unavailable argument> #<CLIM-DEBUGGER::CLIM-DEBUGGER {10055E2061}> NIL)
23: ((SB-PCL::FAST-METHOD CLIM:RUN-FRAME-TOP-LEVEL (CLIM:APPLICATION-FRAME)) #<unavailable argument> #<unavailable argument> #<CLIM-DEBUGGER::CLIM-DEBUGGER {10055E2061}> #<unavailable argument>)
24: ((SB-PCL::FAST-METHOD CLIM:RUN-FRAME-TOP-LEVEL :AROUND (CLIM:APPLICATION-FRAME)) #<unavailable argument> #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD CLIM:RUN-FRAME-TOP-LEVEL #)> :PV-CELL NIL :NEXT-METHOD-CALL NIL :ARG-INFO (1 . T)) #<CLIM-DEBUGGER::CLIM-DEBUGGER {10055E2061}> NIL)
25: ((LAMBDA NIL))
26: ((SB-PCL::FAST-METHOD SWANK-BACKEND:CALL-WITH-DEBUGGING-ENVIRONMENT (T)) #<unused argument> #<unused argument> #<CLOSURE (LAMBDA NIL) {100658F419}>)
27: (INVOKE-DEBUGGER #<SIMPLE-ERROR {1006551341}>)
28: (ERROR "foo")
29: (COM-ERROR)
30: (COM-ERROR)
31: ((LAMBDA (SB-PCL::.PV-CELL. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0. SB-PCL::.ARG1.)) #<unavailable argument> #<unavailable argument> #<CLIMACS-GUI:CLIMACS {1005454621}> (COM-ERROR))
32: ((SB-PCL::FAST-METHOD CLIM:EXECUTE-FRAME-COMMAND :AROUND (ESA:ESA-FRAME-MIXIN T)) #<unavailable argument> #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<CLOSURE (LAMBDA #) {1005AFF849}> :PV-CELL NIL :NEXT-METHOD-CALL NIL :ARG-INFO (2)) #<CLIMACS-GUI:CLIMACS {1005454621}> (COM-ERROR))
33: ((SB-PCL::FAST-METHOD CLIM:EXECUTE-FRAME-COMMAND :AROUND (CLIMACS-GUI:CLIMACS T)) #<unavailable argument> #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD CLIM:EXECUTE-FRAME-COMMAND :AROUND ...)> :PV-CELL NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<CLOSURE # {1005AFF849}> :PV-CELL NIL :NEXT-METHOD-CALL NIL :ARG-INFO (2)) :ARG-INFO (2)) #<CLIMACS-GUI:CLIMACS {1005454621}> (COM-ERROR))
34: (ESA::PROCESS-GESTURES-OR-COMMAND #<CLIMACS-GUI:CLIMACS {1005454621}> #<CLIM:STANDARD-COMMAND-TABLE CLIMACS-GUI::GLOBAL-CLIMACS-TABLE {1003C8C021}>)
35: (ESA:ESA-TOP-LEVEL #<CLIMACS-GUI:CLIMACS {1005454621}> :COMMAND-PARSER ESA:ESA-COMMAND-PARSER :COMMAND-UNPARSER CLIM:COMMAND-LINE-COMMAND-UNPARSER :PARTIAL-COMMAND-PARSER ESA:ESA-PARTIAL-COMMAND-PARSER :PROMPT "M-x ")
36: (ESA:ESA-TOP-LEVEL #<CLIMACS-GUI:CLIMACS {1005454621}>)
37: ((SB-PCL::FAST-METHOD CLIM:RUN-FRAME-TOP-LEVEL (CLIM:APPLICATION-FRAME)) #<unavailable argument> #<unavailable argument> #<CLIMACS-GUI:CLIMACS {1005454621}> #<unavailable argument>)
38: ((SB-PCL::FAST-METHOD CLIM:RUN-FRAME-TOP-LEVEL :AROUND (CLIM:APPLICATION-FRAME)) #<unavailable argument> #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD CLIM:RUN-FRAME-TOP-LEVEL #)> :PV-CELL NIL :NEXT-METHOD-CALL NIL :ARG-INFO (1 . T)) #<CLIMACS-GUI:CLIMACS {1005454621}> NIL)
39: ((LAMBDA NIL))
40: ((LABELS SB-IMPL::RESTART-LISP))
-------------- next part --------------
Any ideas?
Cheers,
Christophe
More information about the mcclim-devel
mailing list