おーみんブログ

C#, ASP.NET Core, Unityが大好きです。

ソリューションファイルが大量にあるWebアプリのデバッグ方法

はじめに

Visual Studioを用いてデバッグを行う場合、基本的にはデバッグの開始ボタンを押してブレークポイントを適当な場所へ置くことでできます。

しかしながらプロジェクトの中には大量にソリューションファイルがあり、単体では動かないために上記の方法が取れない場面が出てくるケースもあります。
その場合のデバッグ手法について今回は備忘録も兼ねて書いてみることにしました。

1. プロセスにアタッチ

大量にソリューションファイルを分けている場合、そのままではアプリは動かないため、リリースファイル用のフォルダが別途用意されていて各ソリューションをビルド後、そのdllファイルを対象のフォルダへ移動させます(そのフォルダをWebサーバが読み込む的な感じ)。

それでは以下にデバッグまでの手順をまとめます。

  1. デバッグしたいソリューションファイルをDebugモードでビルドし、dllと共に出力されたpdbファイル(※)をリリースファイルへ配置します。
  2. デバッグ > プロセスにアタッチ を選択します。
  3. 対象のワーカープロセス(IISを利用している場合はw3wp.exe)へアタッチします。
  4. 適当な箇所へブレークポイントを置き、デバッグ実行します。
  5. ブレークポイントで処理が止まることを確認します。

pdbファイルはプログラムの行番号や変数名等のシンボル情報を保持しています。
PDB ファイルとは何か? - C# の開発環境 - C# 入門

その後、適当な箇所へブレークポイントを置くことでデバッグが可能になります。

2. ログ出力

これはまあ...1より細かい情報は見れませんが...テキストログなどへ適宜ログ出力する処理を書くということです...。やりたくないですが...(;´∀`)

おわりに

ソリューションファイルが多数に分かれているプロジェクトは経験がなかったので最初はデバッグ手法が分からず2の手法でやってて大変でした(;´∀`)