Jdb отладка кода Groovy/Grails
Я пытаюсь отладить некоторые проблемы в некотором (довольно блеклом) коде Grails, который я унаследовал. Я относительный новичок в Groovy и Grails хотя старая Ява парень.
Вот в чем проблема: у меня есть эта штука, работающая с jconsole и jdb-крючками, но трудно использовать отладчик, потому что так много кода находится в замыканиях. Так, например,
def niftyMethod = {
// do something nifty
anObject.doSomethingThatBreaks()
}
Как реализация одного метода на контроллере.
Будучи замыканием, имя (к моменту запуска отладчика видит это) является контролером.closure527 (или что-то в этом роде), и особенно трудно найти.
Итак, как можно найти карту от названия блока до закрытия?
В более общем плане, есть ли какие-либо хорошие учебники по выполнению такого рода вещей?
В идеале ответ не будет включать в себя переход на IntelliJ, как если бы Бог хотел, чтобы мы использовали IDEs, как это она не дала бы нам EMACS.2 ответа:
Это не то, что вы хотите услышать, но отладка-единственная причина, по которой я использую intellij для программирования grails. Если бы было легко сделать то, о чем вы просите, я бы оставил это для лучшего редактора. Слабые, нестандартные привязки ключей сводят меня с ума, но иногда отладка-лучший способ найти проблему.
Лучшее, что я могу придумать, - это скомпилировать код и открыть класс.closure123 затем пропускает их через javap и grep через них, чтобы определить правильное закрытие. Больно, но я не уверен, что есть лучший способ.
Кроме того, вы можете создать исключение из кода, посмотреть на трассировку стека и затем найти правильный базовый класс оттуда.
Я знаю, Гросс.