はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Rider】 Immediate Windowを用いてデバッグ中に使用可能なオブジェクト・機能にアクセスしデバッグ効率をあげる方法

はじめに

今回は個人的にデバッグをする上で覚えておきたい機能一位であるImmediate Windowを紹介したいと思います。

pleiades.io

Immediate Windowを利用している様子

概要

Immediate Windowデバッガーによりプログラムが一時停止状態のときに処理を挟み込むことができる機能です。例えば変数の中身を調べたり、変数に別の値を代入してみたり、メソッドを呼んでみたりもできます。

イミディエイトウィンドウを使用すると、プログラムの一時停止状態で使用可能なオブジェクトおよび機能にアクセスできます。

プログラムがデバッグセッションで中断されるとすぐに、ウィンドウが使用可能になり、入力の受け入れを開始します。デバッグウィンドウの変数ペインにウィンドウが表示されます。

イミディエイトウィンドウを使用してプログラムと対話する | JetBrains Rider ドキュメント

またインテリセンスもしっかりと効くので、めっちゃ扱いやすいです。まだ体験したことのない人には是非一度体験してほしいです。

使い方

1. デバッグ実行する

まずは基本ですが、ブレークポイントを設定します。赤い丸のやつですね。

ブレークポイントの設定

あとはデバッグ実行します。やり方は沢山ありますが、例えばメソッドを右クリックしてデバッグを実行します。

デバッグ実行

2. プログラムが一時停止する

ブレークポイントに到達するとプログラムが一時停止します。その際にImmediate Windowが立ち上がることを確認してください。

Immediate Window

3. Immediate Windowを活用する

値を調べる

まずはローカル変数などのプログラムの一時停止時点で参照できる変数を参照してみましょう。前述の通りインテリセンスが効くので、かなり分かりやすいです。

# 例
> target.A
target.Aと入力

また$result=の箇所に構造化されて評価結果が表示されていることも確認できます。

値を代入する

次に変数に値を代入することもできます。

# 例
> target.A = "new A"
target.A = "new A"と入力
新しい変数を用意する

新しい変数を生成することもできます。最後のセミコロンを忘れないようにしてください。

# 例
> var test = "This is Test Value";
var test = "This is Test Value";と入力
メソッドを実行する

メソッドの実行もできます。こちらもインテリセンスが効くので特に迷うことはないでしょう。

> Enumerable.Range(0, 10).ToArray()
Enumerable.Range(0, 10).ToArray()と入力