Visual Studio のデバッガでbyte[]の変数の値をバイナリファイルに保存する

ジョナスン
質問: ブレークポイントでbyte[]の値をファイルに保存したい
ブレークポイントで画像ファイルのbyte[]の値を確認していますが、ファイルに保存して画像として開ける状態か確認したいです。 Visual Studioでブレークポイントでbyte[]の値をファイルに保存する方法はありますか?
(コードにFileStreamを追記してWriteすればよい話だと思いますが、面倒です。)

はじめに

Visual Studioでデバッグ中にbyte[]などのバイナリの値を保存したいことがあります。
Visual Studioのイミディエイトウィンドウを利用すると比較的簡単に実現できます。

方法

Visual Studioのデバッガで停止中に、イミディエイトウィンドウ(即時ウィンドウ)で以下のコードを実行します。

System.IO.File.WriteAllBytes(@"(ファイルの保存先パス)", (byte[]型の変数));

手順例

プログラムでブレークポイントで停止している状態です。
Visual Studio のデバッガでbyte[]の変数の値をバイナリファイルに保存する:画像1

ウォッチウィンドウでbuffer変数の値を確認します。値は入っていますが、 画像ファイルなので、データが合っているかはファイルとして開けるかで確認したいです。
Visual Studio のデバッガでbyte[]の変数の値をバイナリファイルに保存する:画像2

[デバッグ]メニューの[ウィンドウ]サブメニューの[イミディエイト]の項目をクリックします。
Visual Studio のデバッガでbyte[]の変数の値をバイナリファイルに保存する:画像3

クリックすると、ウィンドウの下部に[イミディエイト ウィンドウ]が表示されます。
イミディエイトウィンドウに以下のコマンドを入力します。

System.IO.File.WriteAllBytes(@"C:\data\debug.png", buffer);

Visual Studio のデバッガでbyte[]の変数の値をバイナリファイルに保存する:画像4

[Enter]キーを押してコマンドを実行します。以下のメッセージが表示されますが、実行はできています。

メッセージ
式は評価されましたが、値が指定されていません。

Visual Studio のデバッガでbyte[]の変数の値をバイナリファイルに保存する:画像5

C:\dataディレクトリに debug.png ファイルが作成されています。ファイルを確認して値に問題ないかが確認できます。
Visual Studio のデバッガでbyte[]の変数の値をバイナリファイルに保存する:画像6


Visual Studioのデバッガでbyte[]の変数の値をバイナリファイルに保存できました。

AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2025-04-29
Copyright © 1995–2025 iPentec all rights reserverd.