27 votes

Débogage de Clojure avec IntelliJ Idea 10 et La Closure Plugin version 0.3.15

Je suis à l'aide d'IntelliJ Idea 10 avec la Fermeture de la version du plugin 0.3.15 et la version 6 de Java, j'ai ajouté Clojure 1,2 à un projet.

Les points d'arrêt j'ai mis sur du code Java se faire frapper, mais ceux que j'ai mis sur Clojure ne le font pas. en fait, si le débogueur est arrêté sur une Java le point d'arrêt les points d'arrêt sur Clojure code un x en eux et qu'ils un avertissement qui dit que, par exemple, Pas de code exécutable trouvé à la ligne 4 dans la classe au debugland$eval3.

J'ai essayé de mettre des points d'arrêt en Clojure fonctions de base comme println, mais j'ai toujours le x rouge est. Serait vraiment, vraiment reconnaissant de toute aide sur cette. J'ai essayé Idée 9 avec les deux Clojure 1.1 et 1.2 similaires résultats.

2voto

Marc Points 2654

Je suis l'aide de Clojure 1.3 (construit à partir de github sources), LaClojure 0.3.74, et Sun Java 6u24 en cours d'exécution sur l'IDÉE 10.0.3. Mes points d'arrêt semblent fonctionner comme annoncé (se coche en rouge les points), bien que vous obtiendrez des x sur les points d'arrêt non évaluative de code tel que [] vs function_name[]. Par exemple:

(ns clojure.examples.hello
(:gen-class))

(defn hello          <---- Get check breakpoints here.
  []                 <---- Get x breakpoints here, can't eval [] but hello[] is okay!!!
  (let [a 12
        b (/ a 2)    <---- Get check breakpoints here.
        c (* b 3)]
    (if (< b a)
      (println (str b "<" a))      <---- Get check breakpoints here.
      (println (str a "<" b)))))

Vous pourriez souhaitez mettre à niveau vers la version la plus récente de l'IDÉE/LaClojure (Java 6uX et Clojure 1.2 devrait bien fonctionner), assurez-vous IDÉE sait où trouver votre clojure bocaux et qui jdk à utiliser (on dirait que vous savez comment config utilisable IDÉE de l'installation, de sorte que vous êtes bien, là), et assurez-vous que vous avez de bp que dans des expressions qui peuvent être évalués.

1voto

Albert Perrien Points 867

Je crois que ce qui se passe est que Clojure est la création de la jvm des primitives que l'Idée du débogueur ne pas comprendre. Ce petit plus ponctuellement dire la les primitives ne sont pas la taille ou le type de cette Idée, il reconnaît normalement. Voir ici et ici.

Cela peut être résolu en faisant un catalogue des structures primitives qui Clojure utilise lors de l'écriture c'est la machine virtuelle de code et de commutation pour que, lorsque le débogage Clojure. Malheureusement, cela signifie également que vous pouvez avoir à attendre pour IntelliJ pour résoudre le problème.

J'ai posté la question de Jetbrains de l'assistance technique.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X