2010-12-06 14 views
27

LaClosureプラグインのバージョン0.3.15 とIntelliJ Idea 10を使用しています。Java 6 Clojure 1.2をプロジェクトに追加しました。IntelliJ Idea 10とLa Closureプラグインのバージョン0.3.15でClojureをデバッグ

私がJavaコードに置いたブレークポイントはヒットしますが、置くものは Clojureはありません。実際には、デバッガがJava ブレークポイントで停止している場合、Clojureコードのブレークポイントにはxがあり、 には、例えば実行可能コードが見つからないというメッセージが表示されます。 debugland $ eval3 。

println、 のようなClojureのコア関数にブレークポイントを入れようとしましたが、まだ赤いxがあります。本当に、本当に、これに任意のヘルプ を感謝しますか?私は、同様の 結果を持つClojure 1.1と1.2の両方でIdea 9を試しました。

答えて

1

私は、ClojureがIdeaのデバッガが理解できないjvmプリミティブを作成していると考えています。これは、プリミティブがIdeaが通常認識するサイズやタイプではないことを意味します。 hereおよびhereを参照してください。

これは、Clojureが仮想マシンコードを記述するときに使用する構造体/プリミティブのカタログを作成し、Clojureのデバッグ時にその構造体/プリミティブに切り替えることで修正される可能性があります。残念ながら、これはIntelliJが問題を解決するのを待つ必要があるかもしれないことを意味します。

私はJetbrains Tech Supportに質問を投稿しました。

2

私はClojure 1.3(githubソースから構築)、LaClojure 0.3.74、およびIDEA 10.0.3で動作するSun Java 6u24を使用しています。私のブレークポイントは宣伝されているように動作しているようです(赤い点でチェックマークをつけます)。ただし、[]とfunction_name []のような評価されないコードでブレークポイントをxにします。例えば:あなたはIDEA/LaClojure(Javaの6uXとClojureの1.2が正常に動作する必要があります)の最新バージョンにアップグレードしたい場合があります

(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))))) 

、(必ずIDEAは、あなたのClojureのjarファイルを検索する場所を知っていて、使用するJDKを作ります使用可能なIDEAの設定方法を知っているように聞こえるので、あなたはそこそこです)、bpは評価可能な式だけにしてください。

0

私のプロジェクトが純粋なクロージャーなので、これがあなたの特別なケースに役立つかどうかはわかりませんが、私のプロジェクトのクロージャーファセットを設定するまでデバッガを得ることはできませんでした。既存のプロジェクトに追加する方法を理解していない - 私は、このファセットを持つ新しいプロジェクトを開始する必要がありました)。私はのIntelliJ IDEA 14.1.4ラClojureの0.7.82

を使用しています

http://blog.tomeklipski.com/2013/04/running-and-debugging-clojure-code-with.html

このブログは私のために働いた手順、を通過します

関連する問題