Существуют ли какие-либо средства отладки / ведения журнала уровня функций для Java? - PullRequest
1 голос
/ 12 октября 2009

Извините, если название сбивает с толку, но я не мог придумать ничего похожего, чтобы назвать его. Что я ищу, так это наличие какого-либо инструмента (или плагина eclipse и т. Д.), Который будет регистрировать все переведенные строки из программы. Например:

int b = 20;
for (int x = 0; x < z; x++)
b = b + 5;

Будет переведен на

b = 20
for (int x = 0; 0 < 50; 0++)
b = 20 + 5;

Я спрашиваю, потому что кажется, что это не будет слишком сложно реализовать относительно, так как мы можем отлаживать по одной строке за раз, и я думаю, что это сэкономит огромное количество времени. Если бы вы могли просто просмотреть файл журнала, найти свою ошибку и точно выяснить, на какой строке возникла проблема, и контекст, который ее вызвал, отладка была бы намного проще. XDebug для PHP имеет трассировки на уровне функций, так что вы можете видеть значение переменных, передаваемых в вашей программе, и выводить их в журнал. Я обнаружил, что это сэкономило мне много времени на отладку. Проблемы были, как правило, очевидны и их легко было исправить.

Это будет лучше, чем добавление операторов регистрации.

РЕДАКТИРОВАТЬ: Я хочу уточнить, что я не ищу традиционный стиль отладчика аля Eclipse. Я просто ищу общую регистрацию переменных и состояний.

Ответы [ 3 ]

2 голосов
/ 12 октября 2009

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

Для веб-приложений, где код выполняется на сервере, вы даже можете подключить отладчик через сеть к удаленной JVM.

Вот учебник о том, как использовать отладчик eclipse. Есть даже плагин, который позволяет использовать его для кода PHP.

1 голос
/ 12 октября 2009

Я думаю, Трассировка может быть тем, что вы хотите, хотя на практике я ожидал бы, что хороший отладчик с оценкой выражений и условными точками останова может быстрее решить вашу общую проблему. Обратите внимание, что трассировка записывается в JPDA, и ее код доступен.

0 голосов
/ 12 октября 2009

Я не понимаю, как такой инструмент будет работать. Что бы это сделать для условий? Для пользовательского ввода?

int x=getUserInput();
print(x);  // What would your translator show for this line?

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

...