Visual Studioでデバッガーがブレイクポイントで止まらない(シンボルが読み込まれていません)時の対策法

プログラミング

Visual Studioのリモートデバッグ機能(Remote Debugger)はとても便利なのですが、ごくたまにリモートデバッグがブレイクポイントで止まらずにデバッグ出来ないことがあります。

リモートデバッグの方法については以下にまとめました。

Visual Studio 2012でリモートデバッグ(msvsmon.exe)を使うと開発環境は不要で便利
あるパソコンのVisual Studioで作ったC#のアプリケーションが、別のパソコンやOSでは正常に動作しないこと...

リモートデバッグが出来ない場合は、大抵以下のようなメッセージが表示されます。

ブレークポイントは、現在の設定ではヒットしません。このドキュメントのシンボルが読み込まれていません。

今回、リモートデバッグ出来ない場合、

Visual Studioでデバッガーがブレイクポイントで止まらない(シンボルが読み込まれていません)時の対策法をまとめてみました。

スポンサードリンク

ソースと実行モジュールのアンマッチ

一番よくあるのがこれです。

実行しているデバッグしようとしているモジュールと、Visual Studioで開いているソースファイルが一致していないケースです。

ソースは最新になっていますか?

あるいは、ちゃんとビルドしたモジュールを実行していますか?

一つ古いモジュールを実行していませんか?

スポンサードリンク

デバッグモジュールでビルドされているか?

Visual Studioでビルドする際、リリース(Release)ではなくデバッグ(Debug)でビルドしていますか?

デバッグ情報は、Debugフォルダ以下に作成される

.pdb (Program Debug Database)

という拡張子のファイルに保存されます。

Visual Studioのメニューから、

「ビルド」⇒「構成マネージャー」から

アクティブなソリューション構成が「Debug」になっていることを確認します。

WS000176

プラットフォームは、多分「Any CPU」にしておくのがよいと思います。

プラットフォームの違い、ARMとx86/x64の違いについては以下にまとめました。

ARMとx86/x64の違い、シェア、性能比較
プロセッサ(CPU、Central Processor Unit)の話で必ず出てくる単語に「ARM」と「x86」「x64」と...

あと、念のため、

ソリューションの

「プロパティ」⇒「ビルド」の「詳細設定」

を開いてみましょう。

「デバッグ情報」が「full」になっていますか?

「none」や「pdb-only」になっていた時は、「full」にしてからビルドしましょう。

スポンサードリンク

管理者で実行されているか?

Windows Vistaや、あるいはサービスなど管理者で実行しているモジュールをリモートデバッグしたい場合、Visual Studioも管理者で実行する必要があります。

いわゆるユーザーアカウント制御 (UAC、User Account Control) のためです。

UACについては以下にまとめました。

メモ帳で「アクセスが拒否されました。」となった時の対応方法(ユーザーアカウント制御、UAC)
Windowsで、メモ帳(notepad、テキストエディター)を使っていると「アクセスが拒否されました」と表示されることがあ...

Visual Studioを右クリックで

「管理者として実行」を押して管理者として実行しましょう。

プロセスにアタッチするときに「自動:ネイティブコード」になっているか?

Visual Studioからプロセスにアタッチするときに、アタッチ先は「自動:ネイティブコード」になっていますか?

WS000177

間違って、コードの種類が選択されていると、その種類のコードでないとデバッグできなくなってしまいます。

サービスのプログラムをデバッグする

サービスのプログラムをデバッグ実行する方法です。

  1. OnStartメソッドに「Debugger.Launch()」と書く
  2. サービスを開始する
  3. 「Visual Studioでデバッグしますか?」と聞いてくるので、開いておいた開発環境に相当するVisual Studioを一覧から選ぶ
  4. 「アタッチしますか?」と聞いてくるので、「する」を選択する

サービスのプログラムはこれでデバッグ実行できるはずです。

↓Visual Studioのデバッグに関する本はコチラをご覧ください。

Visual Studio デバッグ

プログラミングの無料レッスン体験

約8,000名の受講生と80社以上の導入実績のあるプログラミングやWebデザインのオンラインマンツーマンレッスンCodecamp

<Codecampの特徴>

1 現役エンジニアによる指導

2オンラインでのマンツーマン形式の講義

3大手企業にも導入されている実践的なカリキュラム

↓無料体験レッスン実施中です。

プログラミングのオンラインスクールCodeCamp

Translate »