クラシックASPは、Visual InterDevでデバッグすることができますが、Visual InterDevはUTF-8のソースコードを表示できないという問題があります。この問題を回避するには、Visual Studio 2005(Visual Web Developer)を利用します。
以下、Visual Studio 2005でクラシックASPのデバッグする方法をまとめてみました。
クラシックASPのサーバサイドデバッグ
- 管理ツールからインターネットサービスマネージャを起動します。そして、デバッグ対象のサイトを選択し、プロパティを表示します。
- ホームディレクトリタブの構成ボタンをクリックし、「ASPのサーバー側のスクリプトのデバッグを有効にする」にチェックを入れます。
- Visual Studio 2005でローカルIIS内のWebサイトを開き、デバッグしたいページにブレークポイントを設定します。
- ブラウザを起動し、ページを表示します。
- Visual Studio 2005に戻り、デバッグメニューから「プロセスにアタッチ」を選択します。
- "アタッチ先"の欄に"スクリプト"と表示されていることを確認します。表示されていない場合には、選択ボタンから"スクリプト"を選択します。
- プロセスリスト内にdllhost.exeが存在することを確認します。表示されていない場合には、「すべてのユーザーからのプロセスを表示する」にチェックを入れます。複数のdllhost.exeが表示されている場合は、Typeが"スクリプト, x86"となっているものを選択します。念のため、ユーザ名がIWAM_マシン名になっていることも確認してください。
- 「アタッチ」をクリックします。警告ダイアログが表示されますが、アタッチを選択します。
- ブラウザに戻り、ページをリロードします。すると、ブレークポイントで、スクリプトがストップし、ステップ実行ができるようになります。
Global.asaのデバッグ
スクリプト中にstopステートメントを記述することで、Global.asaをデバッグすることができます。*1
デバッグ中に Global.asa ファイル内でブレークするには
- テキスト エディタで Global.asa ファイルを開き、スクリプトにブレークポイントを設定します。またVBScript Stop ステートメントまたは JScript debugger をプロシージャの最初、ステップ実行するステートメントの前に配置します。
- ブラウザで現在のプロジェクトの ASP ページを要求します。これで、IIS は Global.asa ファイルを実行し、ブレークポイント、Stop ステートメント、または debugger ステートメントで停止します。
JavaScriptのクライアントサイドデバッグ
- Internet Explorerのインターネットオプションから、スクリプトのデバッグを有効にします。(後述)
- ステップ実行させたいコードにdebuggerステートメントを記述します。
- ブラウザを起動し、デバッグしたページを表示します。
- 2010.01.25追記。ASPのデバッグと同じように「プロセスにアタッチ」から、IEのプロセスにアタッチします。(dllhost.exeではありません。)
- スクリプトがdebuggerステートメントにヒットすると、デバッガを自動的に起動するため、するとステップ実行できるようになります。*2
Internet Explorer でスクリプトのデバッグを有効にする
Internet Explorer でスクリプトのデバッグを有効にするには
1.[ツール] メニューの [インターネット オプション] をクリックします。
2.[インターネット オプション] ダイアログ ボックスの [詳細設定] タブをクリックします。
3.[ブラウズ] の下の [スクリプトのデバッグを使用しない] チェック ボックスをオフにします。
4.[OK] をクリックします。
5.Internet Explorer を終了して再起動します。
方法 : Internet Explorer でスクリプトのデバッグを有効にして起動する
参考サイト
- ASP Web アプリケーションのデバッグ
- Debugging Classic ASP pages in Visual Studio 2005 on Windows XP Pro
- Debugging classic ASP web application with Visual Studio 2005 - akjoshi's Blog
- Mikhail Arkhipov (MSFT)'s WebLog : How to debug classic ASP pages in VS 2005: IIS 5.1
- Mikhail Arkhipov (MSFT)'s WebLog : How to debug classic ASP pages in VS 2005