[armedbear-devel] how to debug?
Alan Ruttenberg
alanruttenberg at gmail.com
Wed Feb 17 00:53:05 UTC 2010
Maybe this can help.
First define:
(defmethod print-object ((v jvm::var-ref) s)
(prin1 (jvm::variable-name (jvm::var-ref-variable v)) s))
So that when tracing the expansion we don't throw a fit.
Then:
(defun expand-function-call-inline (form lambda-list body args)
(handler-case
(multiple-value-bind (bindings ignorables)
(match-lambda-list (multiple-value-list
(parse-lambda-list lambda-list))
args)
(let ((expanded `(let* ,bindings
(declare (ignorable , at ignorables))
, at body)))
(let ((*print-structure* nil) (*print-pretty* t) (*print-case* :downcase))
(format t "transforming ~a ~% into~% ~a~%-------~%" form expanded)
expanded)))
(lambda-list-mismatch (x)
(compiler-warn "Invalid function call: ~S (mismatch type: ~A)"
form (lambda-list-mismatch-type x))
form)))
Given that, here's the trace of what happens when I compile the
function in question:
java.lang.VerifyError: (class:
abcl_6037b542_0820_4605_aeb0_a2000b3f3a45, method: execute signature:
(Lorg/armedbear/lisp/LispObject;Lorg/armedbear/lisp/LispObject;)Lorg/armedbear/lisp/LispObject;)
Illegal local variable number
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.newInstance0(Class.java:326)
at java.lang.Class.newInstance(Class.java:308)
at org.armedbear.lisp.Lisp.makeCompiledFunctionFromClass(Lisp.java:1266)
at org.armedbear.lisp.Lisp.loadClassBytes(Lisp.java:1327)
at org.armedbear.lisp.Lisp.loadClassBytes(Lisp.java:1320)
at org.armedbear.lisp.CompiledClosure$1.execute(CompiledClosure.java:236)
at org.armedbear.lisp.Symbol.execute(Symbol.java:775)
at org.armedbear.lisp.compiler_pass2_453.execute(compiler-pass2.lisp:5224)
at org.armedbear.lisp.Symbol.execute(Symbol.java:786)
at org.armedbear.lisp.compiler_pass2_454.execute(compiler-pass2.lisp:5261)
at org.armedbear.lisp.Symbol.execute(Symbol.java:798)
at org.armedbear.lisp.compiler_pass2_560.execute(compiler-pass2.lisp:8127)
at org.armedbear.lisp.Symbol.execute(Symbol.java:798)
at org.armedbear.lisp.LispThread.execute(LispThread.java:596)
at org.armedbear.lisp.compiler_pass2_327.execute(compiler-pass2.lisp:2961)
at org.armedbear.lisp.Symbol.execute(Symbol.java:775)
at org.armedbear.lisp.compiler_pass2_332.execute(compiler-pass2.lisp:3023)
at org.armedbear.lisp.Symbol.execute(Symbol.java:798)
at org.armedbear.lisp.compiler_pass2_560.execute(compiler-pass2.lisp:8127)
at org.armedbear.lisp.Symbol.execute(Symbol.java:798)
at org.armedbear.lisp.compiler_pass2_401.execute(compiler-pass2.lisp:4131)
at org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:112)
at org.armedbear.lisp.Symbol.execute(Symbol.java:786)
at org.armedbear.lisp.compiler_pass2_567.execute(compiler-pass2.lisp:8350)
at org.armedbear.lisp.Symbol.execute(Symbol.java:775)
at org.armedbear.lisp.compiler_pass2_569.execute(compiler-pass2.lisp:8581)
at org.armedbear.lisp.Symbol.execute(Symbol.java:786)
at org.armedbear.lisp.compiler_pass2_571.execute(compiler-pass2.lisp:8623)
at org.armedbear.lisp.Symbol.execute(Symbol.java:839)
at org.armedbear.lisp.compiler_pass2_596.execute(compiler-pass2.lisp:8737)
at org.armedbear.lisp.compiler_pass2_582.execute(compiler-pass2.lisp:8692)
at org.armedbear.lisp.LispThread.execute(LispThread.java:546)
at org.armedbear.lisp.Java$23.execute(Java.java:1007)
at org.armedbear.lisp.Symbol.execute(Symbol.java:775)
at org.armedbear.lisp.compiler_pass2_578.execute(compiler-pass2.lisp:8692)
at org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:101)
at org.armedbear.lisp.Symbol.execute(Symbol.java:775)
at org.armedbear.lisp.compiler_pass2_595.execute(compiler-pass2.lisp:8737)
at org.armedbear.lisp.Symbol.execute(Symbol.java:810)
at org.armedbear.lisp.compiler_pass2_601.execute(compiler-pass2.lisp:8754)
at org.armedbear.lisp.LispThread.execute(LispThread.java:546)
at org.armedbear.lisp.Java$23.execute(Java.java:1007)
at org.armedbear.lisp.Symbol.execute(Symbol.java:775)
at org.armedbear.lisp.compiler_pass2_597.execute(compiler-pass2.lisp:8754)
at org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:112)
at org.armedbear.lisp.Symbol.execute(Symbol.java:786)
at org.armedbear.lisp.compiler_pass2_602.execute(compiler-pass2.lisp:8825)
at org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:112)
at org.armedbear.lisp.LispThread.execute(LispThread.java:579)
at org.armedbear.lisp.Lisp.evalCall(Lisp.java:501)
at org.armedbear.lisp.Lisp.eval(Lisp.java:459)
at org.armedbear.lisp.Lisp.evalCall(Lisp.java:489)
at org.armedbear.lisp.Lisp.eval(Lisp.java:459)
at org.armedbear.lisp.Lisp.progn(Lisp.java:628)
at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169)
at org.armedbear.lisp.SpecialOperators.access$000(SpecialOperators.java:40)
at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101)
at org.armedbear.lisp.Lisp.eval(Lisp.java:449)
at org.armedbear.lisp.Lisp.progn(Lisp.java:628)
at org.armedbear.lisp.Closure.execute(Closure.java:421)
at org.armedbear.lisp.LispThread.execute(LispThread.java:546)
at org.armedbear.lisp.Java$
transforming ((lambda (g172 &rest g173)
(invoke-restargs replaceAll
lambdas::g172
#:temp13766
nil))
((lambda (g174 &rest g175)
(invoke-restargs matcher
lambdas::g174
#:temp13767
t))
(load-time-value ((lambda (g176 &rest g177)
(invoke-restargs compile
g176
g177
t))
'java.util.regex.pattern \\(.)))
value)
$1)
into
(let* ((g172
((lambda (g174 &rest g175)
(invoke-restargs matcher lambdas::g174 #:temp13767 t))
(load-time-value ((lambda (g176 &rest g177)
(invoke-restargs compile g176 g177 t))
'java.util.regex.pattern \\(.)))
value))
(temp15717 (list $1))
(g173 temp15717))
(declare (ignorable))
(invoke-restargs replaceAll lambdas::g172 #:temp13766 nil))
-------
transforming ((lambda (g174 &rest g175)
(invoke-restargs matcher
lambdas::g174
#:temp13767
t))
(load-time-value ((lambda (g176 &rest g177)
(invoke-restargs compile
g176
g177
t))
'java.util.regex.pattern \\(.)))
value)
into
(let* ((g174
(load-time-value ((lambda (g176 &rest g177)
(invoke-restargs compile g176 g177 t))
'java.util.regex.pattern \\(.))))
(temp15718 (list value))
(g175 temp15718))
(declare (ignorable))
(invoke-restargs matcher lambdas::g174 #:temp13767 t))
-------
transforming ((lambda (g172 &rest g173)
(invoke-restargs replaceAll
lambdas::g172
#:temp13766
nil))
((lambda (g174 &rest g175)
(invoke-restargs matcher
lambdas::g174
#:temp13767
t))
(load-time-value ((lambda (g176 &rest g177)
(invoke-restargs compile
g176
g177
t))
'java.util.regex.pattern \\(.)))
value)
$1)
into
(let* ((g172
((lambda (g174 &rest g175)
(invoke-restargs matcher lambdas::g174 #:temp13767 t))
(load-time-value ((lambda (g176 &rest g177)
(invoke-restargs compile g176 g177 t))
'java.util.regex.pattern \\(.)))
value))
(temp15725 (list $1))
(g173 temp15725))
(declare (ignorable))
(invoke-restargs replaceAll lambdas::g172 #:temp13766 nil))
-------
transforming ((lambda (g174 &rest g175)
(invoke-restargs matcher
lambdas::g174
#:temp13767
t))
(load-time-value ((lambda (g176 &rest g177)
(invoke-restargs compile
g176
g177
t))
'java.util.regex.pattern \\(.)))
value)
into
(let* ((g174
(load-time-value ((lambda (g176 &rest g177)
(invoke-restargs compile g176 g177 t))
'java.util.regex.pattern \\(.))))
(temp15726 (list value))
(g175 temp15726))
(declare (ignorable))
(invoke-restargs matcher lambdas::g174 #:temp13767 t))
-------
STYLE-WARNING: The variable LINE is defined but never used.
STYLE-WARNING: The variable LAMBDAS::G172 is defined but never used.
STYLE-WARNING: The variable LAMBDAS::G173 is defined but never used.
STYLE-WARNING: The variable LAMBDAS::G174 is defined but never used.
STYLE-WARNING: The variable LAMBDAS::G175 is defined but never used.
23.execute(Java.java:1007)
at org.armedbear.lisp.LispThread.execute(LispThread.java:562)
at org.armedbear.lisp.Lisp.evalCall(Lisp.java:494)
at org.armedbear.lisp.Lisp.eval(Lisp.java:459)
at org.armedbear.lisp.Lisp.progn(Lisp.java:628)
at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169)
at org.armedbear.lisp.SpecialOperators.access$000(SpecialOperators.java:40)
at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101)
at org.armedbear.lisp.Lisp.eval(Lisp.java:449)
at org.armedbear.lisp.Lisp.progn(Lisp.java:628)
at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169)
at org.armedbear.lisp.SpecialOperators.access$000(SpecialOperators.java:40)
at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101)
at org.armedbear.lisp.Lisp.eval(Lisp.java:449)
at org.armedbear.lisp.Lisp.progn(Lisp.java:628)
at org.armedbear.lisp.Closure.execute(Closure.java:646)
at org.armedbear.lisp.LispThread.execute(LispThread.java:711)
at org.armedbear.lisp.Lisp.funcall(Lisp.java:183)
at org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2829)
at org.armedbear.lisp.Symbol.execute(Symbol.java:886)
at org.armedbear.lisp.LispThread.execute(LispThread.java:711)
at org.armedbear.lisp.swank_backend_45.execute(swank-backend.lisp:402)
at org.armedbear.lisp.Symbol.execute(Symbol.java:886)
at org.armedbear.lisp.LispThread.execute(LispThread.java:711)
at org.armedbear.lisp.swank_541.execute(swank.lisp:2691)
at org.armedbear.lisp.LispThread.execute(LispThread.java:546)
at org.armedbear.lisp.swank_529.execute(swank.lisp:2639)
at org.armedbear.lisp.LispThread.execute(LispThread.java:546)
at org.armedbear.lisp.swank_524.execute(swank.lisp:2619)
at org.armedbear.lisp.Symbol.execute(Symbol.java:775)
at org.armedbear.lisp.LispThread.execute(LispThread.java:562)
at org.armedbear.lisp.swank_528.execute(swank.lisp:2639)
at org.armedbear.lisp.LispThread.execute(LispThread.java:546)
at org.armedbear.lisp.Java$23.execute(Java.java:1007)
at org.armedbear.lisp.Symbol.execute(Symbol.java:775)
at org.armedbear.lisp.LispThread.execute(LispThread.java:562)
at org.armedbear.lisp.swank_526.execute(swank.lisp:2639)
at org.armedbear.lisp.Symbol.execute(Symbol.java:775)
at org.armedbear.lisp.LispThread.execute(LispThread.java:562)
at org.armedbear.lisp.swank_540.execute(swank.lisp:2691)
at org.armedbear.lisp.LispThread.execute(LispThread.java:546)
at org.armedbear.lisp.Primitives$pf_funcall.execute(Primitives.java:2673)
at org.armedbear.lisp.LispThread.execute(LispThread.java:562)
at org.armedbear.lisp.Lisp.evalCall(Lisp.java:494)
at org.armedbear.lisp.Lisp.eval(Lisp.java:459)
at org.armedbear.lisp.Lisp.progn(Lisp.java:628)
at org.armedbear.lisp.Closure.bindParametersAndExecute(Closure.java:446)
at org.armedbear.lisp.Closure.execute(Closure.java:479)
at org.armedbear.lisp.LispThread.execute(LispThread.java:562)
at org.armedbear.lisp.Lisp.funcall(Lisp.java:163)
at org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2811)
at org.armedbear.lisp.Symbol.execute(Symbol.java:798)
at org.armedbear.lisp.LispThread.execute(LispThread.java:596)
at org.armedbear.lisp.swank_backend_41.execute(swank-backend.lisp:382)
at org.armedbear.lisp.Symbol.execute(Symbol.java:775)
at org.armedbear.lisp.LispThread.execute(LispThread.java:562)
at org.armedbear.lisp.swank_370.execute(swank.lisp:1774)
at org.armedbear.lisp.Symbol.execute(Symbol.java:786)
at org.armedbear.lisp.LispThread.execute(LispThread.java:579)
at org.armedbear.lisp.swank_539.execute(swank.lisp:2691)
at org.armedbear.lisp.LispThread.execute(LispThread.java:632)
at org.armedbear.lisp.Lisp.evalCall(Lisp.java:522)
at org.armedbear.lisp.Lisp.eval(Lisp.java:459)
at org.armedbear.lisp.Primitives$pf__eval.execute(Primitives.java:328)
at org.armedbear.lisp.LispThread.execute(LispThread.java:562)
at org.armedbear.lisp.Lisp.evalCall(Lisp.java:494)
at org.armedbear.lisp.Lisp.eval(Lisp.java:459)
at org.armedbear.lisp.Lisp.progn(Lisp.java:628)
at org.armedbear.lisp.Primitives$sf_block.execute(Primitives.java:3720)
at org.armedbear.lisp.Lisp.eval(Lisp.java:449)
at org.armedbear.lisp.Lisp.progn(Lisp.java:628)
at org.armedbear.lisp.Closure.bindParametersAndExecute(Closure.java:446)
at org.armedbear.lisp.Closure.execute(Closure.java:479)
at org.armedbear.lisp.Symbol.execute(Symbol.java:775)
at org.armedbear.lisp.LispThread.execute(LispThread.java:562)
at org.armedbear.lisp.swank_400.execute(swank.lisp:1979)
at org.armedbear.lisp.LispThread.execute(LispThread.java:596)
at org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2784)
at org.armedbear.lisp.Symbol.execute(Symbol.java:786)
at org.armedbear.lisp.LispThread.execute(LispThread.java:579)
at org.armedbear.lisp.swank_248.execute(swank.lisp:1023)
at org.armedbear.lisp.LispThread.execute(LispThread.java:546)
at org.armedbear.lisp.Primitives$pf_funcall.execute(Primitives.java:2673)
at org.armedbear.lisp.LispThread.execute(LispThread.java:562)
at org.armedbear.lisp.Lisp.evalCall(Lisp.java:494)
at org.armedbear.lisp.Lisp.eval(Lisp.java:459)
at org.armedbear.lisp.Lisp.progn(Lisp.java:628)
at org.armedbear.lisp.SpecialOperators._let(SpecialOperators.java:169)
at org.armedbear.lisp.SpecialOperators.access$000(SpecialOperators.java:40)
at org.armedbear.lisp.SpecialOperators$sf_let.execute(SpecialOperators.java:101)
at org.armedbear.lisp.Lisp.eval(Lisp.java:449)
at org.armedbear.lisp.Lisp.progn(Lisp.java:628)
at org.armedbear.lisp.Closure.bindParametersAndExecute(Closure.java:446)
at org.armedbear.lisp.Closure.execute(Closure.java:493)
at org.armedbear.lisp.LispThread.execute(LispThread.java:579)
at org.armedbear.lisp.Lisp.funcall(Lisp.java:165)
at org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2829)
at org.armedbear.lisp.Primitive.execute(Primitive.java:143)
at org.armedbear.lisp.Symbol.execute(Symbol.java:810)
at org.armedbear.lisp.LispThread.execute(LispThread.java:614)
at org.armedbear.lisp.swank_backend_74.execute(swank-backend.lisp:663)
at org.armedbear.lisp.Symbol.execute(Symbol.java:786)
at org.armedbear.lisp.LispThread.execute(LispThread.java:579)
at org.armedbear.lisp.swank_148.execute(swank.lisp:423)
at org.armedbear.lisp.LispThread.execute(LispThread.java:546)
at org.armedbear.lisp.swank_1.execute(swank.lisp:174)
at org.armedbear.lisp.Symbol.execute(Symbol.java:786)
at org.armedbear.lisp.LispThread.execute(LispThread.java:579)
at org.armedbear.lisp.swank_147.execute(swank.lisp:423)
at org.armedbear.lisp.LispThread.execute(LispThread.java:546)
at org.armedbear.lisp.Java$23.execute(Java.java:1007)
at org.armedbear.lisp.Symbol.execute(Symbol.java:775)
at org.armedbear.lisp.LispThread.execute(LispThread.java:562)
at org.armedbear.lisp.swank_145.execute(swank.lisp:423)
at org.armedbear.lisp.LispThread.execute(LispThread.java:546)
at org.armedbear.lisp.Java$23.execute(Java.java:1007)
at org.armedbear.lisp.Symbol.execute(Symbol.java:775)
at org.armedbear.lisp.LispThread.execute(LispThread.java:562)
at org.armedbear.lisp.swank_143.execute(swank.lisp:423)
at org.armedbear.lisp.Symbol.execute(Symbol.java:786)
at org.armedbear.lisp.LispThread.execute(LispThread.java:579)
at org.armedbear.lisp.swank_247.execute(swank.lisp:1023)
at org.armedbear.lisp.LispThread.execute(LispThread.java:546)
at org.armedbear.lisp.swank_1.execute(swank.lisp:174)
at org.armedbear.lisp.Symbol.execute(Symbol.java:786)
at org.armedbear.lisp.LispThread.execute(LispThread.java:579)
at org.armedbear.lisp.swank_246.execute(swank.lisp:1023)
at org.armedbear.lisp.LispThread.execute(LispThread.java:546)
at org.armedbear.lisp.Primitives$pf_funcall.execute(Primitives.java:2673)
at org.armedbear.lisp.LispThread.execute(LispThread.java:562)
at org.armedbear.lisp.Lisp.evalCall(Lisp.java:494)
at org.armedbear.lisp.Lisp.eval(Lisp.java:459)
at org.armedbear.lisp.Lisp.progn(Lisp.java:628)
at org.armedbear.lisp.Closure.execute(Closure.java:421)
at org.armedbear.lisp.LispThread.execute(LispThread.java:546)
at org.armedbear.lisp.Lisp.funcall(Lisp.java:161)
at org.armedbear.lisp.LispThread$2.run(LispThread.java:88)
at java.lang.Thread.run(Thread.java:637)
; Compilation unit finished
; Caught 5 WARNING conditions
; Caught 5 STYLE-WARNING conditions
; No value
CL-USER>
More information about the armedbear-devel
mailing list