Связанный вопрос:

https://softwareengineering.stackexchange.com/questions/225243/is-printing-to-console-stdout-a-good-debugging-strategy

У нас есть что-то вроде этого

private int myFunction(int i)

{
    //line a
    someCode(); 
    //line b
    someMoreCode();
    //line c
    return v; 
}

private void myMain()
{
    for (int i = 0; i<10; i++)
    {

     myfunction(i); 
    }
}

Теперь что-то идет не так в myFunction, скажем, когда я = 6.

На мой взгляд, у меня есть два варианта:

  • Я могу добавить точку останова в строке a, запустить отладчик и выполнить шаг возврата до i = 6 и посмотреть значения в каждой строке.
  • Я могу пойти в выражениях put console/stdout в строках a, b, c и получить полный список / трассировку того, как меняются переменные, которые меня интересуют.

Проблема с этим вторым решением заключается в том, что я постоянно вставляю / набираю консольные операторы, а затем выполняю их удаление.

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

Это возможно?

1 ответ1

0

Вы можете добавить код в точку останова, чтобы решить, когда она станет активной.

Щелкните правой кнопкой мыши Breakpoint Properties останова и выберите « Свойства точки останова», установите флажок « Conditional и вы сможете ввести код - что-то вроде:

return i == 6;

чтобы остановиться, когда i 6 лет.

Подробнее об отладке Java с помощью Eclipse

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .