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

文書翻訳 文書翻訳
文書番号: 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 サイト。
WinDbg デバッガー
http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx
サービス
http://msdn2.microsoft.com/en-us/library/ms685141.aspx
グローバル フラグを使用します。ユーティリティ
http://msdn2.microsoft.com/en-us/library/ms792858.aspx

プロパティ

文書番号: 824344 - 最終更新日: 2012年9月12日 - リビジョン: 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
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:824344
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com