Отладка Clojure с помощью IntelliJ Idea 10 и плагина La Closure версии 0.3.15 - PullRequest
27 голосов
/ 07 декабря 2010

Я использую IntelliJ Idea 10 с плагином La Closure версии 0.3.15 и Java 6 Я добавил Clojure 1.2 в проект.

Точки останова, которые я ставлю на код Java, получают удар, но те, на которые я ставлю Clojure не надо. на самом деле, если отладчик остановлен на Java точка останова, точки останова в коде Clojure содержат в себе х, и они иметь предупреждение, например, что не найдено исполняемого кода в строка 4 в классе в debugland $ eval3.

Я пытался поместить точки останова в основные функции Clojure, такие как println, но я все еще получаю красные иксы. Очень, очень признателен за любую помощь на этом. Я пробовал Idea 9 с Clojure 1.1 и 1.2 с аналогичными Результаты.

Ответы [ 3 ]

2 голосов
/ 17 апреля 2011

Я использую Clojure 1.3 (созданный из источников github), LaClojure 0.3.74 и Sun Java 6u24, работающие на IDEA 10.0.3.Мои контрольные точки, кажется, работают как рекламируется (получая галочки в красных точках), хотя вы получите x на контрольных точках в не оценочном коде, таком как [] против имя_функции [].Например:

(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 / LaClojure (Java 6uX и Clojure 1.2 должны работать нормально), убедитесь, что IDEA знает, где найти ваши файлы clojure jar и какой jdk дляиспользуйте (звучит так, как будто вы знаете, как настроить используемую настройку IDEA, так что вам там хорошо), и убедитесь, что у вас есть bp только в выражениях, которые можно оценить.

1 голос
/ 15 апреля 2011

Я верю, что Clojure создает примитивы jvm, которые отладчик Idea не понимает.Это означает, что примитивы - это не тот размер или тип, который обычно распознает Idea.См. здесь и здесь .

Это, вероятно, можно исправить, составив каталог структур / примитивов, которые Clojure использует при написании кода своей виртуальной машины, и переключившись на него при отладке Clojure.К сожалению, это также означает, что вам, возможно, придется подождать, пока IntelliJ решит проблему.

Я отправил вопрос в службу технической поддержки Jetbrains.

0 голосов
/ 15 августа 2015

Не уверен, поможет ли это вашему конкретному случаю, так как мой проект - чистый clojure, но я не смог заставить отладчик достигать моих точек останова, пока я не настроил фасет clojure для своего проекта (что странно, я не могвыяснить, как добавить в существующий проект - мне пришлось сделать новый проект с фасетом, чтобы начать).

Этот блог проходит шаги, которые работали для меня:

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

Я использую IntelliJ IDEA 14.1.4 и La Clojure 0.7.82

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...