首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用IntelliJ Idea 10和La Closure插件0.3.15版调试Clojure

使用IntelliJ Idea 10和La Closure插件0.3.15版调试Clojure
EN

Stack Overflow用户
提问于 2010-12-07 07:10:59
回答 3查看 1.5K关注 0票数 27

我正在使用带有La Closure插件版本0.3.15的IntelliJ Idea 10和Java6,我已经将Clojure 1.2添加到了一个项目中。

我放在Java代码上的断点会命中,但我放在Clojure上的断点不会。实际上,如果调试器在Java断点处停止,Clojure代码上的断点中会有一个x,并且它们会有一个警告,例如,在类的debugland$eval3的第4行没有找到可执行代码。

我试过在Clojure的核心函数中设置断点,比如println,但是我还是得到了红色的x,我真的非常感谢大家在这方面的帮助。我在Clojure 1.1和1.2上尝试了Idea 9,得到了类似的结果。

EN

回答 3

Stack Overflow用户

发布于 2011-04-18 01:30:15

我使用的是在IDEA 10.0.3上运行的Clojure 1.3 (从github源码构建)、LaClojure 0.3.74和Sun Java6u24。我的断点看起来像广告中所说的那样工作(用红点标记),尽管你会在非求值代码中得到x的断点,比如[]与function_name[]。例如:

代码语言:javascript
复制
(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 jars以及使用哪个jdk (听起来您知道如何配置可用的IDEA设置,所以您很擅长),并确保您只在可计算的表达式中使用bp。

票数 2
EN

Stack Overflow用户

发布于 2011-04-15 09:51:34

我相信正在发生的事情是Clojure正在创建Idea的调试器无法理解的jvm原语。这可能意味着原语不是Idea通常识别的大小或类型。参见herehere

这可能可以通过对Clojure在编写虚拟机代码时使用的结构/原语进行编目,并在调试Clojure时切换到该目录来解决。不幸的是,这也意味着你可能需要等待IntelliJ来解决这个问题。

我已经把这个问题发到了Jetbrains技术支持上。

票数 1
EN

Stack Overflow用户

发布于 2015-08-16 00:35:10

我不确定这是否对您的特定情况有帮助,因为我的项目是纯clojure的,但直到我为我的项目设置了clojure facet,我才真正能够让调试器命中断点(奇怪的是,我不知道如何添加到现有项目中-我必须使用该facet创建一个新项目才能开始)。

这篇博客介绍了这些步骤,这对我很有效:

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

我使用的是IntelliJ IDEA 14.1.4和La Clojure 0.7.82

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4371908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档