[英]JDB debugging of Groovy/Grails code
我试图在我继承的一些(而不是bletcherous)Grails代码中调试一些问题。 我是Groovy和Grails的亲戚,虽然是一个古老的Java家伙。
这是问题所在:我运行了jconsole和jdb钩子,但很难使用调试器,因为大部分代码都在闭包中。 所以,例如,
def niftyMethod = {
// do something nifty
anObject.doSomethingThatBreaks()
}
作为控制器上单个方法的实现。
作为一个闭包,名称(当调试器看到它时)是TheController.closure527(或类似的东西),并且特别难以找到。
那么,如何从块名称到闭包找到映射呢?
更一般地说,有没有关于做这种事情的好教程?
理想情况下,答案不会涉及转换到IntelliJ,好像上帝意味着我们使用IDE那样她不会给我们EMACS。
这不是你想听到的,但调试是我使用intellij进行grails编程的唯一原因。 如果很容易做你要问的事情,我会把它留给更好的编辑。 弱的,非标准的键绑定让我发疯,但有时调试是找到问题的最佳方法。
我能想到的最好的事情是编译代码并打开Class.closure123,然后通过javap和grep通过它们来管道它们以识别正确的闭包。 痛苦,但我不确定有更好的方法。
或者,您可以从代码中抛出异常,查看堆栈跟踪,然后从那里找到正确的底层类。
我知道,粗暴。
使用Intellij,设置Eclipse或Emacs Keymap(或制作您自己的完美键盘图),享受21世纪:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.