Visual Studio 2008 SP1 のデバッグ、ブレークポイントの更新

はじめに

デバッガー コンポーネントの Microsoft Visual Studio 2008 SP1 用の更新プログラムをリリースしました。 これらの更新プログラムは、ほとんどの場合ステップ実行やブレークポイントにヒットが発生する問題を解決します。

詳細

インストール方法

この更新プログラムは、x86 と x64 の両方のコンピューター上の Visual Studio 2008 SP1 のすべてのバージョンのです。 ただし、64 ビット オペレーティング システムで Visual Studio 2008 の標準エディションを使用する場合、この更新プログラムを適用する前に、64 ビット Visual Studio 2008 SP1 リモート デバッガーをインストールする必要があります。64 ビット Visual Studio 2008 SP1 リモート デバッガーを取得する方法の詳細については、次のマイクロソフト Web サイトを参照してください。

マルチ プロセスとマルチ スレッドのデバッガーの修正

注: 以下の説明では、Visual Studio のインスタンスを 1 つで、デバッグ中のプロセスの仮想的なセットを参照してください。関数が呼ばれ、関数は、再帰的であるかの関数にはでループが含まれていると見なされます。問題を再現するのにはこれらのシナリオを使用することはありません。 代わりに、問題を説明するために用意されています。

複数ヒットした後は、並列化されたループ内のブレークポイントは無視されます最終的に

ブレークポイントは、ループ内で、または各イテレーションでの機能がすべてのプロセスでヒットしない再帰的に配置します。頻繁に、いくつかのプロセスは、プロセスを停止する前に、ブレークポイントを無視して、ループの反復の多くを通過できます。 次のような状況を考えます。
  1. 複数プロセスのデバッグを開始します。 タイト ループでは、デバッグしているプロセスの 1 つまたはそれが再帰的な関数です。
  2. (ブレークポイントにヒットする最後のプロセス)、現在のプロセスのメイン スレッドを停止して、デバッグを続行します。プロセスごとにこの操作を繰り返します。
  3. 各プロセスのスレッドを再起動するとします。
いくつかのイテレーション後ブレークポイントは不要になったヒットすることがわかります。この動作は予期されていません。

スレッドの起動と停止すると、ブレークポイントが失われること

ブレークポイントに達するが、Visual Studio デバッガーで複数のプロセスをデバッグするときは表示されません。次の 2 つのプロセス、プロセス A とプロセス B. をデバッグするシナリオを検討してください。
  1. 両方のプロセスにブレークポイントを設定し、デバッグを開始します。両方のブレークポイントにヒットします。
  2. プロセス A のメイン スレッドを停止して、プロセス B を選択するコマンドを 1 回のステップに f11 キーを押すし。
  3. プロセス A のメイン スレッドを再起動して、プロセス B のメイン スレッドを停止します。 次に、コマンドにステップ インするのには f11 キーを押します。

    両方のプロセスが同じ行にあることがわかります。

  4. プロセス A のメイン スレッドを停止します。スレッドを停止しないこの時点で。
  5. F5 キーを押して続行します。
プロセスが終了し、Visual Studio は、デザイン モードに戻る必要があります。ただし、これは発生しません。 プロセスは、コードの後でもう一度中断します。

注: 続行するのには f5 キーを押した後に、ブレークポイントを削除する場合、それが完了するまで、デバッガーが実行されます。

同時に複数のプロセスをデバッグするときに Visual Studio がクラッシュします。

Visual Studio デバッガー可能性がありますして開始し、スレッドを停止し、実行して次のブレークポイントに複数のプロセスをデバッグしている場合にデッドロックが発生します。 次のような状況を考えます。
  1. 3 つの任意の変数の宣言にブレークポイントを設定するとします。
  2. 16 のプロセスのデバッグを開始します。
  3. プロセスのいずれかに侵入して、メイン スレッドを停止します。
  4. F5 キーを押します。
  5. すべてのプロセスがブレークポイントにヒットするまで、手順 3 と 4 を繰り返します。
  6. すべてのプロセスのメイン スレッドを起動するとします。
  7. 各プロセスでは、最初のブレークポイントを削除して、F5 キーを押します。
  8. 、プロセスごとに、手順 3 と 4 を繰り返します。 2 つ目のブレークポイントですべてのプロセスがあります。
  9. F5 キーを押します。
  10. 、プロセスごとに、手順 3 と 4 を繰り返します。
すべてのプロセスは、3 つ目のブレークポイントに到達する必要がありますが、少なくとも 1 つのプロセスは、実行中の状態で滞る可能性があります。

"Go"に変わり、ネイティブ アプリケーションをデバッグするときに無効なブレークポイントをステップ実行

無効なブレークポイントを含む Visual Studio でネイティブ アプリケーションをデバッグするとします。過去の無効なブレークポイントをデバッガーでステップ実行すると、残りの手順すべて失われ、アプリケーションは実行を継続します。

"Go"にランダムにマネージ マルチ スレッド アプリケーションをデバッグするときのステップを実行できます。

マルチ スレッド マネージ アプリケーションをデバッグして、ブレークポイントにヒットするなど、別のスレッドでイベントが発生したときに、1 つのスレッドにステップ インするときの手順を要求は失われます。 アプリケーションは実行を継続します。

MPI プラグインのサポートを提供する Visual Studio のエディションの修正プログラム メッセージを渡すインターフェイス (MPI) デバッガー

MPI アプリケーションを起動するのには、[ステップ イン] コマンドを使用すると、Visual Studio がクラッシュします。

MPI プロセスの複数のインスタンスをデバッグするのには、f11 キーを押すか、[ステップ イン] コマンドを使用して、Visual Studio がクラッシュします。 または、次のエラー メッセージが表示されます。

マイクロソフトの Visual Studio が発生したため、内部エラー

デッドロックが発生すると、複数のプロセスをデバッグする場合は、「ステップ オーバー」コマンドを実行している

複数のプロセスをデバッグする場合、[ステップ オーバー ] コマンドを実行すると、Visual Studio がクラッシュします。次のような状況を考えます。
  1. マルチ スレッド アプリケーションを開くとします。
  2. 再帰的な関数呼び出しにブレークポイントを設定します。
  3. 2 つのプロセスをデバッグするとします。
  4. デバッグを開始します。 最初のプロセスでブレークポイントにヒットします。
  5. F5 キーを押します。 2 番目のプロセスにブレークポイントにヒットします。
  6. 最初のプロセスのメイン スレッドを停止するとします。
  7. 2 番目のプロセスで、[ステップ オーバー ] コマンドを実行して、一時停止をクリックします。

    最初のプロセスで待機しているために、操作を完了できません。中断モードを再入力するのには一時停止] をクリックするとします。デバッガーでは、緑色の矢印を使用して、関数から制御が戻るときに実行する次のステートメント処理を示します。
  8. 2 番目のプロセスでは、ブレークポイントを追加します。
  9. 最初のプロセスを停止して、F5 キーを押します。
この時点では、各プロセス内のブレークポイントに到達するためにデバッガーを期待します。ただし、両方のプロセスが、関数の内部でデッドロックが発生しは常に最後に追加されたブレークポイントにヒットします。さらに、デバッガーがアプリケーションの最後に実行できません。

ブレークポイントの UI の修正プログラム

無効なブレークポイントは、Visual Studio 2008 の Service Pack 1 をインストールした後は表示されません。

ブレークポイントを無効にする場合は、ブレークポイントにヒットしません。 ブレークポイントは、エディターの一番左のチャンネルから隠れています。 無効なブレークポイントが存在します。 ブレークポイントのツール ウィンドウに表示されます。

解決策

サポートされている修正プログラムは、マイクロソフトから入手可能です。ただし、この修正プログラムは、ここで説明する問題のみを修正することを目的としたものです。この問題が発生しているシステムにのみ適用してください。この修正プログラムは、今後さらにテストを行う場合があります。したがって、この問題の影響が深刻でない場合は、この修正プログラムが含まれる次のソフトウェア更新プログラムがリリースされるまで待つことをお勧めします。

この修正プログラムを MSDN コード ギャラリーからダウンロードするには、次のマイクロソフト Web サイトを参照してください。


注: MSDN コード ギャラリーの修正プログラムは利用可能な言語を表示します。自分の言語が一覧に表示されない場合は、その言語用のコード ギャラリー リソース ページが使用できないためです。


注: さらなる問題が発生した場合、またはトラブルシューティングが必要な場合には、別のサービス リクエストの作成が必要な場合があります。この修正プログラムの対象外の追加の質問および問題については、通常のサポート料金が適用されます。マイクロソフト カスタマー サービス サポートの電話番号一覧または別のサービス リクエストの作成については、次のマイクロソフト Web サイトを参照してください。

必要条件


Microsoft Visual Studio 2008 SP1 をインストールするこの修正プログラムを適用する必要があります。

再起動の必要性


この修正プログラムの適用後にコンピュータを再起動する必要はありません。

修正プログラムの置き換えに関する情報


この修正プログラムによって他の修正プログラムが置き換わることはありません。

ファイル情報


修正プログラム (英語版) のファイル属性は次表のとおりです。ただし、これより新しい修正プログラムがリリースされている可能性もあります。各ファイルの日付および時刻は、世界協定時刻 (UTC) で示されています。ファイル情報に表示される時刻は、ローカル時刻に変換されています。UTC とローカル時間の時差を確認するを使用して、
タイム ゾーン
タブで、
日付と時刻
コントロール パネル内の項目。
ファイル名ファイル バージョンファイル サイズ日付時刻プラットフォーム
AvVsPkDH.dll9.0.30729.177325848-Nov-082:19x86
AvVsPkDH.dll9.0.30729.177382168-Nov-082:19x64
AvVsPkDH.dll9.0.30729.177750808-Nov-082:19IA-64
AvVsPkDH.dll9.0.30729.177750808-Nov-082:19x86
AvVsPkDH.dll9.0.30729.177382168-Nov-082:19x86
AvVsPkDH.dll9.0.30729.177325848-Nov-082:19x86
cpde.dll9.0.30729.1776526088-Nov-082:19x86
mcee.dll9.0.30729.17711809928-Nov-082:19x86
mcee.dll9.0.30729.1776567048-Nov-082:19x86
mcee.dll9.0.30729.1773648648-Nov-082:19x86
mcee.dll9.0.30729.1773648648-Nov-082:19x86
mcee.dll9.0.30729.1776567048-Nov-082:19x64
mcee.dll9.0.30729.17711809928-Nov-082:19IA-64
mpishim.exe9.0.30729.177238808-Nov-082:19x86
mpishim.exe9.0.30729.177238808-Nov-082:19x86
mpishim.exe9.0.30729.177238808-Nov-082:19x86
mpishim.exe9.0.30729.177238808-Nov-082:19x86
mpishim.exe9.0.30729.177290008-Nov-082:19x64
mpishim.exe9.0.30729.177546008-Nov-082:19IA-64
msvb7.dll9.0.30729.17740871048-Nov-082:19x86
msvb7.dll9.0.30729.17757331848-Nov-082:19x86
msvb7.dll9.0.30729.17727425928-Nov-082:19x86
msvb7.dll9.0.30729.17740871048-Nov-082:19x86
msvb7.dll9.0.30729.17740871048-Nov-082:19x86
msvb7.dll9.0.30729.17727425928-Nov-082:19x64
msvb7.dll9.0.30729.17757331848-Nov-082:19IA-64
msvsmon.exe9.0.30729.17799925208-Nov-082:19x86
msvsmon.exe9.0.30729.17747614168-Nov-082:19x86
msvsmon.exe9.0.30729.17732167128-Nov-082:19x86
msvsmon.exe9.0.30729.17732167128-Nov-082:19x86
msvsmon.exe9.0.30729.17747614168-Nov-082:19x64
msvsmon.exe9.0.30729.17799925208-Nov-082:19IA-64
NatDbgDE.dll9.0.30729.17713479128-Nov-082:19x86
NatDbgDE.dll9.0.30729.1773141848-Nov-082:19x86
vsdebug.dll9.0.30729.17715849688-Nov-082:19x86
msvb7.dll9.0.30729.17740871048-Nov-082:19x86

状況

マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。
プロパティ

文書番号:957912 - 最終更新日: 2017/02/05 - リビジョン: 1

フィードバック