[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