web-dev-qa-db-ja.com

実行時に変数を監視することは可能ですか?

デバッグの基本を知っているし、特定の条件でプログラムの実行を停止するウォッチを変数に追加できることも知っている。しかし、変数の値を確認する必要があるたびにプログラムを停止したくありませんでした。また、関連するすべての変数の値をlogcatに記録したくありません...実行時のみ、ブレークポイントで行うようにそれらの値を確認したいと思いました。

Android StudioでAndroidをプログラミングしています。

助けてくれてありがとう!

13
Ortiz

プログラムがブレークポイントで停止したら、デバッガーメニューの右端にあるアイコンをクリックします(下の画像を参照)。このウィンドウにメソッドまたは変数名を入力して、それらがどうなるかを確認できます。

enter image description here

プロジェクトを再実行せずに、任意の式を入力して(コードを壊した場所の範囲内であれば)、ハードコードされた値またはオブジェクトをすべて入力できます。

enter image description here

ウォッチリストに変数を追加するには

まず、特定の変数を監視したいクラスにブレークポイントを設定します。コードを実行し、[変数]ウィンドウフレームからブレークポイントに到達すると、アクセス可能なすべての変数が表示されます。見たいものを選択し、右クリックして、ドロップダウンから[時計に追加]を選択します。

enter image description here

デバッグを続けると、コードに基づいて適切なときに、[Watches]ウィンドウフレームの更新から変数が表示されます。

enter image description here

12
vguzzi

デバッグの基本を知っている場合は、特定の条件でプログラムの実行を停止するウォッチを変数に簡単に追加できます。変数の値を確認するたびにプログラムを停止したくない場合は、変数の値を確認する簡単な方法はToastsを使用することです。トーストは、小さなポップアップの操作で任意の変数のサンプル値を提供します。トーストは、設定されたタイムアウト後に自動的に消えます。

簡単なコード例:

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