Visual Studioで「現在の設定ではヒットしません シンボルが読み込まれていません」ブレークポイントで止まらない時の対策法

プログラミング
スポンサーリンク

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

 

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

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

 

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

 

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

 

 

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

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

 

 

スポンサーリンク

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

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

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

 

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

 

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

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

 

 

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

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

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

.pdb (Program Debug Database)

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

 

 

 

Visual Studioのメニューから、

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

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

 

 

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

 

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

ARMとx86/x64 (Intel, AMD) のCPU、アーキテクチャの違い、シェア、性能比較、アーキテクチャ、エンディアン
プロセッサ(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からプロセスにアタッチするときに、アタッチ先は「自動:ネイティブコード」になっていますか?

 

 

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

 

 

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

 

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

 

  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

 

 

 

コメント