Windows サービスをデバッグする方法

Windows XP のサポートは終了しました

マイクロソフトでは、2014 年 4 月 8 日に Windows XP のサポートを終了しました。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響しています。 この変更の意味および保護された状態を維持する方法について説明します。

Windows Server 2003 のサポートは 2015 年 7 月 14 日で終了しています

Windows Server 2003 のサポートは 2015 年 7 月 14 日で終了しています。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響します。 この変更の意味および保護された状態を維持する方法について説明します。

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:824344
概要
この資料では、Windows のデバッグ方法について説明します。WinDbg デバッガー (windbg.exe) を使用してサービスを指定します。Windows サービスをデバッグするには後に、サービスをホストするプロセスに WinDbg デバッガーを接続できます。サービスを開始または、WinDbg を起動するのには、サービスを構成できますサービスの起動に関するトラブルシューティングを行うことができますように接続されたデバッガー問題。この資料ではこれらの両方の方法について説明します。

先頭に戻る

要件

これ資料では、次のトピックに精通しているを前提としています。
  • Windows サービス
  • WinDbg デバッガー
先頭に戻る

サービスが開始されるとサービスに WinDbg デバッガーをアタッチします。

このメソッドは、接続に使用できるメソッドと同様ですがプロセスへのデバッガーし、プロセスをデバッグします。

デバッグ対象サービスをホストするプロセスのプロセス ID を使用します。

  1. プロセス ID (PID) をホストするプロセスを確認するのにはデバッグするには、必要なサービスは、次の方法のいずれか使用します。
    • 方法 1: タスク マネージャーを使用します。
      1. タスク バーを右クリックしをクリックしてください タスク マネージャー.、 Windows のタスク マネージャー ダイアログボックスが表示されます。
      2. クリックして、 プロセス タブの Windows のタスク マネージャー ダイアログ ボックスします。
      3. 下にあります。 イメージ名は、イメージをクリックします。デバッグ対象サービスをホストするプロセスの名前です。注、この、対応する値で指定されたプロセスのプロセス ID PID フィールドです。
    • 方法 2: タスク一覧ユーティリティ (オプション) を使用します。
      1. クリックしてください。 ボタンをクリックし、プロパティ Exchange Server 2010 SP1 をインストールした後 Outlook クライアント アプリケーションがパブリック フォルダーに接続できない.、 Exchange Server 2010 SP1 をインストールした後 Outlook クライアント アプリケーションがパブリック フォルダーに接続できない ダイアログ ボックスが表示されます。
      2. で、 と入力して ボックス型 cmdプロパティ ].
      3. コマンド プロンプトで、ディレクトリのパスを変更します。コンピューター上のすべてのプロセスのファイルの場所を反映します。

        Tlist.exe ファイルは、通常、次のようにあります。ディレクトリ: Files\Debugging ツール Windows を [ファイル名を
      4. コマンド プロンプトで tlist イメージの名前とプロセス Id をすべて表示するにはコンピューターで現在実行されているプロセス。

        サービスをホストするプロセスのプロセス ID をメモは、デバッグするには次のようにします。
  2. コマンド プロンプトで、ディレクトリのパスを反映するように変更する、コンピューターに windbg.exe ファイルの場所です。

    コマンド プロンプトが表示されていない場合は、手順を実行します、および b の方法 1。Windbg.exe ファイルは通常次のディレクトリにあります。Windows 用のタイプ Files\Debugging のツールです。
  3. コマンド プロンプトで windbg – pプロセス Id /g WinDbg デバッガーをアタッチするのにはデバッグ対象サービスをホストするプロセスです。

    プロセス Id プレース ホルダーです、対象サービスをホストするプロセスのプロセス IDデバッグします。
先頭に戻る

デバッグ対象サービスをホストするプロセスのイメージ名を使用します。

ある場合のみ正確にいずれかを実行してこの方法を使用できます。実行する、サービスをホストするプロセスのインスタンスです。行うにはこれには、次の手順を実行します。
  1. クリックしてください。 ボタンをクリックし、プロパティExchange Server 2010 SP1 をインストールした後 Outlook クライアント アプリケーションがパブリック フォルダーに接続できない.、 Exchange Server 2010 SP1 をインストールした後 Outlook クライアント アプリケーションがパブリック フォルダーに接続できない ダイアログ ボックスが表示されます。
  2. で、 と入力して ボックス型cmdプロパティ ] 開くにはコマンド プロンプトを開きます。
  3. コマンド プロンプトで、ディレクトリのパスを反映するように変更する、コンピューターに windbg.exe ファイルの場所です。

    Windbg.exe ファイルは、通常、次のようにあります。ディレクトリ: Files\Debugging ツール Windows を [ファイル名をします。
  4. コマンド プロンプトで windbg の –pnImageName /g WinDbg デバッガーをアタッチするのにはデバッグ対象サービスをホストするプロセスです。

    ImageName プレース ホルダーです、デバッグ対象サービスをホストするプロセスのイメージの名前。、"-pn"コマンド ライン オプションを指定するにはImageName コマンドライン引数がイメージ名です。プロセス。
先頭に戻る

WinDbg デバッガーを起動して、デバッグ対象サービスをホストがプロセスにアタッチ

  1. Windows エクスプ ローラーを起動します。
  2. コンピューターに windbg.exe ファイルを見つけます。

    Windbg.exe ファイルは、通常、次のようにあります。ディレクトリ: Files\Debugging ツール Windows を [ファイル名を
  3. 実行に windbg.exe ファイルと共に、 /g WinDbg を起動するのには、コマンド ライン スイッチデバッガー。、 /g コマンド ライン スイッチでは、ブレークポイントを設定した後に続行するのには、履歴プロセスことができます。
  4. で、 ファイル メニューをクリックして 添付します。プロセス 表示するには プロセスへのアタッチします。 ダイアログボックス。
  5. プロセスに対応するノードを選択する] をクリックします。[デバッグ] をクリックしてサービスをホストします。].
  6. 表示されるダイアログ ボックスをクリックします。 [はい]ワークスペースの基本情報を保存します。これでデバッグできることを確認、逆アセンブルしたコードをサービスします。
先頭に戻る

WinDbg を起動するのには、サービスを構成します。デバッガーのアタッチ

このメソッドを使用するとする場合は、サービスをデバッグするのにことができます。サービスの起動に関する問題のトラブルシューティングを行います。
  1. [イメージ ファイルの実行"オプションを構成します。これを行うには、次の方法のいずれかを使用します。
    • 方法 1: グローバル フラグ エディター (gflags.exe) を使用します。
      1. Windows エクスプ ローラーを起動します。
      2. Gflags.exe ファイルを見つけ、コンピューターです。

        Gflags.exe ファイルは、通常、次のようにあります。ディレクトリ: Files\Debugging ツール Windows を [ファイル名をします。
      3. グローバル フラグを開始するには、gflags.exe ファイルを実行します。エディターです。
      4. で、 イメージ ファイル名 テキスト ボックスでは、対象サービスをホストするプロセスのイメージ名を入力します。デバッグします。プロセスによってホストされているサービスをデバッグする場合の例については、イメージ名の種類として MyService.exe をが MyService.exe.
      5. 下にあります。 移動先を選択する] をクリックします。、 イメージ ファイルのオプション オプションです。
      6. 下にあります。 デバッガー オプションの画像,オンにし、 デバッガー チェック ボックスします。
      7. で、 デバッガー テキスト ボックスを使用するデバッガーの完全なパスを入力します。たとえば、する場合、WinDbg デバッガーを使用してサービスをデバッグするには、次のような完全なパスを入力することができます。 [ファイル名Windows\windbg.exe の Files\Debugging ツール
      8. クリックしてください。 適用プロパティ ] グローバル フラグ エディターを終了します。
    • 方法 2: レジストリ エディターを使用します。
      1. クリックしてください。 ボタンをクリックし、プロパティ Exchange Server 2010 SP1 をインストールした後 Outlook クライアント アプリケーションがパブリック フォルダーに接続できない.、 Exchange Server 2010 SP1 をインストールした後 Outlook クライアント アプリケーションがパブリック フォルダーに接続できない ダイアログ ボックスが表示されます。
      2. で、 と入力して ボックス型 をクリックし、プロパティ ] 開始するのにはレジストリ エディターをします。
      3. 重要: このセクション、方法、またはタスクには、レジストリの変更方法が記載されています。レジストリを誤って変更すると、深刻な問題が発生することがあります。レジストリを変更する際には十分に注意してください。万一に備えて、編集の前にレジストリをバックアップしてください。問題が発生した場合でも、レジストリを復元できます。レジストリをバックアップおよび復元する方法の詳細については、以下のサポート技術情報番号をクリックしてください。
        322756 Windows でレジストリをバックアップおよび復元する方法


        レジストリ エディターで、検索し、右クリック次のレジストリ サブキー:
        をNT\CurrentVersion\Image ファイルの実行オプション
      4. ポイントします。 新しいプロパティ キー.レジストリ エディターの左側のウィンドウで、その次に注意してください。 新しいキー 1 (名の新しいレジストリ サブキー) が選択されています。編集します。
      5. 種類 ImageName 交換するには 新しいキー 1、し、キーを押します。入力します。

        ImageName プレース ホルダーです、デバッグ対象サービスをホストするプロセスのイメージの名前。のプロセスによってホストされているサービスをデバッグする場合の例イメージの名前、タイプとしての MyService.exe MyService.exe.
      6. 作成したレジストリ サブキーを右クリックします。手順 e です。
      7. ポイントします。 新しいプロパティ 文字列値.レジストリ エディターの右側のウィンドウに注意してください。は、 新しい値 #1は、新しいレジストリ エントリの名前です編集用に選択します。
      8. 置換 新しい値 #1デバッガーをクリックし、ENTER キーを押します。
      9. 右クリックし、 デバッガー レジストリ手順 h では、作成しをクリックする項目 変更.、 [文字列を編集します。 ダイアログ ボックスが表示されます。
      10. で、 [値のデータ テキスト ボックス、入力 DebuggerPathプロパティ ].

        DebuggerPath 使用するデバッガーの完全なパスのプレース ホルダーです。たとえば、する場合、WinDbg デバッガーを使用してサービスをデバッグする場合は、完全なを入力することができます。次のようなパス:
        C:\Progra~1\Debugg~1\windbg.exe
  2. デバッガーのウィンドウがデスクトップに表示するには、デバッガーと対話するには、サービスがインタラクティブにします。場合は、サービスがインタラクティブにしません、デバッガーは起動しますが、ことはできません。コマンドを実行ことはできませんを参照してください。サービスを対話形式にするのには、いずれかを使用してください。次のメソッドの。
    • 方法 1: [サービス] コンソールを使用します。
      1. クリックしてください。 ボタンをクリックし、、しポイント プログラム.
      2. で、 プログラム メニューのポイント 管理ツールプロパティ サービス.、 サービス コンソール表示されます。
      3. 右側のウィンドウで、 サービスコンソール、右クリックしてください ServiceName,プロパティ プロパティ.

        ServiceName プレース ホルダーです、デバッグするサービスの名前です。
      4. で、 ログオンします。 タブを選択する] をクリックします。、 デスクトップとの対話をサービスに許可します。 チェック ボックス ローカル システム アカウントプロパティ ].
    • 方法 2: レジストリ エディターを使用します。
      1. レジストリ エディターで、検索しをクリックして、次のレジストリ サブキー:
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceName
        置換 ServiceName 名前でデバッグするサービス。たとえば、サービスをデバッグする場合は、[マイ サービスという名前を検索し、次のレジストリ キー] をクリックします。
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService
      2. 下に 名前 フィールドの右側のペインのレジストリ エディターで、右クリックしてください 種類プロパティ 変更.、 DWORD 値を編集します。 ダイアログ ボックス表示されます。
      3. テキストを変更する、 [値のデータテキスト ボックスには、バイナリの OR 演算の結果のバイナリ値で、現在のテキストとバイナリ値を 2 つのオペランドとして、0x00000100。バイナリ値: 0x00000100、SERVICE_INTERACTIVE_PROCESS 定数への対応、WinNT.h ヘッダー ファイルをコンピューター上で定義されています。この定数を指定します。サービスは、本質的には対話型です。
  3. サービスは、サービスを起動すると、すると通信がどのくらいの期間、サービス (タイムアウトを開始する必要がありますコントロール マネージャーをサービスします。サービスの期間)。サービス コントロール マネージャーは受け取らない場合は、「サービスを開始する」通知サービスのこのタイムアウト期間内、サービス コントロール マネージャーは、サービスをホストするプロセスを終了します。これタイムアウト期間は通常 30 秒未満です。これを変更しない場合は、タイムアウトの時間をサービス コントロール マネージャー、プロセスが終了し、デバッグしようとしているときにデバッガーをアタッチします。このタイムアウトを調整するには期間には、次の手順を実行します。
    1. レジストリ エディターで、検索し、右クリック、次のレジストリ サブキー:
    2. ポイントします。 新しいプロパティ DWORD 値.レジストリ エディターの右側のウィンドウで、その次に注意してください。 新しい値 #1 (新しいレジストリ エントリの名前) が選択されています。編集します。
    3. 種類 行う 交換するには 新しい値 #1、し、キーを押します。入力します。
    4. 右クリックし、 行う手順 c. で作成しをクリックして、[レジストリ エントリ 変更.、 DWORD 値を編集します。 ダイアログ ボックス表示されます。
    5. で、 [値のデータ テキスト ボックス、入力 TimeoutPeriodプロパティ ]

      TimeoutPeriod は、タイムアウト期限 (ミリ秒単位) 内の値のプレース ホルダーは、サービスを設定するのには次のようにします。たとえば、タイムアウト値を設定します。24 時間 (86400000 ミリ秒) 型との間 86400000.
    6. コンピューターを再起動します。コントロール マネージャーにサービスこの変更を適用するにはコンピューターを再起動する必要があります。
  4. Windows サービスを開始します。以下が手順例となります:
    1. クリックしてください。 ボタンをクリックし、、しポイント プログラム.
    2. で、 プログラム メニューのポイント 管理ツールプロパティ サービス.、 サービス コンソール表示されます。
    3. 右側のウィンドウで、 サービスコンソール、右クリックしてください ServiceName,プロパティ ボタンをクリックし、.

      ServiceName プレース ホルダーです、デバッグするサービスの名前です。
先頭に戻る

トラブルシューティング

ネットワーク経由で、サービスをデバッグする前に、記号、およびサービスを使用して、ソース ファイルがあることを確認します。サービスを実行するコンピューターからアクセスできます。これを行うには、次の方法のいずれかを使用します。
  • フォルダーのすべてのユーザーに少なくとも読み取りアクセス許可を与えるに記号およびサービスを使用して、ソース ファイルが含まれているコンピューターです。
  • サービスの場所は、コンピューターにこれらの記号と、サービスを使用してソース ファイルをコピーします。実行します。
戻すにはトップ
関連情報
ツールと記載されているユーティリティをダウンロードするのにはこの記事では、次のマイクロソフト Web サイトを参照してください。
Windows 用のデバッグ ツール: 概要
http://www.microsoft.com/whdc/devtools/debugging/default.mspx
詳細については、次のマイクロソフト開発者を参照してください。ネットワーク (MSDN) Web サイト。
グローバル フラグを使用します。ユーティリティ
http://msdn2.microsoft.com/en-us/library/ms792858.aspx
戻すにはトップ

警告: この記事は自動翻訳されています

プロパティ

文書番号:824344 - 最終更新日: 09/12/2012 05:54:00 - リビジョン: 9.0

Microsoft Windows 2000 Server, Microsoft Windows 2000 Advanced Server, Microsoft Windows 2000 Professional, Microsoft Windows Server 2003, Enterprise Edition (32-bit x86), Microsoft Windows Server 2003, Standard Edition (32-bit x86), Microsoft Windows Server 2003, Datacenter Edition (32-bit x86), Microsoft Windows XP Home Edition, Microsoft Windows XP Professional

  • kbimghlp kbregistry kbservice kbdebug kbmisctools kbhowtomaster kbmt KB824344 KbMtja
フィードバック