it-swarm.com.ru

Можно ли смотреть переменные во время выполнения?

Я знаю основы отладки и знаю, что могу добавить в переменную наблюдения, которые останавливают выполнение программы при заданном условии. Но я не хотел останавливать программу каждый раз, когда мне нужно увидеть значение переменной. Также я не хочу записывать значение каждой релевантной переменной в logcat ... Я только хотел видеть их значения, как я делаю в точках останова, только во время выполнения.

Я программирую Android, в Android Studio.

Спасибо за помощь!

11
Ortiz

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

 enter image description here

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

 enter image description here

Чтобы добавить переменную в список наблюдения

Начните с установки точки останова в классе, где вы хотите наблюдать определенную переменную. Запустите код, и, как только он достигнет вашей точки останова из фрейма окна Variables, вы увидите все доступные переменные. Просто выберите тот, который вы хотите смотреть, а затем щелкните правой кнопкой мыши и выберите «Добавить в часы» из выпадающего списка.

 enter image description here

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

 enter image description here

11
vguzzi

Если вы знакомы с основами отладки, вы можете легко добавить наблюдатели в переменную, которые останавливают выполнение программы при заданном условии. Если вы не хотите останавливать программу каждый раз, когда хотите увидеть значение переменной, то простой способ увидеть значение переменной - это использовать Toasts . Toast предоставляет пример значения любой переменной в операции в небольшом всплывающем окне. Тосты автоматически исчезают после установленного времени ожидания.

Простой пример кода:

Context context = getApplicationContext();
CharSequence text = "Hello toast!";
int duration = Toast.LENGTH_SHORT;

Toast toast = Toast.makeText(context, text, duration);
toast.show();

Чтобы увидеть значение переменной в тосте:

   int var=1;
   Toast.makeText(getApplicationContext(), "vlaue is "+var, Toast.LENGTH_LONG).show();

Чтобы увидеть тип переменной в тосте:

   Toast.makeText(getApplicationContext(), "type is "+var.getClass().getName(), Toast.LENGTH_LONG).show();
0
Abdul Wahid